资源描述:
《信号抽样与恢复.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一信号抽样与恢复一、实验目的学会用MATLAB实现连续信号的采样和重建二、实验原理1.抽样定理若是带限信号,带宽为,经采样后的频谱就是将的频谱在频率轴上以采样频率为间隔进行周期延拓。因此,当2时,不会发生频率混叠;而当<2时将发生频率混叠。2.信号重建经采样后得到信号经理想低通则可得到重建信号,即:=*其中:==所以:=*=*=上式表明,连续信号可以展开成抽样函数的无穷级数。利用MATLAB中的来表示,有,所以可以得到在MATLAB中信号由重建的表达式如下:=我们选取信号=作为被采样信号,当
2、采样频率=2时,称为临界采样。我们取理想低通的截止频率=。下面程序实现对信号=的采样及由该采样信号恢复重建:三、上机实验内容1.验证实验原理中所述的相关程序;2.设f(t)=0.5*(1+cost)*(u(t+pi)-u(t-pi)),由于不是严格的频带有限信号,但其频谱大部分集中在[0,2]之间,带宽可根据一定的精度要求做一些近似。试根据以下两种情况用MATLAB实现由f(t)的抽样信号fs(t)重建f(t)并求两者误差,分析两种情况下的结果。(1)=2,wc=1.2,Ts=1;(2)=2,w
3、c=2,Ts=2.53.对以下simulinkch6example1_He7.mdl低通采样定理以程序实现,具体参数参考框图内参数。实验结果:一、验证试验现象二、(1)wm=2,wc=1.2wm,Ts=1;wm=2;wc=1.2*wm;Ts=1;ws=2*pi/Ts;n=-100:100;nTs=n*Ts;f=0.5*(1+cos(nTs)).*rectpuls(n,2*pi);Dt=0.005;t=-15:Dt:15;fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(lengt
4、h(nTs),1)*t-nTs'*ones(1,length(t))));error=abs(fa-(0.5*(1+cos(t)).*rectpuls(t,2*pi)));%重构信号与原信号误差t1=-15:0.5:15;f1=0.5*(1+cos(t1)).*rectpuls(t1,2*pi);subplot(311);stem(t1,f1);xlabel('kTs');ylabel('f(kTs)');title('sa(t)=0.5*(1+cost)*(u(t+pi)-u(t-pi))的采
5、样信号');subplot(312);plot(t,fa)xlabel('t');ylabel('fa(t)');title('由sa(t)=0.5*(1+cost)*(u(t+pi)-u(t-pi))的过采样信号重构sa(t)');grid;subplot(313);plot(t,error);xlabel('t');ylabel('error(t)');title('过采样信号与原信号的误差error(t)');(2)wm=2,wc=2,Ts=2.5将频率在上述程序改为:wm=2;wc=wm
6、;Ts=2.5即可;三、将模块改变为程序%Specifytherandomnumberstreamt=linspace(0,1,4000);input=rand(1,4000);figure(1)plot(t,input);%设计50th巴特沃斯模拟低通滤波器Norder=50;fn=150;[b,a]=butter(Norder,fn,'s');%计算H(s)figure(2);freqs(b,a);%也可用指令freqs直接画出H(s)的频率响应曲线。xlabel('频率Hz');ylabe
7、l('相角rad');%滤波Hs=tf(b,a);yout1=lsim(Hs,input,t);figure(3);plot(t,yout1);figure(4)ts=1/4000;[Xk,f]=fftseq(yout1,ts);plot(f,20*log10(fftshift(abs(Xk))));title('Theoriginalsignalspectrum');xlabel('Frequency/Hz');ylabel('PSD/w');%pulsegenneratef0=200;you
8、t2=0.5*square(2*pi*f0*t,10)+0.5;figure(5)plot(t,yout2);title('Duty10%');axisauto;%productyout3=yout1'.*yout2;figure(6)plot(t,yout3);%filterfigure(7)yout4=lsim(Hs,yout3,t);plot(t,yout4)%fftyout4figure(8)[Xk_2,f_2]=fftseq(yout4,ts);plot(f_2,20*log10(ff