[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 -