您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 抽样定理的仿真与分析
电子班马燕谢卫霞1抽样定理的仿真与分析一.仿真目的1)熟悉抽样定理、信号的抽样过程;2)通过实验观察欠采样时信号频谱的混叠现象;3)掌握抽样前后信号的频谱的变化,加深对抽样定理的理解;4)掌握抽样频率的确定方法。二.仿真原理说明及设计内容抽样器()ft函数发生器频率可调方波产生器()fst抽样原理框图低通抽样定理:一个频带限制在(0,Hf)赫内的时间连续信号mt,如果以1/2sHTf秒的时间间隔对它进行等间隔(均匀抽样,则mt将被所得到的抽样值完全确定。此定理告诉我们:若mt的频谱在某一角频率上hw以上为零,则mt中的全部信息完全包含在其间隔不大于1/2Hf秒的均匀抽样序列里。抽样速率sf(每秒钟的抽样点数)应不小于2Hf,否则,若抽样速率2sHff,则会产生失真,这种失真叫混叠失真。三设计内容(1)产生一个连续的时间连续信号,并对其进行频谱分析,绘制时域波形图和频域波形图。电子班马燕谢卫霞2(2)对产生的连续信号进行抽样,并绘制抽样后的时域波形图,和频域波形图。(3)改变抽样频率,分别对原始连续信号抽样,绘制抽样后的时域和频域波形,最后对得到的波形进行分析。从而验证抽样定理。四仿真设计实现:信号的产生和频域分析用MATLAB产生一个连续的信号,2)^200/)200(sin()(tttm;根据抽样定理,在MATLAB中编写源程序代码,画出原信号时域波形和频域波形,再分别用不同的频率的抽样脉冲对其进行抽样,在MATLAB中实现不同频率抽样时,时域和频域波形的效果对比,验证抽样定理。(1)原始信号2)^200/)200(sin()(tttm的时域波形和频域波形的源程序代码如下:t0=10;%定义时间长度ts=0.001;%抽样周期fs=1/ts;df=0.5;%频率的分辨率t=[-t0/2:ts:t0/2];%定义时间序列x=sin(200*t);m=x./(200*t);w=t0/(2*ts)+1;m(w)=1;%定义在t=0时刻的值为1m=m.*m;m=50.*m;%定义函数sinc(200t)subplot(2,1,1);plot(t,m);xlabel('时间');title('原信号的时域波形')axis([-0.15,0.15,-1,50]);[M,mn,dfy]=fftseq(m,ts,df);%傅里叶变换,程序在后面M=M/fs;f=[0:dfy:dfy*length(mn)-dfy]-fs/2;%定义频率序列subplot(2,1,2);plot(f,abs(fftshift(M)));xlabel('频率');电子班马燕谢卫霞3axis([-500,500,0,1]);title('原信号的频域波形');-0.1-0.0500.050.10.1501020304050时间原信号的时域波形-500-400-300-200-100010020030040050000.51频率原信号的频域波形(2)原始信号)(tm在抽样频率为200HZ和400HZ的抽样脉冲下抽样波形(此时的满足抽样定理2fhfs),其时域和频域波形如下%200hz抽样t0=10;%定义时间长度ts1=0.005;%充足抽样周期fs1=1/ts1;df=0.5;%频率的分辨率t1=[-t0/2:ts1:t0/2];%定义时间序列x1=sin(200*t1);m1=x1./(200*t1);w1=t0/(2*ts1)+1;电子班马燕谢卫霞4m1(w1)=1;%定义在t=0时刻的值为1m1=m1.*m1;m1=50.*m1;%定义函数sinc(200t)subplot(2,1,1);stem(t1,m1);xlabel('时间');title('抽样频率2fhfs时时域波形')axis([-0.15,0.15,-1,50]);[M1,mn1,dfy1]=fftseq(m1,ts1,df);%傅里叶变换,程序在后面M1=M1/fs1;N1=[M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1];f1=[-7*dfy1*length(mn1):dfy1:6*dfy1*length(mn1)-dfy1]-fs1/2;%定义频率序列subplot(2,1,2);plot(f1,abs(fftshift(N1)))xlabel('频率');axis([-500,500,0,1]);title('抽样频率fh1/2fs时信号的频域波形');-0.1-0.0500.050.10.1501020304050时间抽样频率200HZ时时域波形-500-400-300-200-100010020030040050000.51频率抽样频率为200HZ时信号的频域波形电子班马燕谢卫霞5-0.1-0.0500.050.10.1501020304050时间抽样频率400HZ时时域波形-500-400-300-200-100010020030040050000.51频率抽样频率为400HZ时信号的频域波形(3)原始信号)(tm在抽样频率为100HZ的抽样脉冲下的抽样波形(此时不满足抽样定理),其时域和频域波形如下所示:%100hz抽样t0=10;%定义时间长度ts1=0.01;%欠抽样周期fs1=1/ts1;df=0.5;%频率的分辨率t1=[-t0/2:ts1:t0/2];%定义时间序列x1=sin(200*t1);m1=x1./(200*t1);w1=t0/(2*ts1)+1;m1(w1)=1;%定义在t=0时刻的值为1m1=m1.*m1;m1=50.*m1;%定义函数sinc(200t)subplot(2,1,1);stem(t1,m1);xlabel('时间');title('抽样不足时时域波形')axis([-0.15,0.15,-1,50]);[M1,mn1,dfy1]=fftseq(m1,ts1,df);%傅里叶变换,程序在后面电子班马燕谢卫霞6M1=M1/fs1;N1=[M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1];f1=[-7*dfy1*length(mn1):dfy1:6*dfy1*length(mn1)-dfy1]-fs1/2;%定义频率序列subplot(2,1,2);plot(f1,abs(fftshift(N1)))xlabel('频率');axis([-500,500,0,1]);title('抽样不足(fh2fs)时信号的频域波形');-0.1-0.0500.050.10.1501020304050时间抽样不足时时域波形-500-400-300-200-100010020030040050000.51频率抽样不足(fh2fs)时信号的频域波形(4)因为在MATLAB的库函数中没有傅里叶变换函数,而在分析抽样定理时需要观察频域的抽样波形,需要用到傅里叶变换,故编写了子函数fftseq(),实现其频域变换,供上述程序调用其代码如下:function[M,m,df]=fftseq(m,ts,df)%[M,m,df]=fftseq(m,ts,df)fs=1/ts;ifnargin==2n1=0;电子班马燕谢卫霞7elsen1=fs/df;endn2=length(m);n=2^(max(nextpow2(n1),nextpow2(n2)));M=fft(m,n);m=[m,zeros(1,n-n2)];df=fs/n;end五.仿真结果分析通过matlab的编程实现对连续信号进行抽样的仿真实验,进一步加深了对我们队抽样定理的理解。首先通过以上仿真的波形图,我们可以很直观的看到,原始信号的频率约为64HZ,当抽样频率为原始信号频率的2倍及其以上(实验采用的是200HZ和400HZ)时,在抽样信号的频域图上,可以看出信号的频谱的相邻的周期内的波形不会发生混叠现象(即抽样只是实现了信号频谱在频域内周期的复制和搬移而已),通过一个合适的低通滤波器,就可以得到和原频谱一样的的波形,从而能够无失真的重建原始信号。而当抽样频率小于原始信号频谱的2倍时,从仿真的频域波形可以看出相邻频谱之间发生混叠从而与原来信号的频谱波形不一样。这样的波形通过低通滤波器也不能恢复原来的波形。从而验证了抽样定理的正确性。六.参考文献《现代通信原理与技术》第二版,张辉曹丽娜主编。《MATLAB电子仿真与应用教程》第二版,王华李友军刘建存主编。《MATLAB7.0/Simulink6.0应用实例仿真与高效算法开发》黄永安李文成高小科主编。
本文标题:抽样定理的仿真与分析
链接地址:https://www.777doc.com/doc-7754476 .html