上机实验5连续信号的采样与重构一、实验目的1)验证采样定理;2)熟悉信号的抽样与恢复过程;3)通过实验观察欠采样时信号频谱的混迭现象;4)掌握采样前后信号频谱的变化,加深对采样定理的理解;5)掌握采样频率的确定方法。二、实验原理−𝑇𝑠𝑇𝑠2𝑇𝑠𝑛𝑇𝑠−𝑇𝑠𝑇𝑠2𝑇𝑠𝑛𝑇𝑠−𝜔𝑚𝜔𝑚−𝜔𝑚−𝜔𝑠𝜔𝑠𝜔𝑚−𝜔𝑚−𝜔𝑠𝜔𝑠𝜔𝑚f(t)t0ωttωtωω|Fo(ω)|fo(t)|Fs(ω)|fs(t)|S(ω)|s(t)|F(ω)|0000000............信号的采样与恢复示意图如上图所示抽样定理指出:一个有限频宽的连续时间信号f(t),其最高频率为𝜔𝑚,经过等间隔抽样后,只要抽样频率𝜔𝑠不小于信号最高频率𝜔𝑚的二倍,即满足𝜔𝑠≥2𝜔𝑚,就能从抽样信号fs(t)中恢复原信号,得到fo(t)。fo(t)与f(t)相比没有失真,只有幅度和相位的差异。一般把最低的抽样频率𝜔𝑠𝑚𝑖𝑛=2𝜔𝑚称为奈奎斯特抽样频率。当𝜔𝑠2𝜔𝑚时,fs(t)的频谱将会产生混迭现象,此时无法恢复原信号。f(t)的幅度频谱为|F(ω)|;开关信号s(t)为周期矩形脉冲,其脉宽τ相对于周期T非常小,故将其视为冲激序列,所以s(t)的幅度频谱|S(t)|亦为冲激序列;抽样信号fs(t)的幅度频谱为|Fs(ω)|;fo(t)的幅度频谱为|Fo(ω)|。观察抽样信号的频谱|Fs(ω)|,可以发现利用低通滤波器(其截止频率满足𝜔𝑚𝜔𝑐𝜔𝑠−𝜔𝑚)就能恢复原信号。信号抽样与恢复的原理框图如下图所示。图2.5-2信号抽样与恢复的原理框图由原理框图不难看出,A/D转换环节实现抽样、量化、编码过程;数字信号处理环节对得到的数字信号进行必要的处理;D/A转换环节实现数/模转换,得到连续时间信号;低通滤波器的作用是滤除截止频率以外的信号,恢复出与原信号相比无失真的信号fo(t)。三、实验内容与方法1.验证性实验1)正弦信号的采样MATLAB程序:clf;t=0:0.0005:1;f=13;xa=cos(2*pi*f*t);subplot(2,1,1)plot(t,xa);gridxlabel('时间,msec');ylabel('幅值');title('连续时间信号x_{a}(t)');axis([01-1.21.2])subplot(2,1,2);T=0.1;n=0:T:1;xs=cos(2*pi*f*n);k=0:length(n)-1;stem(k,xs);grid;xlabel('时间,msec');ylabel('幅值');f(t)A/D转换数字信号处理D/A转换低通滤波器fo(t)title('连续时间信号x[n]');axis([0(length(n)-1)-1.21.2]);正弦信号的采样结果如下图所示:2)模拟低通滤波器设计MATLAB程序:clf;Fp=3500;Fs=4500;Wp=2*pi*Fp;Ws=2*pi*Fs;[N,Wn]=buttord(Wp,Ws,0.5,30,'s');[b,a]=butter(N,Wn,'s');wa=0:(3*Ws)/511:3*Ws;h=freqs(b,a,wa);plot(wa/(2*pi),20*log10(abs(h)));gridxlabel('Frequency,Hz');ylabel('Gain,dB');title('Gainresponse');axis([03*Fs-605]);模拟低通滤波器设计结果如下图所示:3)时域过采样MATLAB程序:n=0:50;x=sin(2*pi*0.12*n);y=zeros(1,3*length(x));y([1:3:length(y)])=x;subplot(2,1,1)stem(n,x);title('输入序列');subplot(2,1,2)stem(n,y(1:length(x)));title('输出序列');离散信号的时域过采样结果如下图所示:4)频域过采样MATLAB程序:freq=[00.450.51];mag=[0100];x=fir2(99,freq,mag);[Xz,w]=freqz(x,1,512);subplot(2,1,1);plot(w/pi,abs(Xz));axis([0101]);gridtitle('输入谱');subplot(2,1,2);L=input('过采样因子=');y=zeros(1,L*length(x));y([1:L:length(y)])=x;[Yz,w]=freqz(y,1,512);plot(w/pi,abs(Yz));axis([0101]);gridtitle('输出谱');信号的频域过采样结果如下图所示:过采样因子=32.程序设计实验设计一模拟信号:x(t)=3sin(2π∙f∙t)采样频率fs为5120Hz,取信号频率f=150Hz(正常采样)和f=3000Hz(欠采样)两种情况进行采样分析。MATLAB程序:%用MATLAB产生连续信号y=3sin(2𝛑ft)(t0)和其对应的频谱x1=0:0.000000001:0.01;w=linspace(0,0.01,(length(x1)/100000));display('Pleaseinputthevalueoff')f=input('f=');figuresubplot(211)plot(x1,3*sin(2*pi*f*x1));%原时域连续信号y=3sin(2πft)xlabel('t');ylabel('x(t)');title('原时域连续信号y=3*sin(2*pi*f*t)');gridsin1=3*sin(2*pi*f*w);n=0:(length(w)-1);subplot(212)plot(1000000*w,fft1(w,sin1,n));%其对应频域信号Y=FFT(3sin(2πft))xlabel('w');ylabel('x(w)');title('其对应频域信号Y=FFT(3*sin(2*pi*f*t))');grid;其中要用到子函数fft1,程序代码如下:functionresult=fft1(w,hanshu,n)a=cell(1,length(w));fori=1:length(w)m=hanshu.*((exp(-j*(i-1)*pi/100)).^n);a{i}=sum(m);endfori=1:length(w)result(i)=a{i};end子函数通过控制参数n的取值多少可分别计算离散和近似连续信号的频谱值并作为函数值进行返回。时域波形及频谱曲线如下图所示:f=150Hz时f=3000Hz时%对连续信号y=3sin(2𝛑ft)进行抽样并产生其频谱:display('Pleaseinputthevalueoffs')f1=input('fs=');n=0:0.01*f1;zb=size(n)-1;figuresinf=3*sin(2*pi*f*0.01*n/zb(2));subplot(211);stem((2/10000*n,sinf,'.');xlabel('nTs');ylabel('x(n)');title('采样后的时域信号y=x(n)');w=0:(pi/100):30*pi;subplot(212)plot(5120*w,fft1(w,sinf,n));xlabel('w');ylabel('x(w)');title('采样后的频域信号y=FFT(3sin(2πfn))');grid采样后的时域波形及频谱曲线如下图所示:f=150Hz时f=3000Hz时%通过低通滤波恢复原连续信号[B,A]=butter(8,1000/1300);%设置低通滤波器参数[H,w]=freqz(B,A,512,30);figure;%绘制低通频谱图plot(w*2000/(2*pi),abs(H));xlabel('Hz');ylabel('频率响应幅度');title('低通滤波器');grid;figurey=filter(B,A,sinf);subplot(2,1,1);plot(n*0.01/zb(2),y);%恢复后的连续信号y=3sin(2πft)xlabel('t');ylabel('x(t)');title('恢复后的连续信号y=3*sin(2*pi*f*t)');grid;Y=fft(y,512);w=(0:255)/256*500;subplot(2,1,2);plot(20*w,([Y(1:256)]));%绘制频谱图xlabel('Hz');ylabel('频率响应幅度');title('频谱图');grid;恢复后的时域波形及频谱曲线如下图所示:f=150Hz时f=3000Hz时低通滤波器的频谱图由抽样定理可知,抽样后的信号频谱是原信号频谱以抽样频率为周期进行周期延拓形成的,周期性在采样后的频谱曲线上都有很好的体现。但是从采样后的结果以及与原连续信号频谱对比可以看出,信号频率为3000Hz的信号对应的抽样信号频谱出现了频谱混叠而并非原信号频谱的周期延拓。这是因为信号频率相对于采样频率取值过大导致采样角频率𝜔𝑠2𝜔𝑚,因此经周期延拓出现了频谱混叠。而信号频率为150Hz时,采样角频率𝜔𝑠≥2𝜔𝑚,从而可以实现原信号频谱以抽样频率为周期进行周期延拓,并不产生混叠,从而为下一步通过低通滤波器滤出其中的一个周期(即不失真的原连续信号)打下了基础。从恢复后的时域波形及频谱曲线可以看出,信号频率为150Hz的恢复波形明显比信号频率为3000Hz的恢复波形好。但是由于滤波器设计的还有待于改进,所以波形并不是很圆滑,但是已经可以基本达到实验目的,将原输入连续信号恢复。四、思考题1)若信号频率为5000Hz,请问本实验中的模拟信号采样后的混迭频率是多少赫兹?分析一200Hz的方波信号,采样频率为500Hz,用谱分析功能观察其频谱中的混迭现象,思考为什么会出现混迭。答:混迭频率是120Hz-5000Hz。因为方波信号除了频率为200Hz的基波外,还含有频率为200Hz的奇数倍的各次谐波,这些谐波频率的2倍都大于500Hz,所以取样后其频谱都会产生混迭现象。2)在时域抽样定理中,为什么要求被抽样信号必须是带限信号?如果频带是无限的,应如何处理?答:若被抽样信号不是带限信号,则无法确定一个抽样频率,使之大于被抽样信号最高频率的两倍,所以抽样后的频谱一定会产生混迭现象,因此要求被抽样信号必须是带限信号。若频带是无限的,则在抽样前必须通过一个抗混叠滤波器(即一个截止频率为采样频率一半的理想低通滤波器)将信号带限到采样频率的一半,从而减小混迭误差。