版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> MATLAB </b></p><p><b> 課程設(shè)計</b></p><p> 學(xué)院: 電氣信息工程學(xué)院 </p><p> 課題: 語音信號的采集與處理 </p><p> 班級: 電 信 1201
2、 組長: </p><p><b> 組員: </b></p><p> 指導(dǎo)老師: </p><p> 語音信號的采集與處理</p><p><b> 一、實驗要求 </b></p>
3、;<p> ?。?) 本課程設(shè)計要求掌握 MATLAB 語言特性、數(shù)學(xué)運算和圖形表示;掌握</p><p> MATLAB 程序設(shè)計方法在信息處理方面的一些應(yīng)用;掌握在 Windows 環(huán)境下,利用 MATLAB 進行語音信號采集與處理的基本方法。 </p><p> ?。?) 本課程設(shè)計分為基礎(chǔ)與綜合設(shè)計題目,其中基礎(chǔ)題目為 MATLAB 基本訓(xùn)練(必做) ;對于綜合設(shè)
4、計題,需按照任務(wù)書要求,對設(shè)計過程所進行的有關(guān)步驟進行理論分析,并對完成的設(shè)計作出評價,總結(jié)自己整個設(shè)計工作中的經(jīng)驗教訓(xùn)、收獲;在課設(shè)最后一天提交課程設(shè)計報告,報告必須按照統(tǒng)一格式打印,裝訂成冊。</p><p><b> 二、實驗內(nèi)容</b></p><p> 1、利用 windows 自帶的錄音機或者其它錄音軟件,錄制幾段語音信號(要有幾種不同的聲音,要有男聲
5、、女聲) 。 </p><p> 2、對錄制的語音信號進行頻譜分析,確定該段語音的主要頻率范圍,由此頻率范圍判斷該段語音信號的特點(低沉 or 尖銳?) </p><p> 3、利用采樣定理,對該段語音信號進行采樣,觀察不同采樣頻率(過采樣、欠采樣、臨界采樣) 對信號的影響。 這里涉及到采樣下重采樣的問題, 請大家思考如何去做。 </p><p> 4、
6、實現(xiàn)語音信號的快放、慢放、倒放、回聲、男女變聲。 </p><p> 5、對采集到的語音信號進行調(diào)制與解調(diào),觀測調(diào)制與解調(diào)前后信號的變化。 </p><p> 6、 對語音信號加噪,然后進行濾波,分析不同的濾波方式對信號的影響。 </p><p> 7、 如果精力和時間允許,鼓勵利用 MATLAB GUI 制作語音信號采集與分析演示系統(tǒng)。</p&g
7、t;<p> 三、MATLAB仿真</p><p><b> 任務(wù)一(陳康負責)</b></p><p><b> 1.利用頻譜的分析</b></p><p> 利用Windows下的錄音機,錄制一段男生和女生的語音,存為*.WAV的文件。然后在Matlab軟件平臺下,利用函數(shù)wavread對語音信號
8、進行采樣,記住采樣頻率和采樣點數(shù)。首先畫出語音信號的時域波形;然后對語音號進行快速傅里葉變換(FFT變換),得到信號的頻譜特性,分析語音信號頻譜。</p><p><b> 源程序:</b></p><p> fs=44100; </p><p> [x,fs,Nbits] =wavread('E:\GQQQ\leo')
9、 ; derta_fs = fs/length(x); </p><p> t=0:1/44100:(length(x)-1)/44100; </p><p> sound(x,fs) ; %對加載的語音信號進行回放</p><p> figure(1) </p><p> plot(t,x)
10、 %做原始語音信號的時域圖形</p><p> title('原始語音信號'); xlabel('time n'); ); 'fuzhi n'ylabel(</p><p> n=length(x); %求出語音信號的長度</p><p> y1=fft(x,n) ;
11、 %傅里葉變換</p><p> w=1/n*[0:n-1]*fs; </p><p> figure(2) </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(y1)*2/n)); %做原始語音信號的FFT頻譜圖<
12、/p><p> title('原始語音信號FFT頻譜') </p><p><b> 頻譜分析對比</b></p><p><b> 運行結(jié)果:</b></p><p><b> 女生:</b></p><p> 頻譜分析:從300
13、hz到2000hz都有分布,主要集中在300—1200Hz,聲音尖銳,是女生頻譜。</p><p><b> 男生: </b></p><p> 頻譜分析:從200hz到1000hz都有分布,集中在300—1000Hz聲音低沉,是男生頻譜。</p><p> 任務(wù)二(詹筱珊負責)</p><p> 利用采樣定理,
14、對該段語音信號進行采樣,觀察不同采樣頻率(過采樣、欠采樣、臨界采樣) 對信號的影響。 這里涉及到采樣下重采樣的問題, 請大家思考如何去做。 .</p><p><b> 源程序:</b></p><p><b> clear; </b></p><p> [y,fs,bits]=wavread('E:\GQ
15、QQ\WOMAN'); %x語音數(shù)據(jù)fs采樣頻率bits采樣點數(shù) </p><p> sound(y,fs,bits); %話音回放</p><p> n = length (y) ; %求出語音信號的長度</p><p> derta_fs = fs/length(y); Y=fft(y,n); %傅里葉變換</p><p&g
16、t; figure(1); </p><p> subplot(2,1,1); plot(y); </p><p> title('原始信號波形'); subplot(2,1,2); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(Y)*2/n)); title(
17、9;原始信號頻譜');grid </p><p> y1=decimate(y,2); %采樣頻率為22050Hz,過采樣</p><p> fs1=fs/2; </p><p> sound(y1,fs1,bits); %話音回放</p><p> n1 = length (y1) ; %求出語音信號的長度</p
18、><p> derta_fs = fs/length(y1); Y1=fft(y1,n1); %傅里葉變換</p><p> figure(2); </p><p> subplot(2,1,1); plot(y1); </p><p> title('過采樣信號波形'); subplot(2,1,2); </
19、p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(Y1)*2/n1)); title('過采樣信號頻譜');grid </p><p> y2=decimate(y,4); %每4個取一個,采樣頻率為11025Hz接近臨界采樣</p><p> fs2=fs/4; </p&g
20、t;<p> sound(y2,fs2,bits); %話音回放</p><p> n2 = length (y2) ; %求出語音信號的長度</p><p> derta_fs = fs/length(y2); Y2=fft(y2,n2); %傅里葉變換</p><p> figure(3); </p><p>
21、subplot(2,1,1); plot(y2); </p><p> title('臨界采樣信號波形'); subplot(2,1,2); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(Y2)*2/n2)); title('臨界采樣信號頻譜');grid </p>
22、<p> y3=decimate(y,8); %抽取函數(shù),頻率變?yōu)樵瓉?/8,欠采樣</p><p> fs2=fs/8; </p><p> sound(y2,fs2,bits); %話音回放</p><p> n3 = length (y3) ; %求出語音信號的長度</p><p> derta_fs =
23、fs/length(y3); Y3=fft(y3,n3); %傅里葉變換</p><p> figure(4); </p><p> subplot(2,1,1); plot(y3); </p><p> title('欠采樣信號波形'); subplot(2,1,2); </p><p> plot([-fs/2
24、:derta_fs:fs/2-derta_fs],abs(fftshift(Y3)*2/n3)); title('欠采樣信號頻譜');grid </p><p><b> 運行結(jié)果:</b></p><p><b> 任務(wù)三(郭前負責)</b></p><p> 實現(xiàn)語音信號的快放、慢放、倒放、回聲、
25、男女變聲.</p><p><b> 源程序:</b></p><p><b> %變速-快放%</b></p><p> fs=25600; </p><p> [z,fs,nbits]=wavread('E:\GQQQ\leo'); %讀取聲音文件</p>
26、<p> derta_fs = fs/length(z); </p><p> x=z(:,1); %讀入的y矩陣有兩列,取第1列</p><p> y1=voice(x,1.5); %調(diào)整voice()第2個參數(shù)轉(zhuǎn)換音調(diào),>1降調(diào),<1升調(diào),y1為x轉(zhuǎn)換后的聲音</p><p><b> w=1.5; <
27、;/b></p><p> F=w*fs; %w>1為快放,w<1為慢放</p><p> sound(y1,F) </p><p> N=length(x); M=length(y1); n=0:N-1; m=0:M-1; </p><p> X= fft(x); Y=fft(y1); %傅里葉變換
28、 </p><p> T=1/fs; T1=1/(fs*w); f=n/N*fs; f1=m/M*fs*w; t=n*T; t1=m*T1; figure; </p><p> subplot(2,1,1); plot(t,x); </p><p> xlabel('t/s');ylabel('幅值
29、');title('轉(zhuǎn)換前的波形'); subplot(2,1,2); plot(t1,y1); </p><p> xlabel('t/s');ylabel('幅值');title('轉(zhuǎn)換后的波形'); figure; </p><p> subplot(2,1,1); </p><p>
30、 plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(X))*2/N); xlabel('frequency/Hz');ylabel('幅值');title('轉(zhuǎn)換前的頻譜'); subplot(2,1,2); </p><p> plot([-fs/2:derta_fs:fs/2-derta_f
31、s],abs(fftshift(Y))*2/N); xlabel('frequency/Hz');ylabel('幅值');title('轉(zhuǎn)換后的頻譜'); </p><p><b> 快放:</b></p><p><b> 快放之后時間縮短。</b></p>
32、;<p><b> 慢放:</b></p><p><b> 慢放之后時間變長。</b></p><p><b> 倒放</b></p><p> fs=22050; </p><p> [x,fs,Nbits]=wavread('E:\GQQQ
33、\leo'); </p><p> t=0:1/22050:(length(x)-1)/22050;%對加載的語音信號進行回放</p><p> y=flipud(x) %對加載的語音信號實現(xiàn)翻轉(zhuǎn)函數(shù)</p><p> figure(1) </p><p> subplot(2,1,1)
34、; </p><p> plot(x); %聲音的時域波形</p><p> title('原聲音的波形'); subplot(2,1,2); plot(y); </p><p> title('倒放后聲音的波形'); wavplay(y,fs); </p><p><
35、;b> 回聲:</b></p><p> [y,fs,nbits]=wavread('E:\GQQQ\WOMAN') ; x=y(:,1); </p><p> z=[zeros(50000,1);x]; %延時50000個點</p><p> x1=[x;zeros(50000,1)]; %使原聲音長度與延時
36、后相等</p><p> y1=x1+0.4*z; %原聲+延時衰減</p><p> figure(2) </p><p> subplot(2,1,1); </p><p> plot(x); %聲音的時域波形</p><p> title('
37、;原聲音的波形'); subplot(2,1,2); plot(y1); </p><p> title('加入回聲的波形'); sound(5*y1,fs,nbits); </p><p><b> 男聲轉(zhuǎn)換為女聲</b></p><p> [y,fs,nbits]=wavread('E:\GQQQ\le
38、o'); %讀取聲音文件</p><p> x=y(:,1); %讀入的y矩陣有兩列,取第1列</p><p> y1=voice(x,0.71); %調(diào)整voice()第2個參數(shù)轉(zhuǎn)換音調(diào),>1降調(diào),<1升調(diào),y1為x轉(zhuǎn)換后的聲音</p><p> N=length(x); M=length(y1); n=0:N-1; m=
39、0:M-1; </p><p> X= fft(x); Y=fft(y1); %傅里葉變換</p><p> Fs=2*fs; %2倍頻</p><p> T=1/Fs; T1=1/Fs*0.71; </p><p> f=n/N*Fs; f1=m/M*Fs/0.71; derta_Fs
40、 =Fs/length(x); derta_Fs1 =Fs/length(y1); t=n*T; t1=m*T1; figure; </p><p> subplot(2,1,1); plot(t,x); </p><p> xlabel('t/s');ylabel('magnitude');title('轉(zhuǎn)換前的波形'); subplo
41、t(2,1,2); plot(t1,y1); </p><p> xlabel('t/s');ylabel('magnitude');title('轉(zhuǎn)換后的波形'); figure; </p><p> subplot(2,1,1); </p><p> plot([-Fs/2:derta_Fs:Fs/2-der
42、ta_Fs],abs(fftshift(X)*2/N)); ); '轉(zhuǎn)換前的頻譜');title('magnitude');ylabel('frequency/Hz' xlabel(</p><p> subplot(2,1,2); </p><p> plot([-Fs/2:derta_Fs1:Fs/2-derta_Fs1],
43、abs(fftshift(Y)*2/M)); xlabel('frequency/Hz');ylabel('magnitude');title('轉(zhuǎn)換后的頻譜'); sound(y1,fs,nbits); </p><p><b> 男聲轉(zhuǎn)換為女聲</b></p><p><b>
44、女聲轉(zhuǎn)換為男聲</b></p><p><b> Voice函數(shù)調(diào)用</b></p><p> function Y=voice(x,f) </p><p> %更改采樣率使基頻改變 f>1降低;f<1升高</p><p> f=round(f*1000); </p>&l
45、t;p> d=resample(x,f,1000); </p><p> %時長整合使語音文件恢復(fù)原來時長 </p><p> W=400; Wov=W/2; Kmax=W*2; Wsim=Wov; xdecim=8; </p><p> kdecim=2; X=d'; F=f/1000; Ss =W-Wov; </p&g
46、t;<p> xpts = size(X,2); </p><p> ypts = round(xpts / F); Y = zeros(1, ypts); </p><p> xfwin = (1:Wov)/(Wov+1); </p><p> ovix = (1-Wov):0; newix = 1:(W-Wov); simix = (
47、1:xdecim:Wsim) - Wsim; </p><p> padX = [zeros(1, Wsim), X, zeros(1,Kmax+W-Wov)]; Y(1:Wsim) = X(1:Wsim); lastxpos = 0; km = 0; for ypos = Wsim:Ss:(ypts-W) xpos = round(F * ypos); &l
48、t;/p><p> kmpred = km + (xpos - lastxpos); lastxpos = xpos; </p><p> if (kmpred <= Kmax) km = kmpred; else</p><p> ysim = Y(y
49、pos + simix); rxy = zeros(1, Kmax+1); rxx = zeros(1, Kmax+1); Kmin = 0; </p><p> for k = Kmin:kdecim:Kmax </p&g
50、t;<p> xsim = padX(Wsim + xpos + k + simix); rxx(k+1) = norm(xsim); rxy(k+1) = (ysim * xsim'); end</p><p> Rxy = (r
51、xx ~= 0).*rxy./(rxx+(rxx==0)); km = min(find(Rxy == max(Rxy))-1); end</p><p> xabs = xpos+km; </p><p> Y(ypos+ovix) = ((1-xfwin).*Y(ypos+ovix)) + (xfwin.*padX(
52、Wsim+xabs+ovix)); </p><p> Y(ypos+newix) = padX(Wsim+xabs+newix); end</p><p><b> end</b></p><p> 任務(wù)四(丁睿智負責)</p><p> (1)調(diào)制:語音信號與高頻正弦載波相調(diào)制,比較
53、其頻譜變化,回放信號,比較是與眾語音信號變化。將調(diào)制后的信號進行解調(diào),回放信號,比較時域中語音信號變化。</p><p> 所謂調(diào)制,就是在傳送信號的一方將所要傳送的信號附加在高頻振蕩上,再由天線發(fā)射出去。這里高頻振蕩波就是攜帶信號的運載工具,也叫載波。振幅調(diào)制,就是由調(diào)制信號去控制高頻載波的振幅,直至隨調(diào)制信號做線性變化。在線性調(diào)制系列中,最先應(yīng)用的一種幅度調(diào)制是全調(diào)幅或常規(guī)調(diào)幅,簡稱為調(diào)幅(AM)。已調(diào)波包
54、絡(luò)與在時域中,在頻域中已調(diào)波頻譜是基帶調(diào)制信號頻譜的線性位移;</p><p> 調(diào)制信號波形呈線性關(guān)系。</p><p> ??為載波角頻率;)式中,A設(shè)正弦載波為:c(t)=Acos(為載波幅度;w?tw0000?=0). (假設(shè)為載波初始相位0調(diào)制信號(基帶信號)為m(t)。根據(jù)調(diào)制的定義,振幅調(diào)制信號(已調(diào)信號)一般可以表示為: t)cos(wt)(
55、s?Am(t)m0設(shè)調(diào)制信號的頻譜為,則已調(diào)信號的頻譜為)ws(s(t))m(t)m(wmmA??s(w)w(?w)?M(w?w)?M:m002.)產(chǎn)生原理:標準調(diào)幅波(AM,這些信號可以是模擬的,亦調(diào)制信號是只來來自信源的調(diào)制信號(基帶信號)亦可以它可以是正弦波,為首調(diào)制的高頻振蕩信號可稱為載波,可以是數(shù)字的。。載波由高頻信號源直接產(chǎn)生即可,然后經(jīng)過高)是非正弦波(如周期性脈沖序列頻功率放大器進行放大,作為調(diào)幅波的載波,調(diào)制信號由低頻
56、信號源直接產(chǎn)生,二者經(jīng)過乘法器后即可產(chǎn)生雙邊帶的調(diào)幅波。設(shè)載波信號的表達式為,調(diào)制信號的表達式為,則調(diào)幅twcostcoswt)?Am(0mm??信號的表達式為tcost)wts()?(A?m00AM(2)解調(diào)</p><p> 從高頻已調(diào)信號中恢復(fù)出調(diào)制信號的過程稱為解調(diào)(demodulation ),又稱為檢波(detection )。對于振幅調(diào)制信號,解調(diào)(demodulation )就是從它的幅度變化上
57、提取調(diào)制信號的過程。解調(diào)(demodulation )是調(diào)制的逆過程。</p><p> 可利用乘積型同步檢波器實現(xiàn)振幅的解調(diào),讓已調(diào)信號與本地恢復(fù)載波信號相乘并通過低通濾波可獲得解調(diào)信號。</p><p><b> 調(diào)制與解調(diào):</b></p><p><b> 源程序:</b></p><p&
58、gt; clear; </p><p> [f1,fs,nbits]=wavread('E:\GQQQ\WOMAN'); %讀入錄音文件</p><p> dt=1/fs; </p><p> figure(1); %控制畫圖窗口1</p><p> subplot
59、(2,1,1); %將多個圖畫到一個平面,2行1列,共2個子圖,定位第1個圖進行操作</p><p> N=length(f1); </p><p> derta_fs = fs/length(f1); %設(shè)置頻率間隔</p><p> t=0:1/fs:(N-1)/fs; </p><p> plot(t,f1
60、); % 以t為橫坐標,f1為縱坐標繪制連線圖</p><p> title('信息信號的時域波形'); %加標題</p><p> fy1=fft(f1); </p><p> w1=0:fs/(N-1):fs; subplot(2,1,2); </p><p> plot([-fs/2:derta_fs:
61、fs/2-derta_fs],abs(fftshift(fy1)*2/N)); title('信息信號的頻譜'); </p><p> f2=cos(22000*pi*t); fy2 = fft(f2); N2=length(f2); w2=fs/N*[0:N-1]; figure(2); </p><p> subplot(2,2,1); </p>
62、<p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(fy2)*2/N)); title('載波信號的頻譜'); </p><p> f1=f1(:,1); f3=f1'.*f2; </p><p> subplot(2,2,2); fy3 = fft(f3); </p>
63、<p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(fy3)*2/N)); title('已調(diào)信號的頻譜'); </p><p> sound(f3,fs,nbits); %播放語音信號</p><p> f4=f3.*f2; </p><p> subplot(2,
64、1,2); fy4=fft(f4); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(fy4)*2/N)); title('解調(diào)信號的頻譜'); sound(f4,fs,nbits); </p><p> fp1=0; fs1=5000; As1=100; </p><p&
65、gt; wp1=2*pi*fp1/fs; ws1=2*pi*fs1/fs; BF1=ws1-wp1; wc1=(wp1+ws1)/2; </p><p> M1=ceil((As1-7.95)/(2.286*BF1))+1; N1=M1+1; </p><p> beta1=0.1102*(As1-8.7); </p><p> Window=(kai
66、ser(N1,beta1)); % 用kaiser窗函數(shù)</p><p> b1=fir1(M1,wc1/pi,Window); % fir1是用窗函數(shù)法設(shè)計線性相位FIRDF的工具箱函數(shù)</p><p> figure(3); </p><p> freqz(b1,1,512); </p><p> titl
67、e('FIR低通濾波器的頻率響應(yīng)'); %用于求離散系統(tǒng)頻響特性的函數(shù)freqz</p><p> f4_low = filter(b1,1, f4); %一維數(shù)字濾波器</p><p> plot(t,2*f4_low); </p><p> title('濾波后的解調(diào)信號時域波形'); sound(f4_low,fs,
68、nbits); </p><p> f5=fft(f4_low); figure(4); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(f5)*2/N)); title('濾波后的解調(diào)信號頻譜'); </p><p> 任務(wù)五(吳亞明負責)</p>&l
69、t;p> 對語音信號加噪,然后進行濾波,分析不同的濾波方式對信號的影響</p><p><b> 加噪</b></p><p><b> 源程序:</b></p><p> [y,fs,nbits]=wavread ('E:\GQQQ\WOMAN'); </p><p>
70、; N = length (y) ; %求出語音信號的長度</p><p> derta_fs = fs/length(y); </p><p> 隨機函數(shù)產(chǎn)生噪聲%Noise=0.05*randn(N,2); </p><p> Si=y+Noise;
71、 %語音信號加入噪聲 </p><p> sound(Si,fs); figure(1); </p><p> subplot(2,1,1); </p><p> plot(y);title('原語音信號的時域波形'); </p><p> Y=fft(y); %
72、傅里葉變換</p><p> subplot(2,1,2); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(Y)*2/N)); title('原語音信號的頻域波形'); figure(2); </p><p> subplot(2,1,1); </p>
73、<p> plot(Si);title('加噪語音信號的時域波形'); S=fft(Si); %傅里葉變換</p><p> subplot(2,1,2); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(S)*2/N)); title(
74、'加噪語音信號的頻域波形'); </p><p><b> 低通:</b></p><p> [y,fs,nbits]=wavread ('E:\GQQQ\WOMAN'); </p><p> n = length (y) ; %求出語音信號的長度</p>&
75、lt;p> derta_fs = fs/length(y); </p><p> noise=0.05*randn(n,2); %隨機函數(shù)產(chǎn)生噪聲</p><p> s=y+noise; %語音信號加入噪聲</p><p> S=fft(s);
76、 %傅里葉變換</p><p> Ft=8000; Fp=1000; </p><p> Fs=1200; </p><p> wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; </p><p> [n11,wn11]=buttord(wp,ws,1,50,'s'); %低通濾波
77、器的階數(shù)和截止頻率</p><p> 域頻率響應(yīng)的參數(shù)%S [b11,a11]=butter(n11,wn11,'s'); </p><p> [num11,den11]=bilinear(b11,a11,0.5); %利用雙線性變換實現(xiàn)頻率響應(yīng)S域到Z域的變換</p><p> z11=filter(num11,den11,s
78、); %直接濾波器實現(xiàn)</p><p> sound(z11,fs,nbits); </p><p> m11=fft(z11); %求濾波后的信號</p><p> subplot(2,2,1); </p><p> plot([-fs/2:derta_fs:fs/2-derta_f
79、s],abs(fftshift(S)*2/n)); title('濾波前信號的頻譜'); grid; </p><p> subplot(2,2,2); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(m11)*2/n)); title('濾波后信號的頻譜'); grid; <
80、/p><p> subplot(2,2,3); plot(s); </p><p> title('濾波前信號的波形'); grid; </p><p> subplot(2,2,4); plot(z11); </p><p> title('濾波后的信號波形') </p><p&g
81、t; 高通); [y,fs,nbits]=wavread ('E:\GQQQ\WOMAN'求出語音信號的長度%n = length (y) ; </p><p> derta_fs = fs/length(y); </p><p> noise=0.001*randn(n,2); %隨機函數(shù)產(chǎn)生噪
82、聲</p><p> s=y+noise; %語音信號加入噪聲</p><p> S=fft(s); %傅里葉變換</p><p> Fp1=300; Fs1=1000; Ft=8000; </p><p> wp1=tan(pi*
83、Fp1/Ft); ws1=tan(pi*Fs1/Ft); wp=1; </p><p> ws=wp1*wp/ws1; </p><p> [n13,wn13]=cheb1ord(wp,ws,1,50,'s'); %模擬的低通濾波器階數(shù)和截止頻率</p><p> [b13,a13]=cheby1(n13,1,wn13,'
84、s'); %S域的頻率響應(yīng)的參數(shù)</p><p> [num,den]=lp2hp(b13,a13,wn13); %S域低通參數(shù)轉(zhuǎn)為高通的</p><p> [num13,den13]=bilinear(num,den,0.5); %利用雙線性變換實現(xiàn)頻率響應(yīng)S域到Z域轉(zhuǎn)換</p><p> z13=filter(n
85、um13,den13,s); sound(z13); </p><p> m13=fft(z13); %求濾波后的信號</p><p> subplot(2,2,1); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(S)*2/n)); titl
86、e('濾波前信號的頻譜'); grid; </p><p> subplot(2,2,2); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(m13)*2/n)); title('濾波后信號的頻譜'); grid; </p><p> subplot(2,2,
87、3); plot(s); </p><p> title('濾波前信號的波形'); grid; </p><p> subplot(2,2,4); plot(z13); </p><p> ); '濾波后的信號波形'title(</p><p><b> 帶通:</b><
88、/p><p> [y,fs,nbits]=wavread ('E:\GQQQ\WOMAN'); </p><p> n = length (y) ; %求出語音信號的長度</p><p> derta_fs = fs/length(y); </p><p> Noise=0.05*ra
89、ndn(n,2); %隨機函數(shù)產(chǎn)生噪聲</p><p> s=y+Noise; %語音信號加入噪聲</p><p> S=fft(s); %傅里葉變換</p><p> Ft=8000; Fp=1000; Fs=1200; wp=2*Fp
90、/Ft; ws=2*Fs/Ft; rp=1; rs=50; </p><p> p=1-10.^(-rp/20); %通帶阻帶波紋</p><p> q=10.^(-rs/20); fpts=[wp ws]; mag=[1 0]; dev=[p q]; </p><p> [n12,wn12,beta,ftype]=kaiserord(fpt
91、s,mag,dev); %由kaiserord求濾波器的階數(shù)和截止頻率</p><p> b12=fir1(n12,wn12,kaiser(n12+1,beta)); %設(shè)計濾波器</p><p> z12=fftfilt(b12,s); </p><p> sound(z12,fs,nbits); </p><p> 求
92、濾波后的信號m12=fft(z12); %.</p><p> subplot(2,2,1); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(S)*2/n)); title('濾波前信號的頻譜'); grid; </p><p>
93、 subplot(2,2,2); </p><p> plot([-fs/2:derta_fs:fs/2-derta_fs],abs(fftshift(m12)*2/n)); title('濾波后信號的頻譜'); grid; </p><p> subplot(2,2,3); plot(s); </p><p> title('濾波
94、前信號的波形'); grid; </p><p> subplot(2,2,4); plot(z12); </p><p> title('濾波后的信號波形'); </p><p><b> 課程設(shè)計總結(jié):</b></p><p><b> 陳康:</b></
95、p><p> 為期兩周的課程設(shè)計讓我們對于數(shù)字信號處理以及MATLAB軟件有了更深的了解,讓我們將課堂上學(xué)到的知識融會貫通起來。同時也讓我們首先真實地感受到matlab功能的強大,它幾乎可以完成任何數(shù)學(xué)計算;而在整個課程設(shè)計過程中,自己也體會到了自主學(xué)習(xí)的樂趣和意義。遇到問題,自己想都不想就直接問實在不會再問別人然后舉而自己先思考,或者干脆放棄是一種解決辦法;別人,</p><p> 一反
96、三是另外一種解決方案;而這其中的區(qū)別不僅僅是自己的態(tài)度,而且決定了你是不是真的通過課程設(shè)計學(xué)到了一些東西。遇到挫折,這是在所難免的,題目不會、資料找不到、運行之后提示錯誤等等這些已經(jīng)是課程設(shè)計中的“家常便飯”了,但是只要我們有興趣,肯去學(xué),就能夠搞定這些障礙,因為任何事情都是由不會到會,所以做課程設(shè)計也是鍛煉自己的耐心的一個過程。 </p><p><b> 詹筱珊:</b></p
97、><p> 本次課程設(shè)計應(yīng)用MATLAB驗證時域采樣定理,主要側(cè)重于某些理論知識的靈活運用,以及一些關(guān)鍵命令的掌握理解與分析,初步掌握線性系統(tǒng)的設(shè)計方法,培養(yǎng)獨立的工作能力。加深理解時域采樣定理的概念,掌握利用MATLAB分析系統(tǒng)頻率響應(yīng)的方法,計算在臨界采樣·過采樣·欠采樣三種不同條件下恢復(fù)信號的誤差,并總結(jié)采樣頻率對信號恢復(fù)產(chǎn)生誤差的影響,從而驗證時域采樣定理。一·在上述實驗當中,
98、首先定義信號時采用了該信號的函數(shù)表達式形式。二·在MATLAB中求連續(xù)信號的頻譜,應(yīng)用的是傅里葉變換,這樣實際運算的仍是對連續(xù)信號的采樣結(jié)果,這里給予了足夠高的采樣頻率,把其作為連續(xù)信號來考慮。三·實際中對模擬信號進行采樣,需要根據(jù)最高截止頻率fmax,按照采樣定理的要求選擇采樣頻率的兩倍,即fs>2fmax。設(shè)計結(jié)果中對三種頻率時采樣分析總結(jié):(1)欠采樣即fs<2fmax,時域波形恢復(fù)過程中已經(jīng)不能完整表示原信號
99、,有了失真,從頻譜上也可看出,同的頻譜帶互相重疊,已經(jīng)不能體現(xiàn)原信號頻譜的特點了,從而無法得到原來的信號。(2)臨界采樣即fs=2fmax,時域波形仍然不能恢復(fù)完整的原信號,信號只恢復(fù)過程中恢復(fù)了低頻信號</p><p><b> 郭前:</b></p><p> 此次MATLAB課程設(shè)計至此已經(jīng)完全結(jié)束了。在這兩周里,遇到了好多問題,比如,在編寫函數(shù)的傅里葉變換
100、時,由于網(wǎng)絡(luò)上好多錯誤的程序?qū)е挛覀冏隽撕芏酂o用功,不過經(jīng)過自己的查詢與嘗試,終于將這個問題解決了,還有男女變聲的問題。女生的聲音很容易就變成了男生的聲音,但是男生的聲音卻很難變成女生的聲音。設(shè)計回聲時,效果不怎么明顯,于是就延遲了更久的時間,使得回聲聽的很明顯。當然,設(shè)計過程中,老師幫助了我很多,在老師的細心指導(dǎo)下,使得這次課程設(shè)計完美結(jié)束。</p><p><b> 丁睿智:</b>&
101、lt;/p><p> 本次試驗利用載波進行調(diào)制解調(diào),同時,在進行相干解調(diào)時,使用FIR低通濾波器對調(diào)制信號進行解調(diào),是的語音信號的噪音得到抑制。通過實驗我懂得了調(diào)制和解調(diào)的意義:當有兩段語音信號,為使得兩段語音信號在傳輸過程中不相互干擾,這時我們可以考慮對這兩段信號分別進行幅度調(diào)制,但載波的頻率相距較遠,然后分別對調(diào)制以后的信號進行傳輸,到接收端以后再將這兩短信號進行解調(diào),然后就可以分別得到這兩短信號了。</
102、p><p><b> 吳亞明:</b></p><p> 在這次課程設(shè)計中,我設(shè)計制作了加噪語音信號濾波提取的系統(tǒng),綜合運用了之前幾次實驗,尤其是濾波器設(shè)計方面的MATLAB知識,并最后得到了比較理想的效果。通過這次課程設(shè)計,我加深了對濾波器方面知識的理解。用自己設(shè)計的各種濾波器對污染信號進行處理,也讓我更加清楚的理解了濾波器的濾波特性,比較并找到最合適的濾波器。&l
103、t;/p><p> 設(shè)計是一個不小的挑戰(zhàn),通過不斷的學(xué)習(xí)和嘗試,最終制作完成,在這個過程中我也有了很多的提高和收獲。比如,如何在語音信號中添加噪聲,如何把噪聲和原聲加在一起運行,如何把各部分程序綜合運用,如何靈活的利用各種濾波器對語音信號進行處理。其中,印象最深的就是濾波器的設(shè)計,我要設(shè)計三種濾波器,要選擇合適的參數(shù),還要適合所選的音頻文件,這個耗費我大量的時間,通過查找書籍和資料,以及詢問老師和同學(xué),我才將它完成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- matlab課程設(shè)計---matlab語音信號的采集與處理
- matlab課程設(shè)計--語音信號的采集與處理
- 基于matlab語音信號采集課程設(shè)計
- matlab課程設(shè)計---基于matlab的語音信號處理
- matlab課程設(shè)計報告--基于matlab有噪聲語音信號處理
- 信號處理課程設(shè)計---基于matlab的語音信號處理
- 語音信號處理及matlab實現(xiàn)課程設(shè)計
- matlab課程設(shè)計--基于matlab有噪聲語音信號處理
- 信號處理課程設(shè)計基于matlab的語音信號分析和處理
- 語音信號處理課程設(shè)計報告
- 基于 matlab 的語音信號分析與處理的課程設(shè)計
- 數(shù)字信號課程設(shè)計語音信號的采集、分析與處理
- 語音信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計---基于matlab的語音信號濾波處理
- 基于matlab的語音信號濾波處理——數(shù)字信號處理課程設(shè)計
- 基于matlab的語音信號濾波處理——數(shù)字信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計--基于matlab有噪聲語音信號處理
- matlab課程設(shè)計--利用matlab對語音信號進行處理和分析
- 語音信號處理與濾波課程設(shè)計
- 基于matlab的有噪聲的語音信號處理的課程設(shè)計
評論
0/150
提交評論