信号抽样与恢复

  • 格式:docx
  • 大小:405.59 KB
  • 文档页数:7

实验一信号抽样与恢复 一、实验目的 学会用MATLAB实现连续信号的采样和重建 二、实验原理 1.抽样定理 若)(tf是带限信号,带宽为m, )(tf经采样后的频谱)(sF就是将)(tf的频谱

)(F在频率轴上以采样频率s为间隔进行周期延拓。因此,当s2m时,不会发生频

率混叠;而当s<2m时将发生频率混叠。 2.信号重建 经采样后得到信号)(tfs经理想低通)(th则可得到重建信号)(tf,即:

)(tf=)(tfs*)(th

其中:)(tfs=)(tf)(snTt=)()(ssnTtnTf )()(tSaTthccs 所以: )(tf=)(tfs*)(th=)()(ssnTtnTf*)(tSaTccs

=csT)]([)(scsnTtSanTf 上式表明,连续信号可以展开成抽样函数的无穷级数。 利用MATLAB中的tttc)sin()(sin来表示)(tSa,有)(sin)(tctSa,所以可以得

到在MATLAB中信号由)(snTf重建)(tf的表达式如下: )(tf=csT)]([sin)(scsnTtcnTf

我们选取信号)(tf=)(tSa作为被采样信号,当采样频率s=2m时,称为临界采样。我们取理想低通的截止频率c=m。下面程序实现对信号)(tf=)(tSa的采样及由该采样信号恢复重建)(tSa: 三、上机实验内容 1.验证实验原理中所述的相关程序; 2.设f(t)=0.5*(1+cost)*(u(t+pi)-u(t-pi)) ,由于不是严格的频带有限信号,但其频谱大部分集中在[0,2]之间,带宽m可根据一定的精度要求做一些近似。试根据以下两种情况用 MATLAB实现由f(t)的抽样信号fs(t)重建f(t) 并求两者误差,分析两种情况下的结果。 (1) m=2 ,wc=1.2m , Ts=1; (2) m=2 ,wc=2m,Ts=2.5 3.对以下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(length(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)) 的采样信号'); 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; Ts=2.5即可; 三、将模块改变为程序

% Specify the random number stream t=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');ylabel('相角 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('The original signal spectrum'); xlabel('Frequency/Hz'); ylabel('PSD/w'); %pulse gennerate f0=200; yout2=0.5*square(2*pi*f0*t,10)+0.5; figure(5) plot(t,yout2); title('Duty 10%'); axis auto; %product yout3=yout1'.*yout2; figure(6) plot(t,yout3); %filter figure(7) yout4 = lsim(Hs,yout3,t); plot(t,yout4) %fft yout4 figure(8) [Xk_2,f_2]=fftseq(yout4,ts); plot(f_2,20*log10(fftshift(abs(Xk_2)))); title('The original signal spectrum'); xlabel('Frequency/Hz'); ylabel('PSD/w'); %fft yout3 figure(9) [Xk_3,f_3]=fftseq(yout3,ts); plot(f_3,20*log10(fftshift(abs(Xk_3)))); title('The original signal spectrum'); xlabel('Frequency/Hz'); ylabel('PSD/w'); %fft yout3 figure(10) [Xk_4,f_4]=fftseq(yout2,ts); plot(f_4,20*log10(fftshift(abs(Xk_4)))); title('The original signal spectrum'); xlabel('Frequency/Hz'); ylabel('PSD/w'); %plot figure(11) plot(t,yout1,'r-');hold on plot(t,yout3,'b-');hold on %plot figure(12) plot(t,yout4,'r-');hold on

(1)产生随机信号

(2)滤波器的频响

(3)随机信号经过滤波器成为限带信号 (4)滤波之后信号的频谱 (5)产生脉冲串 (6)对限带信号进行采样 00.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.9

1

-2000-1500-1000-5000500100015002000-90-80-70-60-50-40-30-20-100The original signal spectrumFrequency/HzPSD/w

00.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.91Duty 10% (7)经低通滤波器对信号进行恢复 (8)已恢复信号的频谱 (9)已采样信号的频谱出现频谱周期延拓

00.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.700.10.20.30.40.50.60.70.80.9100.010.020.030.040.050.060.07

-2000-1500-1000-5000500100015002000-110-100-90-80-70-60-50-40-30The original signal spectrumFrequency/HzPSD/w

-2000-1500-1000-5000500100015002000-110-100-90-80-70-60-50-40-30-20The original signal spectrumFrequency/HzPSD/w