目錄
一、實驗?zāi)康?/p>
二、實驗原理
三、實驗設(shè)備
四、實驗內(nèi)容及步驟
五、實驗結(jié)果及分析
六、實驗主程序框圖及程序清單
七、實驗總結(jié)
一、實驗?zāi)康?/h2>
- 熟悉用雙線性變換法設(shè)計IIR數(shù)字濾波器的原理與方法;
- 學會調(diào)用MATLAB信號處理工具箱中濾波器設(shè)計函數(shù)(或濾波器設(shè)計分析工具FDATool)設(shè)計各種IIR數(shù)字濾波器,學會根據(jù)濾波需求確定濾波器指標參數(shù)。
- 掌握IIR數(shù)字濾波器的MATLAB實現(xiàn)方法。
- 通過觀察濾波器輸入、輸出信號的時域波形及其頻譜,建立數(shù)字濾波的概念
二、實驗原理
數(shù)字濾波器是對數(shù)字信號實現(xiàn)濾波的線性時不變系統(tǒng)。數(shù)字濾波實質(zhì)上是一種運算過程,實現(xiàn)對信號的運算處理。輸入數(shù)字信號(數(shù)字序列)通過特定的運算轉(zhuǎn)變?yōu)檩敵龅臄?shù)字序列,因此,數(shù)字濾波器本質(zhì)上是一個完成特定運算的數(shù)字計算過程,也可以理解為是一臺計算機。描述離散系統(tǒng)輸出與輸入關(guān)系的卷積和差分方程只是給數(shù)字信號濾波器提供運算規(guī)則,使其按照這個規(guī)則完成對輸入數(shù)據(jù)的處理。時域離散系統(tǒng)的頻域特性:??????????????
其中、分別是數(shù)字濾波器的輸出序列和輸入序列的頻域特性(或稱為頻譜特性),是數(shù)字濾波器的單位取樣響應(yīng)的頻譜,又稱為數(shù)字濾經(jīng)過濾波后的頻域響應(yīng)。只要按照輸入信號頻譜的特點和處理信號的目的,適當選擇,使得濾波后滿足設(shè)計的要求,這就是數(shù)字濾波器的濾波原理。
設(shè)計IIR數(shù)字濾波器一般采用間接法(脈沖響應(yīng)不變法和雙線性變換法),應(yīng)用最廣泛的是雙線性變換法?;驹O(shè)計過程是:① 將給定的數(shù)字濾波器的指標轉(zhuǎn)換成過渡模擬濾波器的指標;② 設(shè)計過渡模擬濾波器;③ 將過渡模擬濾波器系統(tǒng)函數(shù)轉(zhuǎn)換成數(shù)字濾波器的系統(tǒng)函數(shù)。MATLAB信號處理工具箱中的各種IIR數(shù)字濾波器設(shè)計函數(shù)都是采用雙線性變換法。第6章介紹的濾波器設(shè)計函數(shù)butter、cheby1 、cheby2 和ellip可以分別被調(diào)用來直接設(shè)計巴特沃斯、切比雪夫1、切比雪夫2以及橢圓模擬與數(shù)字濾波器。本實驗要求讀者調(diào)用如上函數(shù)直接設(shè)計IIR數(shù)字濾波器。
本實驗的數(shù)字濾波器的MATLAB實現(xiàn)是指調(diào)用MATLAB信號處理工具箱函數(shù) filter對給定的輸入信號x(n)進行濾波,得到濾波后的輸出信號y(n)。
三、實驗設(shè)備
計算機??Matlab軟件
四、實驗內(nèi)容及步驟
- 調(diào)用信號產(chǎn)生函數(shù)mstg產(chǎn)生由三路抑制載波調(diào)幅信號相加構(gòu)成的復(fù)合信號st,該函數(shù)還會自動繪圖顯示st的時域波形和幅頻特性曲線,如圖2.1所示。由圖可見,三路信號時域混疊無法在時域分離。但頻域是分離的,所以可以通過濾波器的方法在頻域分離,這就是本實驗的目的。
2.要求將st中三路調(diào)幅信號分離,通過觀察st的幅頻特性曲線,分別確定可以分離st中三路抑制載波單頻調(diào)幅信號的三個濾波器(低通濾波器、帶通濾波器、高通濾波器)的通帶截止頻率和阻帶截止頻率。要求濾波器的通帶最大衰減為0.1dB,?阻帶最小衰減為60 dB。
3.編程序調(diào)用MATLAB濾波器設(shè)計函數(shù)ellipord和ellip分別設(shè)計這三個橢圓濾波器,并繪圖顯示其損耗函數(shù)曲線。?
4.調(diào)用濾波器實現(xiàn)函數(shù)filter,用三個濾波器分別對信號產(chǎn)生函數(shù)mstg產(chǎn)生的信號st進行濾波,分離出st中的三路不同載波頻率的調(diào)幅信號y1(n)、y2(n)和y3(n),?并繪圖顯示y1(n)、y2(n)和y3(n)的時域波形,觀察分離效果。
五、實驗結(jié)果及分析
1.調(diào)用信號產(chǎn)生函數(shù)mstg產(chǎn)生由三路抑制載波調(diào)幅信號相加構(gòu)成的復(fù)合信號st,該函數(shù)還會自動繪圖顯示st的時域波形和幅頻特性曲線,如圖2.1所示。由圖可見,三路信號時域混疊無法在時域分離。但頻域是分離的,所以可以通過濾波器的方法在頻域分離,這就是本實驗的目的。
(1)程序運行所得波形(代碼見程序清單)
??????????????
(2)結(jié)果分析
這個函數(shù)生成了三路調(diào)幅信號并將它們相加,最后將產(chǎn)生的混合信號在時域和頻域上繪制出圖像。
在本函數(shù)中,采樣頻率為10kHz,產(chǎn)生三路調(diào)幅信號的載波頻率分別為1000Hz、500Hz、250Hz,而調(diào)制信號頻率則分別為100Hz、50Hz、25Hz。產(chǎn)生的三路信號分別通過正弦波和載波信號相乘的方式得到,且三路信號的調(diào)幅方案均為幅度調(diào)制。
繪圖部分將產(chǎn)生的混合信號在時域和頻域上直觀地展現(xiàn)出來。其中,時域波形顯示在第一個子圖中,橫軸為時間,縱軸為信號幅度,此處限定了橫軸范圍僅為采樣時間的1/8,使得波形更加清晰。第二個子圖中呈現(xiàn)了混合信號的幅頻特性,即頻譜圖,其中橫軸為頻率,縱軸為信號的幅度,由于幅度峰值可能大于1,因此在繪圖前將幅度歸一化到最大值為1。
通過對程序的分析,我們可以看到該程序以MATLAB語言實現(xiàn)了生成并展示三路調(diào)幅信號的功能,方便用戶對其進行研究和分析。
2.濾波器的設(shè)計:
要求將st中三路調(diào)幅信號分離,通過觀察st的幅頻特性曲線,分別確定可以分離st中三路抑制載波單頻調(diào)幅信號的三個濾波器(低通濾波器、帶通濾波器、高通濾波器)的通帶截止頻率和阻帶截止頻率。要求濾波器的通帶最大衰減為0.1dB, 阻帶最小衰減為60 dB。
編程序調(diào)用MATLAB濾波器設(shè)計函數(shù)ellipord和ellip分別設(shè)計這三個橢圓濾波器,并繪圖顯示其損耗函數(shù)曲線。?
(1)首先討論對于濾波器參數(shù)選取,由1可知,三路調(diào)幅信號的載波頻率分別為250Hz,500Hz,1000Hz。帶寬為50Hz,100Hz,200Hz。所以分離混合信號st中三路抑制載波單頻調(diào)幅信號的三個濾波器(低通濾波器、帶通濾波器、高通濾波器)的指標參數(shù)選取如下:
對載波頻率為250Hz的調(diào)幅信號,用低通濾波器分離,其通帶截止頻率fp=280Hz,通帶最大衰減ap=0.1dB,阻帶截止頻率為fs=450Hz,阻帶最小衰減as=60dB。對載波頻率為500Hz的調(diào)幅信號,用低通濾波器分離,其通帶截止頻率fpl=440Hz、fph=560Hz,通帶最大衰減ap=0.1dB,阻帶截止頻率為fsl=275Hz、fsh=900Hz阻帶最小衰減as=60dB。對載波頻率為1000Hz的調(diào)幅信號,用低通濾波器分離,其通帶截止頻率fp=890Hz,通帶最大衰減ap=0.1dB,阻帶截止頻率為fs=600Hz,阻帶最小衰減as=60dB。
(2)程序運行波形
I?低通橢圓濾波器耗損函數(shù)曲線
II?帶通橢圓濾波器耗損函數(shù)曲線
?III?高通橢圓濾波器耗損函數(shù)曲線
(2)結(jié)果分析
這段程序,通過調(diào)用函數(shù)mstg生成由三路抑制載波調(diào)幅信號相加構(gòu)成的復(fù)合信號s,并對該信號進行橢圓濾波器的低通、帶通、高通濾波、繪制出時域圖和頻譜圖。
具體步驟如下:
調(diào)用mstg()函數(shù)生成長度為1600的由三路抑制載波調(diào)幅信號相加構(gòu)成的復(fù)合信號s;
設(shè)置采樣頻率Fs=10000,采樣間隔T=1/Fs;
分別設(shè)置低通、帶通、高通濾波器的通、阻帶邊界頻率;
該代碼主要的功能之一是對由三路抑制載波調(diào)幅信號相加構(gòu)成的混合信號進行濾波處理,得到低通、帶通、高通三種處理后的信號。在處理過程中,使用了橢圓濾波器設(shè)計算法,并結(jié)合MATLAB中的相關(guān)函數(shù)實現(xiàn)。最后,通過繪制時域和頻域波形圖,直觀地展示了濾波前后的信號變化。
3.調(diào)用濾波器實現(xiàn)函數(shù)filter,用三個濾波器分別對信號產(chǎn)生函數(shù)mstg產(chǎn)生的信號st進行濾波,分離出st中的三路不同載波頻率的調(diào)幅信號y1(n)、y2(n)和y3(n), 并繪圖顯示y1(n)、y2(n)和y3(n)的時域波形,觀察分離效果。
(1)代碼見程序清單
具體的函數(shù)調(diào)用代碼
- fp=280;?fs=450;wp=2*fp/Fs;ws=2*fs/Fs;?%低通
- name='y_1(t)';LHL_filter(wp,ws,name,st,T,'low');
- fp_L=440;?fp_R=560;fs_L=275;?fs_R=900;%帶通
- wp=[2*fp_L/Fs,2*fp_R/Fs];ws=[2*fs_L/Fs,2*fs_R/Fs];
- name='y_2(t)';?LHL_filter(wp,ws,name,st,T,'bandpass');
- fp=890;?fs=600;wp=2*fp/Fs;ws=2*fs/Fs;?%高通
- name='y_3(t)';LHL_filter(wp,ws,name,st,T,'high');
(2)所得波形
I?低通y1(n)時域波形
II?帶通y2(n)時域波形
III?高通信號y3(n)時域波形
(3)結(jié)果分析
在上面的代碼中,已經(jīng)使用橢圓濾波器對信號進行了低通、帶通、高通三種不同性質(zhì)的濾波,并得到了濾波后的三個不同信號y1(t)、y2(t)和y3(t)。
根據(jù)濾波后的結(jié)果和時域波形圖,我們可以看出:
低通濾波器提取的是載波頻率最低的調(diào)幅信號,所以y1(t)中的調(diào)幅信號頻率最低;
帶通濾波器提取的是載波頻率在中間范圍內(nèi)的調(diào)幅信號,所以y2(t)中的調(diào)幅信號頻率居于中間;
高通濾波器提取的是載波頻率最高的調(diào)幅信號,所以y3(t)中的調(diào)幅信號頻率最高。
因此,通過這些濾波器的組合,我們可以有效地將復(fù)合信號分離出三路不同頻率的調(diào)幅信號。
六、實驗主程序框圖及程序清單
1.實驗主程序框圖
2.?程序清單
(代碼進行了高亮處理)
(1)程序一:產(chǎn)生mstg信號
首先新建mstg.m文件,在該腳本文件中運行function?st=mstg
-
?function?st=mstg %產(chǎn)生信號st,并顯示st的時域波形和頻譜 %st=mstg返回混合信號,長度N=1600 N=1600??%長度 Fs=10000;T=1/Fs;Tp=N*T;???%采樣頻率Fs=10KHz,Tp為采樣時間 t=0:T:(N-1)*T;k=0:N-1;f=k/Tp; fc1=Fs/10;?????%第1路調(diào)幅信號的載波頻率fc1=1000Hz? fm1=fc1/10;????%第1路調(diào)幅信號的調(diào)制信號頻率fm1=100Hz fc2=Fs/20;?????%第2路調(diào)幅信號的載波頻率fc2=500Hz?? fm2=fc2/10;????%第2路調(diào)幅信號的調(diào)制信號頻率fm2=50Hz fc3=Fs/40;?????%第3路調(diào)幅信號的載波頻率fc3=250Hz? fm3=fc3/10;????%第3路調(diào)幅信號的調(diào)制信號頻率fm3=25Hz xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);%產(chǎn)生第1路調(diào)幅信號? xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);%產(chǎn)生第2路調(diào)幅信號 xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);%產(chǎn)生第3路調(diào)幅信號??? st=xt1+xt2+xt3;%三路調(diào)幅信號相加 fxt=fft(st,N);?????%計算信號st的頻譜 %===============繪圖部分============ subplot(3,1,1) plot(t,st);grid;xlabel('t/s');ylabel('s(t)'); axis([0,Tp/8,min(st),max(st)]);title('(a)s(t)的波形') subplot(3,1,2) stem(f,abs(fxt)/max(abs(fxt)),'.');grid,title('(b)?s(t)的頻譜'); axis([0,Fs/5,0,1.2]); xlabel('f/Hz');ylabel('幅度')
(2)程序二:低通濾波器
-
?function?st=mstg %產(chǎn)生信號st,并顯示st的時域波形和頻譜 %st=mstg返回混合信號,長度N=1600 N=1600??%長度 Fs=10000;T=1/Fs;Tp=N*T;???%采樣頻率Fs=10KHz,Tp為采樣時間 t=0:T:(N-1)*T;k=0:N-1;f=k/Tp; fc1=Fs/10;?????%第1路調(diào)幅信號的載波頻率fc1=1000Hz? fm1=fc1/10;????%第1路調(diào)幅信號的調(diào)制信號頻率fm1=100Hz fc2=Fs/20;?????%第2路調(diào)幅信號的載波頻率fc2=500Hz?? fm2=fc2/10;????%第2路調(diào)幅信號的調(diào)制信號頻率fm2=50Hz fc3=Fs/40;?????%第3路調(diào)幅信號的載波頻率fc3=250Hz? fm3=fc3/10;????%第3路調(diào)幅信號的調(diào)制信號頻率fm3=25Hz xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);%產(chǎn)生第1路調(diào)幅信號? xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);%產(chǎn)生第2路調(diào)幅信號 xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);%產(chǎn)生第3路調(diào)幅信號??? st=xt1+xt2+xt3;%三路調(diào)幅信號相加 fxt=fft(st,N);?????%計算信號st的頻譜 %===============繪圖部分============ subplot(3,1,1) plot(t,st);grid;xlabel('t/s');ylabel('s(t)'); axis([0,Tp/8,min(st),max(st)]);title('(a)s(t)的波形') subplot(3,1,2) stem(f,abs(fxt)/max(abs(fxt)),'.');grid,title('(b)?s(t)的頻譜'); axis([0,Fs/5,0,1.2]); xlabel('f/Hz');ylabel('幅度')
(3)程序三:帶通濾波器
Fs=10000;T=1/Fs;%采樣頻率Fs=10KHz,Tp為采樣時間
fpl=440;fpu=560;fsl=275;fsu=900;rp=0.1;rs=60;
wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];
[N,wp]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N,rp,rs,wp);
y2t=filter(B,A,st);
?
figure(4);
[H,w]=freqz(B,A,1000);%[h,w]?=?freqz(b,a,n)返回數(shù)字濾波器的n點頻率響應(yīng)矢量h和相應(yīng)的角頻率矢量w,其中分子和分母多項式系數(shù)分別存儲在b和a中。
m=abs(H);
plot(w/pi,20*log(m/max(m)));
grid?on;title('帶通濾波損耗函數(shù)曲線');
xlabel('w/pi');ylabel('幅度');?
figure(5);
t=0:T:(length(y2t)-1)*T;
plot(t,y2t);
(4)程序三:高通濾波器
?Fs=10000;T=1/Fs;%采樣頻率Fs=10KHz,Tp為采樣時間
fp=890;fs=600;Rp=0.1;As=60;%設(shè)置參數(shù)
wp=2*fp/Fs;ws=2*fs/Fs;%WP,WS是通帶截止頻率,阻帶截止頻率的歸一化值
[N,wpo]=ellipord(wp,ws,Rp,As,'s')
[B,A]=ellip(N,Rp,As,wpo,'high');
y3t=filter(B,A,st);
?
%=========繪圖=============
figure(6);
[H,W]=freqz(B,A,1000);%[h,w]?=?freqz(b,a,n)返回數(shù)字濾波器的n點頻率響應(yīng)矢量h和相應(yīng)的角頻率矢量w,其中分子和分母多項式系數(shù)分別存儲在b和a中。
m=abs(H);
plot(W/pi,20*log(m/max(m)));grid?on;title('高通濾波損耗函數(shù)曲線');
xlabel('w/pi');
ylabel('幅度');
%?axis([0,1,0,1.2*max(H)])
%?%?yt='y3(t)';
figure(7);
plot(t,y3t);title('高通濾波后的波形');
xlabel('t/s');ylabel(y3(t));
七、實驗總結(jié)
本實驗通過調(diào)用MATLAB信號處理工具箱中的濾波器設(shè)計函數(shù)和濾波器實現(xiàn)函數(shù),學習了IIR數(shù)字濾波器的設(shè)計和實現(xiàn)方法。具體實驗步驟包括:生成由三路抑制載波調(diào)幅信號相加構(gòu)成的混合信號,觀察其時域和頻域波形,并通過橢圓濾波器的低通、帶通、高通濾波處理分離出混合信號中的三路單頻調(diào)幅信號;調(diào)用MATLAB的濾波器設(shè)計函數(shù)ellipord和ellip進行橢圓濾波器的設(shè)計,并繪制損耗函數(shù)曲線;調(diào)用濾波器實現(xiàn)函數(shù)filter對混合信號進行濾波,分離出三路單頻調(diào)幅信號,并繪制其時域波形。
通過利用Matlab對混合信號st的生成、對橢圓濾波器的低通、帶通、高通濾波進行處理分離,讓我對Matlab的使用更加熟悉,能更加熟練的調(diào)用Matlab的內(nèi)置函數(shù)進行濾波器的代碼編寫。整個編程的過程也讓我更深入的理解了濾波器的實現(xiàn)原理,通過生成波形也讓旅濾波的過程生動形象的呈現(xiàn)出來。文章來源:http://www.zghlxwxcb.cn/news/detail-531411.html
通過本次實驗,我學習了雙線性變換法設(shè)計IIR數(shù)字濾波器的原理和方法,掌握了MATLAB信號處理工具箱中各種IIR數(shù)字濾波器設(shè)計函數(shù)的使用方式和參數(shù)設(shè)置方法,深入理解了橢圓濾波器的性質(zhì)和特點。同時,我也感受到在數(shù)字信號處理中濾波器的重要性,濾波器能夠有效地去除信號中的噪聲和干擾,提高信號的質(zhì)量和可靠性。文章來源地址http://www.zghlxwxcb.cn/news/detail-531411.html
到了這里,關(guān)于數(shù)字信號處理實驗:IIR數(shù)字濾波器設(shè)計及軟件實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!