版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 編號</b></p><p><b> 課程設計報告</b></p><p> 題目: 基于MATLAB的語音信號處理 </p><p> 信機 系 電子信息工程 專業(yè)</p><p> 課程名稱:數(shù)字信號處理</p><p&
2、gt;<b> 1.實驗目的 </b></p><p> 綜合運用數(shù)字信號處理的理論知識進行頻譜分析和濾波器設計,通過理論推導得出相應結(jié)論,再利用 MATLAB 作為編程工具進行計算機實現(xiàn),從而加深對所學知識的理解,建立概念。 </p><p> 2.實驗基本要求 ① 學會 MATLAB 的使用,掌握 MATLAB 的程序設計方法。 ② 掌握在 Window
3、s 環(huán)境下語音信號采集的方法。 ③ 掌握數(shù)字信號處理的基本概念、基本理論和基本方法。 ④ 掌握 MATLAB 設計 FIR 和 IIR 數(shù)字濾波器的方法。 ⑤ 學會用 MATLAB 對信號進行分析和處理。 </p><p><b> 3.實驗儀器及設備</b></p><p><b> 計算機</b></p><p&
4、gt; 4.實驗內(nèi)容和步驟 錄制一段自己的語音信號,并對錄制的信號進行采樣;畫出采樣后語音信號的時域波形和頻譜圖;給定濾波器的性能指標,采用窗函數(shù)法或雙線性變換設計濾波器,并畫出濾波器的頻率響應;然后用自己設計的濾波器對采集的語音信號進行濾波,畫出濾波后信號的時域波形和頻譜,并對濾波前后的信號進行對比,分析信號的變化;回放語音信號;最后,用 MATLAB 設計一信號處理系統(tǒng)界面。</p><p> ?。?/p>
5、一)基于MATLAB 的語音濾波實驗設計</p><p> 1.1.1語音的時域低通濾波</p><p><b> 程序:</b></p><p> x=wavread('G:\htt.wav');</p><p> h=ones(1,220);</p><p> y=c
6、onv(x,h);</p><p> wavwrite(y,22050,'htt2.wav');</p><p> Hw=fft(h,length(y));</p><p> Xw=fft(x);</p><p> Yw=fft(y);</p><p> nx=length(Xw);ny=le
7、ngth(Yw);</p><p> nh=length(Hw);</p><p> wh=0:2*pi/nh:2*pi*(nh-1)/nh;</p><p> wx=0:2*pi/nx:2*pi*(nx-1)/nx;</p><p> wy=0:2*pi/ny:2*pi*(ny-1)/ny;</p><p>
8、 subplot(3,1,1);plot(wh,abs(Hw));title('系統(tǒng)函數(shù)頻譜');</p><p> subplot(3,1,2);plot(wx,Xw);title('原始信號的頻譜');</p><p> subplot(3,1,3);plot(wh,Yw);title('濾波后的信號頻譜');</p>
9、<p><b> 圖:</b></p><p> 1.1.2時域高通濾波</p><p><b> 程序:</b></p><p> x=wavread('G:\htt.wav');</p><p> h=[1,-2,1];</p><p&g
10、t; y=conv(x,h);</p><p> wavwrite(y,22050,'htt3.wav');</p><p> Hw=fft(h,length(y));</p><p> Xw=fft(x);</p><p> Yw=fft(y);</p><p> nx=length(Xw
11、);ny=length(Yw);</p><p> nh=length(Hw);</p><p> wh=0:2*pi/nh:2*pi*(nh-1)/nh;</p><p> wx=0:2*pi/nx:2*pi*(nx-1)/nx;</p><p> wy=0:2*pi/ny:2*pi*(ny-1)/ny;</p>&l
12、t;p> subplot(3,1,1);plot(wh,abs(Hw)); title('系統(tǒng)函數(shù)頻譜');</p><p> subplot(3,1,2);plot(wx,Xw); title('原始信號的頻譜');</p><p> subplot(3,1,3);plot(wh,Yw); title('濾波后的信號頻譜');&
13、lt;/p><p><b> 圖:</b></p><p> 1.2.1語音的頻域低通濾波</p><p><b> 程序:</b></p><p> x=wavread('G:\hua.wav');</p><p> Xw=fft(x);</p&
14、gt;<p> N=length(Xw);</p><p><b> fs=22050;</b></p><p><b> fL=1000;</b></p><p> Hw=[ones(1,fix(N*fL/fs)),zeros(1,N-2*fix(N*fL/fs)),ones(1,fix(N*fL/
15、fs))];</p><p> Yw=Xw.*Hw';</p><p> y=ifft(Yw);</p><p> wavwrite(y,fs,'hua4.wav');</p><p> nx=length(Xw);nh=length(Hw);</p><p> ny=length(Y
16、w);</p><p> wx=0:2*pi/nx:2*pi*(nx-1)/nx;</p><p> wh=0:2*pi/nh:2*pi*(nh-1)/nh;</p><p> wy=0:2*pi/ny:2*pi*(ny-1)/ny;</p><p> subplot(3,1,1);plot(wx,Xw);</p>&l
17、t;p> ylabel('Xw');</p><p> subplot(3,1,2);plot(wh,Hw);</p><p> ylabel('Hw');</p><p> axis([0,7,-0.2,1.2]);</p><p> subplot(3,1,3);plot(wy,Yw);&l
18、t;/p><p> ylabel('Yw');</p><p><b> 圖:</b></p><p> 1.2.2頻域高通濾波</p><p><b> 程序:</b></p><p> x=wavread('G:\hua.wav');
19、</p><p> Xw=fft(x);</p><p> N=length(Xw);</p><p><b> fs=22050;</b></p><p><b> fH=2000;</b></p><p> Hw=[zeros(1,fix(N*fH/fs)),o
20、nes(1,N-2*fix(N*fH/fs)),zeros(1,fix(N*fH/fs))];</p><p> Yw=Xw.*Hw';</p><p> y=ifft(Yw);</p><p> wavwrite(y,fs,'hua5.wav');</p><p> nx=length(Xw);nh=leng
21、th(Hw);</p><p> ny=length(Yw);</p><p> wx=0:2*pi/nx:2*pi*(nx-1)/nx;</p><p> wh=0:2*pi/nh:2*pi*(nh-1)/nh;</p><p> wy=0:2*pi/ny:2*pi*(ny-1)/ny;</p><p>
22、subplot(3,1,1);plot(wx,Xw);</p><p> ylabel('Xw');</p><p> subplot(3,1,2);plot(wh,Hw);</p><p> ylabel('Hw');</p><p> axis([0,7,-0.2,1.2]);</p>
23、<p> subplot(3,1,3);plot(wy,Yw);</p><p> ylabel('Yw');</p><p><b> 圖:</b></p><p><b> 1.3結(jié)論</b></p><p> 本文設計的實驗是利用MATLAB的聲音處理函數(shù)
24、和媒體播放器,將復雜抽象的處理算法變換成簡單直觀的實際效果,有利于學生理解算法的物理意義,有利于激發(fā)學生的學習興趣,從而引發(fā)學生對數(shù)字信號處理算法的進一步思考,對于數(shù)字信號處理的教學和學習具有一定的參考價值。,本文雖然只以語音濾進行說明,其實很容易擴展到語音的其它處理方面,如語音的抽取和插</p><p><b> 值等。</b></p><p> ?。ǘ┗贛A
25、TLAB 的語音信號分析與處理</p><p><b> 2.1語音信號采集</b></p><p><b> 程序:</b></p><p> [x,fs,nb]=wavread('F:\hua.wav');</p><p> ms2=floor(fs*0.002);<
26、;/p><p> ms10=floor(fs*.01);</p><p> ms20=floor(fs*0.02);</p><p> ms30=floor(fs*0.03);</p><p> t=(0:length(x)-1)/fs;</p><p> subplot(2,1,1);plot(t,x);<
27、;/p><p> legend('Waveform');xlabel('Time(s)');ylabel('Amplitude');</p><p> Xw=fft(x);</p><p> nx=length(Xw);</p><p> wx=0:2*pi/nx:2*pi*(nx-1)/n
28、x;</p><p> subplot(2,1,2);plot(wx,Xw);ylabel('Xw');axis([0,7,0,10])</p><p><b> 圖:</b></p><p> 2.2對語音信號進行倒譜分析</p><p><b> 程序:</b></
29、p><p> fn=input('Enter WAV filename : ','s');</p><p> [x,fs,nb]=wavread(fn);</p><p> ms2=floor(fs*0.002);</p><p> ms10=floor(fs*.01);</p><p&
30、gt; ms20=floor(fs*0.02);</p><p> ms30=floor(fs*0.03);</p><p> t=(0:length(x)- 1)/fs;</p><p> subplot(2,1,1);</p><p> plot(t,x);</p><p> legend('W
31、aveform');</p><p> xlabel('Time (s)');</p><p> ylabel('Amplitude');</p><p> w=hamming(ms30);</p><p><b> pos=1;</b></p><p&
32、gt;<b> fx=[];</b></p><p> while(pos+ms30)<=length(x)</p><p> y=x(pos:pos+ms30- 1);y=y- mean(y);</p><p> Y=fft(y.*w);</p><p> C=fft(log(abs(Y)+eps));
33、</p><p> [c,fxval]=max(abs(C(ms2:ms20)));</p><p> fx=[fx fs/(ms2+fxval- 1)];</p><p> pos=pos+ms10;</p><p><b> end;</b></p><p> t=(0:length
34、(fx)- 1)*0.01</p><p> subplot(2,1,2);</p><p> plot(t,fx);</p><p> legend('FX Trace');</p><p> xlabel('Time(s)');</p><p> ylabel('F
35、requency(Hz)');</p><p><b> 圖:</b></p><p> 2.3雙線性變換法設計各種濾波器</p><p> 數(shù)字巴特沃茲低通濾波器函數(shù):</p><p> fun ction [b,a]=digital_lowpass_butter(wp,ws,Rp,As,Fs)<
36、/p><p> [N,wn]=buttord(wp/pi,ws/pi,Rp,As)</p><p> [b,a]=butter(N,wn);</p><p><b> 程序:</b></p><p> clear;clc;</p><p> [y,Fs,bits]=wavread('
37、E:\hua.wav',[15040 23500]);</p><p> ws=0.125*pi;wp=0.075*pi;Rp=0.25;As=50;</p><p> [b,a]=digital_lowpass_butter(wp,ws,Rp,As,Fs)</p><p> [Rows,Cols]=size(y);</p><p&
38、gt; y(:,1)=y(:,1)-mean(y(:,1));</p><p> Y=abs(fft(y)+eps);</p><p> Y(1)=Y(2);</p><p><b> L=Rows;</b></p><p> w=0:(L-1);</p><p> w=2*pi/Ro
39、ws*w;</p><p> x=filter(b,a,y);</p><p> X=abs(fft(x)+eps);</p><p> X(1)=X(2);</p><p> figure(1);</p><p> subplot(2,2,1);plot(y);title('濾波前信號波形'
40、);</p><p> subplot(2,2,2);plot(w/pi,Y(1:L));title('濾波前信號頻譜');xlabel('w(單位 pi)');ylabel('幅值');</p><p> subplot(2,2,3);plot(x);title('濾波后信號波形');</p><p&
41、gt; subplot(2,2,4);plot(w/pi,X(1:L));title('低通濾波后信號頻譜');xlabel('w(單位 pi)');ylabel('幅值');</p><p><b> 圖:</b></p><p> 2.4雙線性變換法設計ButterWorth數(shù)字濾波器的頻率響應</p&g
42、t;<p><b> 程序:</b></p><p> [y,fs,bits]=wavread('D:\wangshuhua1.wav');</p><p> ws=0.125*pi;wp=0.075*pi;Rp=0.25;As=50;</p><p> [n,wn]=buttord(wp/pi,ws/pi
43、,Rp,As)</p><p> [b,a]=butter(n,wn)</p><p> freqs(b,a)</p><p> [bz,az]=bilinear(b,a,1);</p><p> freqz(bz,az,512,1)</p><p><b> 圖:</b></p&
44、gt;<p><b> 2.4回放語音信號</b></p><p> 在 matlab 中, 函數(shù) sound 可以對聲音進行回放,其調(diào)用格式為: sound(x,fs,bits)。通過回放可以發(fā)現(xiàn)濾波前后的聲音有變化。低通濾波后, 聲音稍微有些發(fā)悶, 但是很接近原來的聲音。從頻譜圖中我們可以看出聲音的能量主要集中在低頻(0.1pi 即 1102.5Hz 以內(nèi))部分。<
45、;/p><p> 2.5濾波前后進行比較</p><p> 低通濾波后的聲音跟原始聲音差別不大,頻譜中幅度相差不大,但頻率減小。</p><p><b> 2.6結(jié)語</b></p><p> 通過設計的數(shù)字低通、高通等濾波器對語音信號分別進行濾波處理,比較不同原型下設計出來的數(shù)字濾波器的濾波效果,從理論上進行分析比
46、較,對掌握數(shù)字信號處理的分析方法具有良好的指導作用。</p><p><b> 5.心得體會</b></p><p><b> 6.參考文獻</b></p><p> [1] 程佩青. 數(shù)字信號處理教程[M]. 北京: 清華大學出版社,2002.</p><p> [2] 劉敏,魏玲. Ma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- matlab課程設計---基于matlab的語音信號處理
- 信號處理課程設計基于matlab的語音信號分析和處理
- 數(shù)字信號處理課程設計---基于matlab的語音信號濾波處理
- 數(shù)字信號處理課程設計--基于matlab有噪聲語音信號處理
- 基于matlab的語音信號濾波處理——數(shù)字信號處理課程設計
- 基于matlab的語音信號濾波處理——數(shù)字信號處理課程設計
- matlab課程設計--基于matlab有噪聲語音信號處理
- matlab課程設計---matlab語音信號的采集與處理
- matlab課程設計報告--基于matlab有噪聲語音信號處理
- 語音信號處理及matlab實現(xiàn)課程設計
- matlab課程設計--語音信號的采集與處理
- 語音信號處理課程設計
- 基于matlab語音信號處理設計
- 基于 matlab 的語音信號分析與處理的課程設計
- matlab課程設計報告-語音信號的采集與處理
- 基于matlab的語音信號處理
- 基于matlab的有噪聲的語音信號處理的課程設計
- dsp語音信號處理課程設計
- 語音信號處理課程設計報告
- 數(shù)字信號處理課程設計--用matlab對語音信號進行分析及處理
評論
0/150
提交評論