实验三信号抽样及信号重建一、实验目的1、进一步理解信号的抽样及抽样定理;2、进一步掌握抽样信号的频谱分析;3、掌握和理解信号抽样以及信号重建的原理;二、实验原理及方法1、信号的抽样及抽样定理抽样(Sampling),就是从连续时间信号中抽取一系列的信号样本,从而,得到一个离散时间序列(Discrete-timesequence),图3-1给出了信号理想抽样的原理图:上图中,假设连续时间信号是一个带限信号(BandlimitedSignal),其频率范围为mm~,抽样脉冲为理想单位冲激串(UnitImpulseTrain),其数学表达式为:)()(snTttp3.1由图可见,模拟信号x(t)经抽样后,得到已抽样信号(SampledSignal)xs(t),且:)()()(tptxtxs3.2将p(t)的数学表达式代入上式得到:)()()(sssnTtnTxtx3.3显然,已抽样信号xs(t)也是一个冲激串,只是这个冲激串的冲激强度被x(nTs)加权了。从频域上来看,p(t)的频谱也是冲激序列,且为:)()}({ssntpF3.4)(tx)(tp)(txs)(jXmm图3-1(a)抽样原理图,(b)带限信号的频谱(a)(b)根据傅里叶变换的频域卷积定理,时域两个信号相乘,对应的积的傅里叶变换等于这两个信号的傅里叶变换之间的卷积。所以,已抽样信号xs(t)的傅里叶变换为:nsssnjXTjX))((1)(3.5表达式4.5告诉我们,如果信号x(t)的傅里叶变换为X(j),则已抽样信号xs(t)的傅里叶变换Xs(j)等于无穷多个加权的移位的X(j)之和,或者说,已抽样信号的频谱等于原连续时间信号的频谱以抽样频率s为周期进行周期复制的结果。如图3-2所示:3.6在MATLAB中,对信号抽样的仿真,例题设连续时间信号为一个正弦信号x(t)=cos(0.5πt),抽样周期为Ts=1/4秒,编程序绘制信号x(t)和已抽样信号x[n]的波形图。范例程序3-1,Sampling如下:%Samplingclear,closeall,t=0:0.01:10;Ts=1/4;%Samplingperiodn=0:Ts:10;%Makethetimevariabletobediscretex=cos(0.5*pi*t);xn=cos(0.5*pi*n);%Samplingsubplot(221)plot(t,x),title('Acontinuous-timesignalx(t)'),xlabel('Timet')subplot(222)stem(n,xn,'.'),title('Thesampledversionx[n]ofx(t)'),xlabel('Timeindexn')执行该程序后,得到的波形图如图3-3所示。)(tx)(tp)(txs)(jX)(jP)(jXssssMMsTtttsT/1图3-2信号抽样及其频谱图图3-3连续时间信号及其抽样后的离散时间序列在这个范例程序中,先将连续时间t进行离散化,使之成为以Ts=1/4秒的离散时间n,然后,将n代入到信号x(t)的数学表达式中计算,就完成了抽样过程,且得到了抽样后的离散时间序列x[n]。2、信号抽样过程中的频谱混叠为了能够观察到已抽样信号的频谱是否会存在混叠现象,或者混叠程度有多么严重,有必要计算并绘制出已抽样信号的傅里叶变换。根据式3.5可计算出已抽样信号的频谱。其中,主要利用了一个for循环程序完成周期延拓运算。Program3-2%Programclear,closeall,tmax=4;dt=0.01;t=0:dt:tmax;Ts=1/10;ws=2*pi/Ts;w0=20*pi;dw=0.1;w=-w0:dw:w0;n=0:1:tmax/Ts;x=exp(-4*t).*u(t);xn=exp(-4*n*Ts);subplot(221)plot(t,x),title('Acontinuous-timesignalx(t)'),xlabel('Timet'),axis([0,tmax,0,1]),gridonsubplot(223)stem(n,xn,'.'),title('Thesampledversionx[n]ofx(t)'),xlabel('Timeindexn'),axis([0,tmax/Ts,0,1]),gridonXa=x*exp(-j*t'*w)*dt;X=0;fork=-8:8;X=X+x*exp(-j*t'*(w-k*ws))*dt;endsubplot(222)plot(w,abs(Xa))title('Magnitudespectrumofx(t)'),gridonaxis([-60,60,0,1.8*max(abs(Xa))])subplot(224)plot(w,abs(X))title('Magnitudespectrumofx[n]'),xlabel('Frequencyinradians/s'),gridonaxis([-60,60,0,1.8*max(abs(Xa))])程序运行结果:图3-4程序运行结果图本程序可以用来观察在不同的抽样频率条件下,已抽样信号的频谱的混叠程度,从而更加牢固地理解抽样定理。但是,提请注意的是,在for循环程序段中,计算已抽样信号的频谱X时,没有乘以系数1/Ts,是为了便于比较X与Xa之间的区别,从而方便观察频谱的混叠程度。另外,程序中的时间步长dt的选择应该与抽样周期Ts保持一定的比例关系,建议Ts不应小于10dt,否则,计算得到的已抽样信号的频谱将出现错误。3、信号重建如果满足抽样定理,那么,我们就可以唯一地由已抽样信号x[n]恢复出原连续时间信号x(t)。在理想情况下,可以将离散时间序列通过一个理想低通滤波器,图3.5给出了理想情况下信号重建的原理示意图。理想低通滤波器也称重建滤波器,它的单位冲激响应ttTthccc)sin()(3.7)(tx)(tp)(txp图3-5信号重建原理图IdealLowpassFilter)(txr已抽样信号xp(t)的数学表达式为:)()()(nTtnTxtxp,根据系统输入输出的卷积表达式,我们有)()()(thtxtxpr3.8将xp(t)代入式4.8,有ncccrnTtnTtTnTxtx)())(sin()()(3.9这个公式称为内插公式(InterpolationFormula),该公式的推导详见教材,请注意复习有关内容。须提请注意的是,这里的内插公式是基于重建滤波器为理想低通滤波器的。若重建滤波器不是理想低通滤波器,则不能用这个内插公式。理想低通滤波器的频率响应特性曲线和其单位冲激响应曲线如图3.6所示。范例程序程序就是根据这个内插公式来重构原始信号。本程序已经做了较为详细的注释,请结合教材中的内插公式仔细阅读本程序,然后执行,以掌握和理解信号重建的基本原理。范例程序Program3-3如下。%Program%Signalsamplingandreconstruction%Theoriginalsignalistheraisedcosinsignal:x(t)=[1+cos(pi*t)].*[u(t+1)-u(t-1)].clear;closeall,wm=2*pi;%Thehighestfrequencyofx(t)a=input('Typeinthefrequencyratews/wm=:');%wsisthesamplingfrequencywc=wm;%Thecutofffrequencyoftheideallowpassfiltert0=2;t=-t0:0.01:t0;x=(1+cos(pi*t)).*(u(t+1)-u(t-1));subplot(221);%Plottheoriginalsignalx(t)plot(t,x);gridon,axis([-2,2,-0.5,2.5]);title('Originalsignalx(t)');xlabel('Timet');ws=a*wm;%SamplingfrequencyTs=2*pi/ws;%SamplingperiodN=fix(t0/Ts);%Determinethenumberofsamplersn=-N:N;nTs=n*Ts;%Thediscretetimevariablexs=(1+cos(pi*nTs)).*(u(nTs+1)-u(nTs-1));%Thesampledversionofx(t))(jHTcc)(thcTt图3-6理想低通滤波器的幅度频率响应和单位冲激响应subplot(2,2,2)%Plotxsstem(n,xs,'.');xlabel('Timeindexn');gridon,title('Sampledversionx[n]');xr=zeros(1,length(t));%SpecifyamemorytosavethereconstructedsignalL=length(-N:N);xa=xr;figure(2);%Openanewfigurewindowtoseethedemoofsignalreconstructionstem(nTs,xs,'.');xlabel('Timeindexn');gridon;holdonfori=1:Lm=(L-1)/2+1-i;xa=Ts*(wc)*xs(i)*sinc((wc)*(t+m*Ts)/pi)/pi;plot(t,xa,'b:');axis([-2,2,-0.5,2.5]);holdonpausexr=xr+xa;%Interpolationendplot(t,xr,'r');axis([-2,2,-0.5,2.5]);holdonfigure(1);subplot(223)plot(t,xr,'r');axis([-2,2,-0.5,2.5]);xlabel('Timet');gridontitle('Reconstructedsignalxr(t)');%Computetheerrorbetweenthereconstructedsignalandtheoriginalsignalerror=abs(xr-x);subplot(2,2,4)plot(t,error);gridontitle('Error');xlabel('Timet')程序运行结果图:当ws/wm=3时图3-7程序运行图图3-8时域采样图注意:根据抽样定理ws/wm的值必须大于或等于2三、实验内容及步骤实验前,必须首先阅读本实验原理,了解所给的MATLAB相关函数,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序所完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序的编程算法。实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。1、运行Program3-1,自行编写一个连续指数信号波形及其抽样。2、给”信号抽样过程中的频谱混叠内容”范例程序Program3_2加注释。3、读懂Program3-3程序,分别进行设置ws/wm=2,ws/wm=1,ws/wm=3,并运行抽样信号重建程序Program3_3,并根据抽样定理及重建条件分析三种设置情况下的结果。报告只需给出运行结果并进行解释。四、实验报告要求1.简述实验目的及实验原理2.抄写实验内容,写出程序清单3.记录信号波形4.实验总结(收获及体会)本实验完成时间:年月日