实验4IIR数字滤波器设计及软件实现-实验报告汇总 下载本文

[N,wp0]=ellipord(wp,ws,rp,rs);%μ÷ó?ellipod????í??2DF?×êyNoíí¨′????1?μ?êwp

[B,A]=ellip(N,rp,rs,wp0);%μ÷ó?ellip????í??2′?í¨DF?μí3oˉêy?μêy?òá?BoíA

y1t=filter(B,A,st);%??2¨?÷μ?èí?têμ?? %?????a??í?2?·? figure(2); subplot(2,1,1); [H1,w]=freqz(B,A,1000); m=abs(H1);

plot(w/pi,20*log(m/max(m)));grid on; title('μíí¨??2¨?eo?oˉêy?ú??'); axis([0,1,-300,20]); xlabel('w/pi');ylabel('H1'); subplot(2,1,2);

ss=0:0.02/800:0.02-0.02/800;

plot(ss,y1t);title('μíí¨??2¨oóμ?2¨D?'); axis([0,0.02,-1.2,1.2]); xlabel('t/s');ylabel('y1t');

%?????a3¢ê?2?·?

%N=1600; %N?aD?o?stμ?3¤?è?£

%Fs=10000;T=1/Fs;Tp=N*T; %2é?ù?μ?êFs=10kHz£?Tp?a2é?ùê±?? %t=0:T:(N-1)*T;k=0:N-1;f=k/Tp; %figure(5)

%stem(k,abs(fft(y1t,1600))/max(abs(fft(y1t,1600))),'.');grid;title('(b) s(t)μ??μ?×');axis([0,Fs/5,0,1.2]);

%%′?í¨??2¨?÷μ?êμ??ó?éè?? fpl=450;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); figure(3); subplot(2,1,1); [H2,w]=freqz(B,A,1000); m=abs(H2);

plot(w/pi,20*log(m/max(m)));grid on; axis([0,1,-300,20]);

title('′?í¨??2¨?eo?oˉêy?ú??'); xlabel('w/pi');ylabel('H2');

- 5 -

subplot(2,1,2);

plot(ss,y2t);title('′?í¨??2¨oóμ?2¨D?');axis([0,0.02,-1.2,1.2]); xlabel('t/s');ylabel('y2t');

%??í¨??2¨?÷μ?êμ??ó?éè?? 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,'high'); y3t=filter(B,A,st); figure(4); subplot(2,1,1); [H3,w]=freqz(B,A,1000); m=abs(H3);

plot(w/pi,20*log(m/max(m)));grid on;

title('??í¨??2¨?eo?oˉêy?ú??');axis([0,1,-250,20]); xlabel('w');ylabel('H3'); subplot(2,1,2);

plot(ss,y3t);title('??í¨??2¨oóμ?2¨D?');axis([0,0.02,-1.2,1.2]); xlabel('t/s');ylabel('y3t'); clc;clear

图形输出如下:

- 6 -

5.信号产生函数mstg清单 function st=mstg

%产生信号序列向量st,并显示st的时域波形和频谱

%st=mstg 返回三路调幅信号相加形成的混合信号,长度N=1600 N=1600 %N为信号st的长度。

- 7 -

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路调幅信号的载波频率fc1=1000Hz,

fm1=fc1/10; %第1路调幅信号的调制信号频率fm1=100Hz fc2=Fs/20; %第2路调幅信号的载波频率fc2=500Hz

fm2=fc2/10; %第2路调幅信号的调制信号频率fm2=50Hz fc3=Fs/40; %第3路调幅信号的载波频率fc3=250Hz,

fm3=fc3/10; %第3路调幅信号的调制信号频率fm3=25Hz xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号 xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号 xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号 st=xt1+xt2+xt3; %三路调幅信号相加 fxt=fft(st,N); %计算信号st的频谱

%====以下为绘图部分,绘制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('幅度') 6.思考题

(1)请阅读信号产生函数mstg,确定三路调幅信号的载波频率和调制信号频率。

答:(如上实验截图)

第一路调幅信号的载波频率fc1=250Hz

第一路调幅信号的调制信号频率fm1=25Hz 第二路调幅信号的载波信号频率fc2=500Hz 第二路调幅信号的调制信号频率fm2=500Hz 第三路调幅信号的载波频率fc3=1000Hz 第三路调幅信号的调制信号频率fm3=100Hz

(2)信号产生函数mstg中采样点数N=800,对st进行N点FFT可以得到6根理想谱线。如果取N=1000,可否得到6根理想谱线?为什么?N=2000呢?请改变函数mstg中采样点数N的值,观察频谱图验证您的判断是否正确。

答:因为信号st是周期序列,谱分析时要求观察时间为整数倍周期。

分析发现,st的每个频率成分都是25Hz的整数倍。采样频率

Fs=10kHz=25×400Hz,即在25Hz的正弦波的1个周期中采样400点。所以,当N为400的整数倍时一定为st的整数个周期。因此,采样点数N=800和N=2000时,对st进行N点FFT可以得到6根理想谱线。如果取N=1000,不是400的整数倍,不能得到6根理想谱线。

- 8 -