實驗五IIR數(shù)字濾波器設(shè)計及軟件實現(xiàn).doc
實驗四:IIR數(shù)字濾波器設(shè)計及軟件實現(xiàn)
一、實驗內(nèi)容及步驟
1、 調(diào)用信號產(chǎn)生函數(shù)mstg產(chǎn)生由三路抑制載波調(diào)幅信號相加構(gòu)成的復(fù)合信號st,三路信號在時域混疊無法在時域分離,但頻域是可分離的,所以可以通過濾波的方法在頻域分離。
2、 要求將st中三路調(diào)幅信號分離,通過觀察st的幅頻特性曲線,分別確定可以分離st中三路抑制載波單頻調(diào)幅信號的三個濾波器(低通、高通、帶通)的通帶截止頻率和阻帶截止頻率。要求濾波器的通帶最大衰減為0.1db,阻帶最小衰減為60db.
3、 編程序調(diào)用MATLAB濾波器設(shè)計函數(shù)ellipord和ellip分別設(shè)計三個橢圓濾波器,并繪圖顯示其損耗函數(shù)曲線。
4、 調(diào)用濾波器實現(xiàn)函數(shù)filter,用三個濾波器分別對信號產(chǎn)生函數(shù)mstg產(chǎn)生的信號st進(jìn)行濾波,分離出st中的三路不同載波頻率的調(diào)幅信號yn1、yn2、yn3的,并繪圖顯示其時域波形,觀察分離效果。
二、實驗結(jié)果顯示
原信號圖形:
高通濾波器
輸出波形
帶通濾波器
輸出波形
低通濾波器
輸出波形
帶阻濾波器
輸出波形
三、實驗結(jié)論:由上面所繪圖形可知,利用數(shù)字濾波器完全可以將時域混疊而頻域未混疊的波形分開,達(dá)到濾波目的。
四、思考題
(1)請閱讀信號產(chǎn)生函數(shù)mstg,確定三路調(diào)幅信號的載波頻率和調(diào)制信號頻率。
答:第一路調(diào)幅信號的調(diào)制信號頻率為100HZ,載波頻率為1000HZ;第二路調(diào)幅信號的調(diào)制信號頻率為50HZ,載波頻率為500HZ;第三路調(diào)幅信號的調(diào)整信號頻率為25HZ,載波頻率為250HZ。
(2)信號產(chǎn)生函數(shù)mstg中采樣點(diǎn)數(shù)N=1600,對st進(jìn)行N點(diǎn)FFT可以得到6根理想譜線。如果取N=1800,可否得到6根理想譜線?為什么?N=2000呢?請改變函數(shù)mstg中采樣點(diǎn)數(shù)N的值,觀察頻譜圖驗證您的判斷是否正確?
答:
因為信號st是周期序列,譜分析時要求觀察時間為整數(shù)倍周期。分析可知,st的每個頻率成分都是25Hz的整數(shù)倍。采樣頻率Fs=10kHz=25400Hz,即在25Hz的正弦波的1個周期中采樣400點(diǎn)。所以,當(dāng)N為400的整數(shù)倍時一定為st的整數(shù)個周期。因此,采樣點(diǎn)數(shù)N=800和N=2000時,對st進(jìn)行N點(diǎn)FFT可以得到6根理想譜線。如果取N=1000,不是400的整數(shù)倍,不能得到6根理想譜線。
(3)修改信號產(chǎn)生函數(shù)mstg,給每一路調(diào)幅信號加入載波成分,產(chǎn)生AM信號,觀察AM信號與抑制載波調(diào)幅信號的時域波形及其頻譜的差別。
可以觀察到AM的頻譜中含有離散的載波分量,且占用很大比重。
五、實驗程序:
1、信號產(chǎn)生函數(shù)mstg程序:
function 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)幅信號的載波頻率fc1=1000HZ
fm1=fc1/10;%第一路調(diào)幅信號的調(diào)制信號頻率為fm1=100hz.
fc2=FS/20;%第二路調(diào)幅信號的載波頻率fc2=500HZ
fm2=fc2/10;%第二路調(diào)幅信號的調(diào)制信號頻率為fm2=50hz.
fc3=FS/40;%第三路調(diào)幅信號的載波頻率fc3=250HZ
fm3=fc3/10;%第三路調(diào)幅信號的調(diào)制信號頻率為fm3=25hz.
xt1=cos(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);%計算信號st的頻譜.
%繪圖
subplot(211)
plot(t,st);grid on;xlabel(t/s);ylabel(s(t));
axis([0,TP/4,min(st),max(st)]);title((a) s(t)的波形)
subplot(212)
stem(f,abs(fxt)/max(abs(fxt)),.);grid on;title((b) s(t)的頻譜)
axis([0,FS/5,0,1.2]);xlabel(f/HZ);ylabel(幅度);
2、高通濾波器的程序
%高通濾波器設(shè)計
fp=800;
fs=700;
Fs=10000;
wp=2*fp/Fs;ws=2*fs/Fs;
rp=1;rs=40;
N=800;st=mstg;
T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
[N1,wpo]=ellipord(wp,ws,rp,rs);%確定最小階數(shù)和截止頻率
[B,A]=ellip(N1,rp,rs,wpo,high);%求傳遞函數(shù)的分子分母系數(shù)
y=filter(B,A,st);%濾波
fyt=fft(y,N);%求其頻譜
subplot(2,1,1),plot(t,y),grid on;xlabel(t/s),ylabel(y(t)),
axis([0,Tp/4,min(y),max(y)]),title((a) y(t)的波形)
subplot(2,1,2);
stem(f,abs(fyt)/max(abs(fyt)),.);grid on;title((b) y(t)的頻譜)
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度)
3、帶通濾波器
%帶通濾波器
fpl=400;fpu=600;fsl=350;fsu=650;Fs=10000;
wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];
rp=1;rs=40;
N=800;st=mstg;
T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
[N1,wpo]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N1,rp,rs,wpo);
y=filter(B,A,st);
fyt=fft(y,N);
subplot(2,1,1),plot(t,y),grid on;xlabel(t/s),ylabel(y(t)),
axis([0,Tp/4,min(y),max(y)]),title((a) y(t)的波形)
subplot(2,1,2);
stem(f,abs(fyt)/max(abs(fyt)),.);grid;title((b) y(t)的頻譜)
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度);
4、低通濾波器設(shè)計
%低通濾波器
fp=350;
fs=400;
Fs=10000;
wp=2*fp/Fs;ws=2*fs/Fs;
rp=1;rs=40;
N=800;st=mstg;
T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
[N1,wpo]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N1,rp,rs,wpo);
y=filter(B,A,st);
fyt=fft(y,N);
subplot(2,1,1),plot(t,y),grid,xlabel(t/s),ylabel(y(t)),
axis([0,Tp/4,min(y),max(y)]),title((a) y(t)的波形)
subplot(2,1,2);
stem(f,abs(fyt)/max(abs(fyt)),.);grid;title((b) y(t)的頻譜)
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度)
5、帶阻濾波器的設(shè)計
%帶阻濾波器的設(shè)計
fpl=350;
fpu=700;
fsl=400;
fsu=600;
Fs=10000;
wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];
rp=1;rs=40;
N=800;st=mstg;
T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
[N1,wpo]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N1,rp,rs,wpo,stop);
y=filter(B,A,st);
fyt=fft(y,N);
subplot(2,1,1),plot(t,y),grid,xlabel(t/s),ylabel(y(t)),
axis([0,Tp/4,min(y),max(y)]),title((a) y(t)的波形)
subplot(2,1,2);
stem(f,abs(fyt)/max(abs(fyt)),.);grid;title((b) y(t)的頻譜)
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度)
收藏
- 資源描述:
-
實驗四:IIR數(shù)字濾波器設(shè)計及軟件實現(xiàn)
一、實驗內(nèi)容及步驟
1、 調(diào)用信號產(chǎn)生函數(shù)mstg產(chǎn)生由三路抑制載波調(diào)幅信號相加構(gòu)成的復(fù)合信號st,三路信號在時域混疊無法在時域分離,但頻域是可分離的,所以可以通過濾波的方法在頻域分離。
2、 要求將st中三路調(diào)幅信號分離,通過觀察st的幅頻特性曲線,分別確定可以分離st中三路抑制載波單頻調(diào)幅信號的三個濾波器(低通、高通、帶通)的通帶截止頻率和阻帶截止頻率。要求濾波器的通帶最大衰減為0.1db,阻帶最小衰減為60db.
3、 編程序調(diào)用MATLAB濾波器設(shè)計函數(shù)ellipord和ellip分別設(shè)計三個橢圓濾波器,并繪圖顯示其損耗函數(shù)曲線。
4、 調(diào)用濾波器實現(xiàn)函數(shù)filter,用三個濾波器分別對信號產(chǎn)生函數(shù)mstg產(chǎn)生的信號st進(jìn)行濾波,分離出st中的三路不同載波頻率的調(diào)幅信號yn1、yn2、yn3的,并繪圖顯示其時域波形,觀察分離效果。
二、實驗結(jié)果顯示
原信號圖形:
高通濾波器
輸出波形
帶通濾波器
輸出波形
低通濾波器
輸出波形
帶阻濾波器
輸出波形
三、實驗結(jié)論:由上面所繪圖形可知,利用數(shù)字濾波器完全可以將時域混疊而頻域未混疊的波形分開,達(dá)到濾波目的。
四、思考題
(1)請閱讀信號產(chǎn)生函數(shù)mstg,確定三路調(diào)幅信號的載波頻率和調(diào)制信號頻率。
答:第一路調(diào)幅信號的調(diào)制信號頻率為100HZ,載波頻率為1000HZ;第二路調(diào)幅信號的調(diào)制信號頻率為50HZ,載波頻率為500HZ;第三路調(diào)幅信號的調(diào)整信號頻率為25HZ,載波頻率為250HZ。
(2)信號產(chǎn)生函數(shù)mstg中采樣點(diǎn)數(shù)N=1600,對st進(jìn)行N點(diǎn)FFT可以得到6根理想譜線。如果取N=1800,可否得到6根理想譜線?為什么?N=2000呢?請改變函數(shù)mstg中采樣點(diǎn)數(shù)N的值,觀察頻譜圖驗證您的判斷是否正確?
答:
因為信號st是周期序列,譜分析時要求觀察時間為整數(shù)倍周期。分析可知,st的每個頻率成分都是25Hz的整數(shù)倍。采樣頻率Fs=10kHz=25400Hz,即在25Hz的正弦波的1個周期中采樣400點(diǎn)。所以,當(dāng)N為400的整數(shù)倍時一定為st的整數(shù)個周期。因此,采樣點(diǎn)數(shù)N=800和N=2000時,對st進(jìn)行N點(diǎn)FFT可以得到6根理想譜線。如果取N=1000,不是400的整數(shù)倍,不能得到6根理想譜線。
(3)修改信號產(chǎn)生函數(shù)mstg,給每一路調(diào)幅信號加入載波成分,產(chǎn)生AM信號,觀察AM信號與抑制載波調(diào)幅信號的時域波形及其頻譜的差別。
可以觀察到AM的頻譜中含有離散的載波分量,且占用很大比重。
五、實驗程序:
1、信號產(chǎn)生函數(shù)mstg程序:
function 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)幅信號的載波頻率fc1=1000HZ
fm1=fc1/10;%第一路調(diào)幅信號的調(diào)制信號頻率為fm1=100hz.
fc2=FS/20;%第二路調(diào)幅信號的載波頻率fc2=500HZ
fm2=fc2/10;%第二路調(diào)幅信號的調(diào)制信號頻率為fm2=50hz.
fc3=FS/40;%第三路調(diào)幅信號的載波頻率fc3=250HZ
fm3=fc3/10;%第三路調(diào)幅信號的調(diào)制信號頻率為fm3=25hz.
xt1=cos(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);%計算信號st的頻譜.
%繪圖
subplot(211)
plot(t,st);grid on;xlabel(t/s);ylabel(s(t));
axis([0,TP/4,min(st),max(st)]);title((a) s(t)的波形)
subplot(212)
stem(f,abs(fxt)/max(abs(fxt)),.);grid on;title((b) s(t)的頻譜)
axis([0,FS/5,0,1.2]);xlabel(f/HZ);ylabel(幅度);
2、高通濾波器的程序
%高通濾波器設(shè)計
fp=800;
fs=700;
Fs=10000;
wp=2*fp/Fs;ws=2*fs/Fs;
rp=1;rs=40;
N=800;st=mstg;
T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
[N1,wpo]=ellipord(wp,ws,rp,rs);%確定最小階數(shù)和截止頻率
[B,A]=ellip(N1,rp,rs,wpo,high);%求傳遞函數(shù)的分子分母系數(shù)
y=filter(B,A,st);%濾波
fyt=fft(y,N);%求其頻譜
subplot(2,1,1),plot(t,y),grid on;xlabel(t/s),ylabel(y(t)),
axis([0,Tp/4,min(y),max(y)]),title((a) y(t)的波形)
subplot(2,1,2);
stem(f,abs(fyt)/max(abs(fyt)),.);grid on;title((b) y(t)的頻譜)
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度)
3、帶通濾波器
%帶通濾波器
fpl=400;fpu=600;fsl=350;fsu=650;Fs=10000;
wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];
rp=1;rs=40;
N=800;st=mstg;
T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
[N1,wpo]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N1,rp,rs,wpo);
y=filter(B,A,st);
fyt=fft(y,N);
subplot(2,1,1),plot(t,y),grid on;xlabel(t/s),ylabel(y(t)),
axis([0,Tp/4,min(y),max(y)]),title((a) y(t)的波形)
subplot(2,1,2);
stem(f,abs(fyt)/max(abs(fyt)),.);grid;title((b) y(t)的頻譜)
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度);
4、低通濾波器設(shè)計
%低通濾波器
fp=350;
fs=400;
Fs=10000;
wp=2*fp/Fs;ws=2*fs/Fs;
rp=1;rs=40;
N=800;st=mstg;
T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
[N1,wpo]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N1,rp,rs,wpo);
y=filter(B,A,st);
fyt=fft(y,N);
subplot(2,1,1),plot(t,y),grid,xlabel(t/s),ylabel(y(t)),
axis([0,Tp/4,min(y),max(y)]),title((a) y(t)的波形)
subplot(2,1,2);
stem(f,abs(fyt)/max(abs(fyt)),.);grid;title((b) y(t)的頻譜)
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度)
5、帶阻濾波器的設(shè)計
%帶阻濾波器的設(shè)計
fpl=350;
fpu=700;
fsl=400;
fsu=600;
Fs=10000;
wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];
rp=1;rs=40;
N=800;st=mstg;
T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
[N1,wpo]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N1,rp,rs,wpo,stop);
y=filter(B,A,st);
fyt=fft(y,N);
subplot(2,1,1),plot(t,y),grid,xlabel(t/s),ylabel(y(t)),
axis([0,Tp/4,min(y),max(y)]),title((a) y(t)的波形)
subplot(2,1,2);
stem(f,abs(fyt)/max(abs(fyt)),.);grid;title((b) y(t)的頻譜)
axis([0,Fs/5,0,1.2]);
xlabel(f/Hz);ylabel(幅度)
展開閱讀全文