《IIR數(shù)字濾波器的設(shè)計(jì)及軟件實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《IIR數(shù)字濾波器的設(shè)計(jì)及軟件實(shí)現(xiàn)(12頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、IIR數(shù)字濾波器的設(shè)計(jì)及軟件實(shí)現(xiàn)
1. 實(shí)驗(yàn)?zāi)康?
(1) 熟悉用雙線性變換法設(shè)計(jì)IIR數(shù)字濾波器的原理與方法;
(2) 學(xué)會(huì)用MATLAB信號(hào)處理工具箱中的濾波器設(shè)計(jì)函數(shù)(或?yàn)V波器設(shè)計(jì)分析工具FDAtool)設(shè)計(jì)各種濾波器,學(xué)會(huì)根據(jù)濾波需求確定濾波器指標(biāo)參數(shù);
(3) 掌握IIR數(shù)字濾波器的MATLAB實(shí)現(xiàn)方法;
(4) 通過觀察濾波器輸入、輸出信號(hào)的時(shí)域波形及其頻譜,建立數(shù)字濾波的概念。
2. 實(shí)驗(yàn)原理
設(shè)計(jì)IIR數(shù)字濾波器一般采用間接法(脈沖響應(yīng)不變法和雙線性不變法),應(yīng)用最廣泛的是雙線性變換法?;镜脑O(shè)計(jì)過程是:
?將給定的數(shù)字濾波器指標(biāo)轉(zhuǎn)換成模擬濾波器的指標(biāo);
?涉及
2、模擬濾波器;
?將模擬濾波器的系統(tǒng)函數(shù)轉(zhuǎn)換成數(shù)字濾波器的系統(tǒng)函數(shù)。
MATLAB信號(hào)處理工具箱中的各種IIR數(shù)字濾波器設(shè)計(jì)函數(shù)都是采用雙線性變換法。本實(shí)驗(yàn)的數(shù)字濾波器的MATLAB實(shí)驗(yàn)是調(diào)用MATLAB信號(hào)處理工具箱的函數(shù)filter對(duì)給定的輸入信號(hào)x(n)進(jìn)行濾波,得到濾波后的輸出信號(hào)y(n).
3. 實(shí)驗(yàn)內(nèi)容及步驟
1. 信號(hào)處產(chǎn)生函數(shù)mstg產(chǎn)生由三路抑制載波調(diào)幅信號(hào)相加構(gòu)成的復(fù)合信號(hào)st,該函數(shù)還會(huì)自動(dòng)回圖顯示st的時(shí)域波形和幅頻特性曲線,由后圖可見,三路信號(hào)時(shí)域混疊無法在時(shí)域分離。但頻域是分離的,所以可通過濾波的方法在頻域分離。
2. 將st中三路調(diào)幅信號(hào)分離,通過觀察st
3、的幅頻特性曲線,分別確定可以分離st中三路抑制載波單頻調(diào)幅信號(hào)的三個(gè)濾波器(低通濾波器、帶通濾波器、高通濾波器)的通帶截止頻率和阻帶截止頻率。且濾波器的通帶最大衰減為0.1dB,阻帶最小衰減為60bB。
提示:抑制載波單頻調(diào)幅信號(hào)的數(shù)學(xué)表示式為
+
其中,稱為載波,為載波頻率,稱為單頻調(diào)制信號(hào),為調(diào)制正弦波信號(hào)頻率,且滿足>。由上式可見,所謂抑制載波單頻調(diào)幅信號(hào),就是2個(gè)正弦信號(hào)相乘,它有2個(gè)頻率成分:和頻+和差頻-,這2個(gè)頻率成分關(guān)于載波頻率對(duì)稱。所以,1路抑制載波單頻調(diào)幅信號(hào)的頻譜圖是關(guān)于載波頻率對(duì)稱的2根譜線,其中沒有載頻成分,故取名為抑制載波單頻調(diào)幅信號(hào)。圖中三路調(diào)幅信號(hào)的載波頻
4、率分別為250Hz、500Hz、1000Hz。
3. 編程調(diào)用MATLAB濾波器涉及函數(shù)ellipord和ellip分別設(shè)計(jì)這三個(gè)橢圓濾波器,并繪圖顯示其損耗函數(shù)曲線;
4. 調(diào)用濾波器實(shí)驗(yàn)函數(shù)filter,用三個(gè)濾波器分別對(duì)信號(hào)產(chǎn)生函數(shù)mstg產(chǎn)生的信號(hào)st進(jìn)行濾波,分離出st中的三路不同載波頻率的調(diào)幅信號(hào)y1(n)、y2(n)、y3(n)。
濾波器參數(shù)的選?。?
l 對(duì)于載波頻率為250Hz的條幅信號(hào),可以選用低通濾波器分離,其指標(biāo)為:
通帶截止頻率,通帶最大衰減;
阻帶截止頻率,阻帶最小衰減;
l 對(duì)于載波頻率為500Hz的條幅信號(hào),可以選用帶通濾波器分離,其指標(biāo)為:
通帶
5、截止頻率,,通帶最大衰減;
阻帶截止頻率,,阻帶最小衰減;
l 對(duì)于載波頻率為1000Hz的條幅信號(hào),可以選用高通濾波器分離,其指標(biāo)為:
通帶截止頻率,通帶最大衰減;
阻帶截止頻率,阻帶最小衰減;
說明:
(1)為了使濾波器階數(shù)盡可能低,每個(gè)濾波器的邊界頻率選擇原則是盡可能使濾波器過渡帶寬盡可能寬;
(2) 與信號(hào)產(chǎn)生函數(shù)mstg相同采用頻率Fs=10kHz;
(3) 為了濾波器階數(shù)最低,選用橢圓濾波器。
4. 試驗(yàn)程序框圖
調(diào)用函數(shù)mstg產(chǎn)生st,自動(dòng)繪圖顯示st的時(shí)域波形和幅頻特性曲線
調(diào)用ellipord和ellip分別設(shè)計(jì)三個(gè)橢圓濾波器,并繪圖顯示其幅頻響應(yīng)
6、特性曲線
調(diào)用filter,用三個(gè)濾波器分別對(duì)信號(hào)st進(jìn)行濾波,分離出三路不同載波頻率的調(diào)幅信號(hào)y1(n),y2(n),和y3(n)
繪圖顯示y1(n),y2(n)和y3(n)的時(shí)域波形
結(jié)束
5. 思考題及簡答
1、 閱讀信號(hào)產(chǎn)生函數(shù)mstg,確定三路調(diào)幅信號(hào)的載波頻率和調(diào)制信號(hào)頻率
答:
第一路調(diào)幅信號(hào)的載波頻率fc1=1000Hz;
第一路調(diào)幅信號(hào)的調(diào)制頻率fm1=100Hz;
第二路調(diào)幅信號(hào)的載波頻率fc2=500Hz;
第二路調(diào)幅信號(hào)的調(diào)制頻率fm2=50Hz;
第三路調(diào)幅信號(hào)的載波頻率fc3=250
7、Hz;
第三路調(diào)幅信號(hào)的調(diào)制頻率fm3=25Hz;
2、 信號(hào)產(chǎn)生函數(shù)mstg中采樣點(diǎn)數(shù)N=1600,對(duì)st進(jìn)行N點(diǎn)FFT就可以得到6根理想譜線。如果取N=1800,可否得到6根理想譜線?為什么?N=2000呢?請(qǐng)改變采樣點(diǎn)數(shù)N的值,觀察頻譜圖驗(yàn)證判斷是否正確?
答:因?yàn)樾盘?hào)st是周期序列,譜分析時(shí)要求觀察時(shí)間為整數(shù)倍周期。分析可知,st的每個(gè)頻率成分都是25Hz的整數(shù)倍。采樣頻率Fs=10kHz=25400Hz,即在25Hz的正弦波的1個(gè)周期中采樣400點(diǎn)。所以,當(dāng)N為400的整數(shù)倍時(shí)一定為st的整數(shù)個(gè)周期。因此,采樣點(diǎn)數(shù)N=1600和N=2000時(shí),對(duì)st進(jìn)行N點(diǎn)FFT可以得到6根理
8、想譜線。如果取N=1800,不是400的整數(shù)倍,不能得到6根理想譜線。
(1) N=1600時(shí):
(2) N=1800時(shí):
(3) N=2000S時(shí):
3、 修改信號(hào)產(chǎn)生函數(shù)mstg,給每路調(diào)幅信號(hào)加入載波成分,產(chǎn)生調(diào)幅(AM)信號(hào),重復(fù)本實(shí)驗(yàn),觀察AM信號(hào)與抑制載波調(diào)幅信號(hào)的時(shí)域波形及其頻譜的差別。
AM信號(hào)表示式:
取值: ,,結(jié)果見(附錄Ⅰ)
6. 實(shí)驗(yàn)結(jié)果(程序附錄Ⅱ)
原信號(hào)輸出:
低通輸出:
帶通輸出:
高通輸出:
附錄(Ⅰ):
原信號(hào)輸出:
低通輸出:
帶通輸出:
高通輸出:
附
9、錄(Ⅱ):
%主函數(shù)
%IIR數(shù)字濾波器設(shè)計(jì)及軟件實(shí)現(xiàn)
clear all;
%調(diào)用信號(hào)產(chǎn)生函數(shù)mstg產(chǎn)生又三路抑制載波調(diào)幅信號(hào)相加構(gòu)成的復(fù)合信號(hào)
syms st;
syms t;
st=mstg; %低通濾波器設(shè)計(jì)與實(shí)現(xiàn)
Fs=10000;T=1/Fs;
n=800;Tp=n*T;k=0:n-1;f=k/Tp;
fp=280;fs=450;
wp=2*fp/Fs;ws=2*fs/Fs;
rp=0.1;rs=60; %DF指標(biāo);(低通濾波器的通阻帶邊界頻率)
[N,wp0]=ellipord(wp,ws,rp,rs);%調(diào)用ellipod計(jì)算橢圓DF階數(shù)N和
10、通帶截止頻率wp
[B,A]=ellip(N,rp,rs,wp0);%調(diào)用ellip計(jì)算橢圓帶通DF系統(tǒng)函數(shù)系數(shù)向量B和A
y1t=filter(B,A,st);%濾波器的軟件實(shí)現(xiàn)
fyt=fft(y1t,n);
%下面為繪圖部分
figure(2);
subplot(3,1,1);
myplot(B,A);
yt=y_1(t);
subplot(3,1,2);
tplot(y1t,T,yt);
subplot(3,1,3);
stem(f,abs(fyt)/max(abs(fyt)),.);
grid;
title((c) s(t)的頻譜);
axis([0,F
11、s/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度);
%帶通濾波器的實(shí)現(xiàn)與設(shè)計(jì)
fpl=440;fpu=560;fsl=275;fsu=900;
wp=[2*fpl/Fs,2*fpu/Fs];
ws=[2*fsl/Fs,2*fsu/Fs];
rp=0.1;rs=60;
[N,wp0]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N,rp,rs,wp0);
y2t=filter(B,A,st);
fyt=fft(y2t,n);
figure(3);
subplot(3,1,1);
myplot(B,A);
yt=y_
12、1(t);
subplot(3,1,2);
tplot(y1t,T,yt);
subplot(3,1,3);
stem(f,abs(fyt)/max(abs(fyt)),.);
grid;
title((c) s(t)的頻譜);
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度);
%高通濾波器的實(shí)現(xiàn)與設(shè)計(jì)
fp=890;fs=600;
wp=2*fp/Fs;ws=2*fs/Fs;
rp=0.1;rs=60;
[N,wp0]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N,rp,rs,wp0,hi
13、gh);
y3t=filter(B,A,st);
fyt=fft(y3t,n);
figure(4);
subplot(3,1,1);
myplot(B,A);
yt=y_1(t);
subplot(3,1,2);
tplot(y1t,T,yt);
subplot(3,1,3);
stem(f,abs(fyt)/max(abs(fyt)),.);
grid;
title((c) s(t)的頻譜);
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度);
clc;clear
%子程序
%產(chǎn)生信號(hào)程序
function
14、st=mstg
N=800
FS=10000;T=1/FS;TP=N*T;
t=0:T:(N-1)*T;K=0:N-1;
f=K/TP;
fc1=FS/10;%第一路調(diào)幅信號(hào)的載波頻率fc1=1000HZ
fm1=fc1/10;%第一路調(diào)幅信號(hào)的調(diào)制信號(hào)頻率為fm1=100hz.
fc2=FS/20;%第二路調(diào)幅信號(hào)的載波頻率fc2=500HZ
fm2=fc2/10;%第二路調(diào)幅信號(hào)的調(diào)制信號(hào)頻率為fm2=50hz.
fc3=FS/40;%第三路調(diào)幅信號(hào)的載波頻率fc3=250HZ
fm3=fc3/10;%第三路調(diào)幅信號(hào)的調(diào)制信號(hào)頻率為fm3=25hz.
xt1=cos(
15、2*pi*fm1*t).*cos(2*pi*fc1*t);
xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);
xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);
st=xt1+xt2+xt3;
fxt=fft(st,N);%計(jì)算信號(hào)st的頻譜.%繪圖
subplot(2,1,1)
plot(t,st);
grid on;
xlabel(t/s);ylabel(s(t));
axis([0,TP/8,min(st),max(st)]);
title((a)s(t)的波形)
subplot(2,1,2)
stem(f,abs
16、(fxt)/max(abs(fxt)),.);
grid on;title((b) s(t)的頻譜)
axis([0,FS/5,0,1.2]);
xlabel(f/HZ);ylabel(幅度);
%損耗輸出波形
function myplot(B,A)
[H,W]=freqz(B,A,1000);
m=abs(H);
plot(W/pi,20*log10(m/max(m)));
grid on;
xlabel(\omega/\pi);
ylabel(幅度(dB));
axis([0,1,-80,5]);
title((a) s(t)損耗函數(shù)曲線);
%濾波器輸出波形
function tplot(xn,T,yn)
n=0:length(xn)-1;
t=n*T;
plot(t,xn);
grid on;
xlabel(t/s);
ylabel(y(n));
axis([0,t(end),min(xn),1.2*max(xn)])
title((b) s(t)的波形);