MATLAB抽样定理验证
目的: 通过MATLAB编程实现对时域抽样定理的验证,加深抽样定理的理解。同时训练应用计算机分析问题的能力。 任务: 连续信号f(t)=cos(8*pi*t)+2*sin(40*pi*t)+cos(24*pi*t),经过理想抽样后得到抽样信号fs(t),通过理想低通滤波器后重构信号f(t)。 方法: 1、确定f(t)的最高频率fm。对于无限带宽信号,确定最高频率fm的方法:设其频谱的模降到10-5左右时的频率为fm。 2、确定Nyquist抽样间隔TN。选定两个抽样时间:TSTN。 3、MATLAB的理想抽样为 n=-200:200;nTs=n*Ts; 或 nTs=-0.04:Ts:0.04 4、抽样信号通过理想低通滤波器的响应 理想低通滤波器的冲激响应为 系统响应为 由于 所以 MATLAB计算为 ft=fs*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs *ones(1,length(t)))); 要求(画出6幅图): 当TSTN时同样可画出3幅图。 %a wm=40*pi; wc=1.2*wm; %理想低通截止频率 Ts=[0.02 0.03]; N=length(Ts); for k=1:N; n=-100:100; nTs=n*Ts(k); fs=(cos(8*pi*nTs)+2*sin(40*pi*nTs)+cos(24*pi*nTs)).*(u(nTs+pi)-u(nTs-pi)); t=-0.25:0.001:0.25; ft=fs*Ts(k)*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs *ones(1,length(t)))); t1=-0.25:0.001:0.25; f1=(cos(8*pi*t1)+2*sin(40*pi*t1)+cos(24*pi*t1)).*(u(t1+0.25)-u(t1-0.25)); %在一副图中画原连续信号f(t)和样信号f_s(t)。 figure(3*k-2) plot(t1,f1, r: , linewidth ,2),hold on stem(nTs,fs),grid on axis([-0.25 0.25 -4 4]) line([-0.25 0.25],[0 0], color , k ) line([0 0],[-4 4], color , k ) xlabel( nTs ),ylabel( f(nTs) ); title([ 抽样信号Ts= ,num2str(Ts(k)), 时的抽样信号f(nTs) ]) legend( 包络线 , 抽样信号 ,0) hold off % 画重构的信号 figure(3*k-1) plot(t,ft),grid on axis([-0.25 0.25 -4 4]) line([-0.25 0.25],[0 0], color , k ) ine([0 0],[-4 4], color , k ) xlabel( t ),ylabel( ft ); title( 由f(nTs)信号重建得到的信号 ) %画出错信号 error=abs(ft-f1); figure(3*k) plot(t,error),grid on axis([-0.25 0.25 -0.1 4]) line([-0.25 0.25],[0 0], color , k ) line([0 0],[-4 4], color , k ) xlabel( t ),ylabel( error(t) ); title( 重建信号与原余弦信号的绝对误差 ) end 本文来自CSDN博客,转载请标:明处出