課程設(shè)計(jì)基于MatlabFIR濾波器設(shè)計(jì)與仿真設(shè)計(jì)_第1頁
課程設(shè)計(jì)基于MatlabFIR濾波器設(shè)計(jì)與仿真設(shè)計(jì)_第2頁
課程設(shè)計(jì)基于MatlabFIR濾波器設(shè)計(jì)與仿真設(shè)計(jì)_第3頁
課程設(shè)計(jì)基于MatlabFIR濾波器設(shè)計(jì)與仿真設(shè)計(jì)_第4頁
課程設(shè)計(jì)基于MatlabFIR濾波器設(shè)計(jì)與仿真設(shè)計(jì)_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、. . . . 基于Matlab的FIR濾波器設(shè)計(jì)與仿真一、實(shí)驗(yàn)?zāi)康?、掌握基本的MATLAB編程方法;2、理解FIR濾波器的設(shè)計(jì)原理;3、學(xué)會用MATLAB來編程實(shí)現(xiàn)FIR濾波器;4、掌握基本的simulink交互式仿真,并對FIR濾波器模型并進(jìn)行仿真;5、學(xué)會對所得的結(jié)果進(jìn)行分析。二、實(shí)驗(yàn)容1、制作數(shù)據(jù)源:用電腦采集或用軟件截取5至10秒的語音(如“大學(xué)”.)(注意用wavread函數(shù)將語音文件讀入到matlab時(shí),有“右聲道”和“左聲道”兩個(gè)信號,只要將其中一個(gè)聲道作為信號就可以。)2、信號中混入隨機(jī)噪聲(注意信噪比,噪聲強(qiáng)度不要太大):事先取一個(gè)參考值為0,再取噪聲的方差,方差的取值是

2、根據(jù)原始語音的幅度取的噪聲,噪聲強(qiáng)度不宜過大或過小,適中即可。然后通過 randn(size(a) .* sqrt(noise_var) + noise_mu;語句產(chǎn)生與原始語音長度一樣的隨機(jī)噪聲,最后把這個(gè)噪聲添加到原始語音中,得到加噪語音信號。3、設(shè)計(jì)一個(gè)FIR濾波器對前面的混合信號進(jìn)行處理、降低噪聲,并對性能進(jìn)行分析:有限長單位沖激響應(yīng)( FIR) 數(shù)字濾波器具有嚴(yán)格的線性相位,又具有任意的幅頻特性。同時(shí)FIR 系統(tǒng)只有零點(diǎn),系統(tǒng)是穩(wěn)定的,因而容易實(shí)現(xiàn)線性相位和允許實(shí)現(xiàn)多通道濾波器。只要經(jīng)過一定的延時(shí),任何非因果有限長序列都能變成因果的有限長序列, 因而總能用因果系統(tǒng)來實(shí)現(xiàn)。FIR 濾波

3、器由于單位沖激響應(yīng)是有限長的,可以用快速傅立葉變換( FFT) 算法來實(shí)現(xiàn)過濾信號,從而大大提高運(yùn)算效率。由于FIR 濾波器具有以上優(yōu)點(diǎn),在信號處理和數(shù)據(jù)傳輸中得到了廣泛的應(yīng)用。運(yùn)用窗函數(shù)設(shè)計(jì)濾波器是FIR 數(shù)字濾波器設(shè)計(jì)的主要方法之一,由于運(yùn)算簡單,又有閉合形式的公式可循,因而很實(shí)用。有限長FIR數(shù)字濾波器的設(shè)計(jì)方法主要是窗函數(shù)設(shè)計(jì)法。常用的窗函數(shù)有以下幾種, 矩形窗, 三角窗,漢寧窗, 海明窗, 布拉克曼窗, 凱澤窗( =7. 865) ,各種窗函數(shù)基本參數(shù)比較如下表1 。由表1得矩形窗雖然簡便,但存在明顯的吉布斯效應(yīng),主瓣和第一旁瓣之比只有13dB,為了克服這些缺陷,設(shè)計(jì)時(shí)可根據(jù)給定的濾

4、波器技術(shù)指標(biāo),選擇濾波器長度M和窗函數(shù)w(n),使其具有最窄寬度的主瓣和最小旁瓣4、用Simulink設(shè)計(jì)FIR濾波器模型并進(jìn)行仿真,所得結(jié)果進(jìn)行分析:Simulink創(chuàng)建模型并尋找解決實(shí)際問題的方法,可以用它輕松地搭建一個(gè)系統(tǒng)模型,并設(shè)置模型參數(shù)和仿真參數(shù)。由于Simulink是交互式的應(yīng)用程序,因此在仿真過程中,可以在線修改仿真參數(shù),并立即觀察到改變后的仿真結(jié)果。本文將介紹在Simulink環(huán)境下應(yīng)用數(shù)字濾波器設(shè)計(jì)模塊進(jìn)行信號處理(濾波)的可視化設(shè)計(jì)技術(shù)。由于調(diào)用了Matlab高度集成化和可視化的計(jì)算機(jī)仿真環(huán)境,用戶可以不用編寫任何程序語句,僅僅通過鼠標(biāo)拖放和點(diǎn)擊操作,就可完成復(fù)雜的數(shù)字濾

5、波器的設(shè)計(jì)工作。下面通過一個(gè)應(yīng)用示例介紹這種基于可視化的信號濾波技術(shù),用數(shù)字濾波器設(shè)計(jì)模塊(Digital Filter Design Block)設(shè)計(jì)、分析和實(shí)現(xiàn)濾波器。三、實(shí)驗(yàn)結(jié)果與分析1、制作數(shù)據(jù)源:我用電腦錄制了同學(xué)的一段語音,容是:現(xiàn)代語音處理技術(shù)。該語音大概有4,5秒之長。然后用wavread函數(shù)將語音文件讀入到matlab中,其實(shí)現(xiàn)的語句如下:a,fs=wavread('現(xiàn)代語音處理技術(shù).wav');%讀入語音a=a(:,1);從中我們知道fs語音的采樣頻率。2、信號中混入隨機(jī)噪聲:noise_mu = 0; noise_var =0.005; a0= randn

6、(size(a) .* sqrt(noise_var) + noise_mu;a1=a+a0;事先取一個(gè)參考值為0,再取噪聲的方差為0.005,0.005是根據(jù)原始語音的幅度取的噪聲,噪聲強(qiáng)度不宜過大或過小,適中即可。然后通過 randn(size(a) .* sqrt(noise_var) + noise_mu;語句產(chǎn)生與原始語音長度一樣的隨機(jī)噪聲,最后把這個(gè)噪聲添加到原始語音中,得到a1是信號中混入隨機(jī)噪聲的的語音。3、設(shè)計(jì)一個(gè)FIR濾波器:3.1、FIR濾波器設(shè)計(jì)的原理:先對原始語音進(jìn)行FFT變換,從FFT圖中得到passband和stopband從中我們可以知道了FIR濾波器的截止頻率

7、。確定我們選擇是用低通,高通還是帶通來處理加噪語音。然后我們通過:fedge=input('Band edges in Hz=');mval=input('Desired magnitude values in each band=');dev=input('Desired ripple in each band=');FT=input('Sampling frequency in Hz=');輸入從FFT上得到的數(shù)據(jù),passband和stopband,低通或高通,帶通,通帶紋波和阻帶紋波,以與從wavread函數(shù)中得到的采樣頻

8、率fs。通過:N,fpts,mag,wt=remezord(fedge,mval,dev,FT);b=remez(N,fpts,mag,wt);產(chǎn)生濾波器的階數(shù)N和濾波器的系數(shù)b。然后把加噪的語音a1與b進(jìn)行卷積:a11=conv(b,a1) 得到的是濾波后的語音信號。3.2、FIR濾波器設(shè)計(jì)的程序:a,fs=wavread('現(xiàn)在語音處理技術(shù).wav');%讀入大學(xué)語音a=a(:,1);FS=length(a);f=0:fs/FS:(FS-1)*fs/FS;%進(jìn)行FFT變換x=fft(a);figure(1)plot(f,abs(x);title('原始信號a的fft

9、圖');axis(0 45000 0 1000);xlabel('f');ylabel('abs(x)');grid on;%設(shè)置FIR濾波器format longfedge=input('Band edges in Hz=');mval=input('Desired magnitude values in each band=');dev=input('Desired ripple in each band=');FT=input('Sampling frequency in Hz=');

10、N,fpts,mag,wt=remezord(fedge,mval,dev,FT);b=remez(N,fpts,mag,wt);disp('FIR Filter Coefficients');disp(b)h,w=freqz(b,1,256);%畫出幅頻特性figure(2)subplot(2,1,1);plot(w/pi,20*log10(abs(h);title('幅頻特性'); xlabel('omega/pi');ylabel('Gain,dB');grid on;%畫出相頻特性subplot(2,1,2)pha=ang

11、le(h); %得到相位plot(w/pi,pha);title('相頻特性');xlabel('omega/pi');ylabel('phase(Rad)');%原始語音信號圖ts=1/fs;ta=(length(a)-1)/fs;t=0:ts:ta;figure(3)subplot(3,1,1);plot(t,a);title('原始信號a');xlabel('t');ylabel('a');grid on;%添加隨機(jī)噪聲noise_mu = 0; noise_var =0.005; a0= r

12、andn(size(a) .* sqrt(noise_var) + noise_mu;a1=a+a0;%在原始信號上加隨機(jī)噪聲的信號圖subplot(3,1,2);plot(t,a1);title('在原始信號上加上噪聲信號a1');xlabel('t');ylabel('a1');grid on;%求卷積a11=conv(b,a1);%經(jīng)過濾波器后的信號圖M=(length(a11)-1)/fs;m=0:ts:M;subplot(3,1,3);plot(m,a11);title('經(jīng)過濾波器后的信號a11');xlabel(&#

13、39;m');ylabel('a11');grid on;3.3、FIR濾波器設(shè)計(jì)的結(jié)果與分析:3.31.讀入原始語音:a,fs=wavread('現(xiàn)代語音處理技術(shù).wav');%讀入語音a=a(:,1);fs結(jié)果:fs = 441003.32.運(yùn)行以上程序,得到圖形以與數(shù)據(jù)如下:Figure1:原始語音信號的FFT圖:從中我們知道passband Fp=2000,stopband Fs=5000,我們采用低通濾波器1 0,已知fs=44100,則我們可以在命令窗口輸入以下數(shù)據(jù),并按回車鍵結(jié)束。Band edges in Hz=2000 5000Desi

14、red magnitude values in each band=1 0Desired ripple in each band=0.015 0.01Sampling frequency in Hz=44100Figure2:Figure2:FIR濾波器的幅頻特性和相頻特性圖:Figure3:原始語音a,加噪語音a1,濾波語音a11的圖形:輸出的濾波器的系數(shù)如下:FIR Filter Coefficients Columns 1 through 4 0.537 -0.558 -0.428 -0.944 Columns 5 through 8 -0.353 -0.962 -0.722 -0.67

15、6 Columns 9 through 12 0.194 0.435 0.906 0.741 Columns 13 through 16 0.638 0.351 0.351 0.638 Columns 17 through 20 0.741 0.906 0.435 0.194 Columns 21 through 24 -0.676 -0.722 -0.962 -0.353 Columns 25 through 28 -0.944 -0.428 -0.558 0.537從上面的濾波效果來看,這個(gè)低通濾波器的效果還不錯,基本上能把原始語音的濾波出來,雖然不能做到很好的把噪聲濾除,但是在語音的聽覺

16、效果上分辯不出與原始語音有何差別,效果還是不錯的。4、用Simulink設(shè)計(jì)FIR濾波器模型并進(jìn)行仿真,所得結(jié)果進(jìn)行分析因?yàn)闉V波器的階數(shù)是N=27階,則我通過Simulink設(shè)計(jì)了一個(gè)27階的濾波器,其圖形如下,下圖是simulink總的設(shè)計(jì)模型,其中我們可以看到示波器可以顯示三路的波形,第一路是原始語音信號的波形,第二路是加噪語音信號的波形,第三路是加噪語音信號進(jìn)過濾波后的語音信號輸出,通過三路波形的同時(shí)顯示我們可以很好的比較原始語音信號與濾波后的語音信號之間的差別,從而可以判斷濾波器的濾波效果是否合格。上圖的Filter濾波器是下圖所示的子系統(tǒng)封裝得到的,該子系統(tǒng)設(shè)計(jì)了階數(shù)為27階的FIR

17、濾波器,其中的濾波器系數(shù)是上面用MATLAB實(shí)現(xiàn)濾波器設(shè)計(jì)得到的濾波器的系數(shù),共有28個(gè)。我設(shè)計(jì)的simulink模型如下圖所示:原始語音的from workspace設(shè)置如下:其中Data為t,a,Sample time為ts,并且當(dāng)數(shù)據(jù)處理完后,其最后的輸出數(shù)據(jù)置零。加噪原始語音的from workspace設(shè)置如下:其中Data為t,a1,Sample time為ts,并且當(dāng)數(shù)據(jù)處理完后,其最后的輸出數(shù)據(jù)置零。在運(yùn)行simulink之前,我對simulink的參數(shù)設(shè)置如下:用simulink進(jìn)行仿真的結(jié)果如下:從仿真的結(jié)果我們可以看到,原始語音,加噪語音,以與濾波后的語音。從中我們可以看

18、出FIR濾波器對加噪語音有一定的濾波效果,濾波出的語音與原始語音比較接近,如果從聽覺角度去分析,我們很難分辯這兩種語音之間的差別,所以這個(gè)FIR濾波器在一定程度上對語音的濾波效果是不錯的。四、實(shí)驗(yàn)體會:本次實(shí)驗(yàn)我在對MATLAB了解的基礎(chǔ)上更好的,更熟練的應(yīng)用MATLAB來編程實(shí)現(xiàn)FIR濾波器設(shè)計(jì),以與學(xué)會用simulink來設(shè)計(jì)FIR濾波器,仿真實(shí)現(xiàn)濾波效果。這個(gè)實(shí)驗(yàn)一開始我只具備基本的MATLAB知識和相關(guān)的FIR濾波器的設(shè)計(jì)原理。開始用MATLAB來編程實(shí)現(xiàn)對我來說還是有點(diǎn)難度的,但是通過查看相關(guān)資料以與認(rèn)真的閱讀老師提供的資料,我慢慢的對實(shí)現(xiàn)FIR濾波器設(shè)計(jì)有了初步的程序輪廓,然后我花了將近一天的時(shí)間來編程,

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論