1、MATLAB实现抽样定理探讨及仿真应用 MATLAB实现抽样定理探讨及仿真课程设计的目的利用 MATLAB,仿模信号抽样与恢复系统的实际实现,探讨过抽样和欠抽样的信号以及抽样与恢 复系统的性能。二 课程设计的原理模拟信号经过 (A/D) 变换转换为数字信号的过程称为采样,信号采样后其频谱产生了周期延 拓,每隔一个采样频率 fs ,重复出现一次。为保证采样后信号的频谱形状不失真,采样频率必须大 于信号中最高频率成分的两倍, 这称之为采样定理 。时域采样定理从采样信号 恢复原信号 必需满足两个条件:(1) 必须是带限信号,其频谱函数在 各处为零;(对信号的要求,即只有带限信号 才能适用采样定理。
2、)(2) 取样频率不能过低,必须 2 (或 2 )。(对取样频率的要求,即取样频率要足够大,采得的样值要足够多,才能恢复原信号。 )如果采样频率 大于或等于 , 即 ( 为连续信号 的有限频谱),则采样离散信号 能无失真地恢复到原 来的连续信号 。一个频谱在区间( - , )以外为零的频带有限信号 ,可唯一地由 其在均匀间隔 ( )上的样点值 所确定。根据时域与频域的对称性,可以由时等抽样频率时的抽样信号及频谱不混叠)a)(c)2.1 信号采样b)c)高抽样频率时的抽样信号及频谱低抽样频率时的抽样信号及频谱如图 1 所示,给出了信号采样原理图信号采样原理图( a)不混叠)由图 1可见, fs
3、(t)f (t ) Ts (t) ,其中,冲激采样信号 Ts (t)的表达式为:Ts (t) (t nTs)n其傅立叶变换为s ( n s) ,其中 s 2n Ts设 F(j ),Fs(j )分别为 f(t), fs(t)的傅立叶变换,由傅立叶变换的频域卷积定理,可得Fs( j )F(j )* s ( n s) 1 F j( n s) n Ts n若设 f (t)是带限信号,带宽为 m, f (t)经过采样后的频谱 Fs(j )就是将 F( j )在频率轴上搬移至 0, s, 2s, , ns, 处(幅度为原频谱的 1Ts 倍)。因此,当 s 2 m时,频谱不发生 混叠;而当 s 2 m 时,
4、频谱发生混叠。2.1.3 信号重构设信号 f (t)被采样后形成的采样信号为 fs(t) ,信号的重构是指由 fs(t)经过内插处理后,恢复出原来信号 f (t )的过程。又称为信号恢复。若设 f (t)是带限信号,带宽为 m ,经采样后的频谱为 Fs( j )。设采样频率 s 2 m,则由式Ts c(9)知 Fs(j )是以 s为周期的谱线。现选取一个频率特性 H(j ) s c (其中截止 0c频率 c 满足 m c s )的理想低通滤波器与 Fs( j ) 相乘,得到的频谱即为原信号的频谱c m c 2 sF( j )。显然, F(j ) Fs(j )H( j ),与之对应的时域表达式为
5、10)f (t) h(t)* fs(t)而fs(t) f(t) (t nTs) f(nTs) (t nTs)nn1ch(t) F 1H(j ) Ts c Sa( ct)将 h(t)及 fs(t) 代入式( 10)得Tf(t) fs(t)*Ts c Sa( ct) s c f (nTs )Sa c(t nTs) (11)n式( 11)即为用 f (nTs)求解 f (t)的表达式,是利用 MATLAB实现信号重构的基本关系式,抽样函数Sa( ct) 在此起着内插函数的作用。三、抽样定理的仿真和探讨3.1.1 Sa(t) 的临界采样及重构图当采样频率小于一个连续的同信号最大频率的 2 倍,即 s
6、2 m 时,称为临界采样 . 修改门 信号宽度、采样周期等参数,重新运行程序,观察得到的采样信号时域和频域特性,以及重构信号 与误差信号的变化。程序运行结果:3.1.2 Sa(t) 的过采样及重构当采样频率大于一个连续的同信号最大频率的 2 倍,即 s 2 m 时,称为过采样在不同采样频率的条件下, 观察对应采样信号的时域和频域特性, 以及重构信号与误差信号的变化。 程序运行结果:3.1.3 Sa(t) 的欠采样及重构当采样频率小于一个连续的同信号最大频率的 2倍,即 s 2 m 时,称为过采样。利用频域滤波的方法修改实验中的部分程序,完成对采样信号的重构。程序运行结果:误差分析: 绝对误差
7、error 已大为增加,其原因是因采样信号的频谱混叠,使得在 c 区域内的 频谱相互“干扰”所致。四、课题研讨的小结该课程设计使我们对采样定理的一些基本公式得到了进一步巩固。在整个实验过程中,我们查 阅了很多相关知识,从这些书籍中我们受益良多。虽然学习过采样过程和恢复过程,但是认识不深, 实践能力也有所欠缺,通过这次实验对采样过程和恢复过程有了进一步掌握。通过实验的设计使我们对采样定理和信号的重构有了深一步的掌握,也让我们在实践的过程中 了解到团队合作的重要性。虽然在实验过程中出现很多错误,但是在老师的帮助和团队成员的齐心 协力下,不断的修正错误,同时也学会了 MATLAB中信号表示的基本方法
8、及绘图函数的调用。虽然刚开始我们对 MATLAB的基本使用方法没有太深刻的认识,但是该实验使我们对 MATLAB函数程序的基本结构有所了解,也提高了我们独立完成实验的能力和理论联系实际的应用能力。通过这次课程设计,我们不仅学到了学科知识,锻炼了实践能力,更重要的是学到了学习的方 法和团队合作的重要性。我们团队分工有序,每个人都能按时完成各自的任务。在遇到问题时,大 家都能够互相理解,互相帮助,最后圆满完成课题! 附录: 标准文档Sa(t )的临界采样及重构1.Sa(t) 的临界采样及重构程序代码; wm=1;wc=wm;Ts=pi/wm;ws=2.4*pi/Ts;n=-100:100;nTs=
9、n*Ts;f=sinc(nTs/pi);Dt=0.005;t=-20:Dt:20;fa=f*Ts*wc/pi*sinc(wc/pi)*(ones(length(nTs),1)*t-nTs*ones(1,length(t);subplot(311);plot(t,fa) xlabel(t);ylabel(fa(t);title(sa(t)=sinc(t/pi)grid;t1=-20:0.5:20; f1=sinc(t1/pi);subplot(312);stem(t1,f1);xlabel(kTs);ylabel(f(kTs);title(sa(t)=sinc(t/pi)grid; subplo
10、t(313);plot(t,fa) xlabel(t);ylabel(fa(t);title( 由 sa(t)=sinc(t/pi)的原信号 );的临界采样信号 );的临界采样信号重构 sa(t);grid;2. 程序运行运行结果图与分析t选取的图3.1.1 Sa(t) 的临界采样及重构图 运行结果分析:为了比较由采样信号恢复后的信号与原信号的误差,可以计算出两信号的绝对误差。当 数据越大,起止的宽度越大。二、 Sa(t) 的过采样及重构1.Sa(t) 的过采样及重构程序代码;wm=1;wc=1.1*wm;Ts=1.1*pi/wm;ws=2*pi/Ts;n=-100:100;nTs=n*Ts;
11、f=sinc(nTs/pi); Dt=0.005;t=-10:Dt:10; fa=f*Ts*wc/pi*sinc(wc/pi)*(ones(length(nTs),1)*t-nTs*ones(1,length(t);subplot(411);plot(t,fa)xlabel(t);ylabel(fa(t);title(sa(t)=sinc(t/pi) 的原信号 );grid;error=abs(fa-sinc(t/pi);t1=-10:0.5:10; f1=sinc(t1/pi);标准文档subplot(412);stem(t1,f1); xlabel(kTs); ylabel(f(kTs);
12、 title(sa(t)=sinc(t/pi) 的采样信号 ); grid;subplot(413);plot(t,fa) xlabel(t); ylabel(fa(t);title( 由 sa(t)=sinc(t/pi) 的过采样信号重构 sa(t); grid;subplot(414);plot(t,error);xlabel(t);ylabel(error(t);title( 过采样信号与原信号的误差 error(t);grid;2. 程序运行运行结果图与分析。图3.1.2 Sa(t) 的过采样信号、重构信号及两信号的绝对误差图 运行分析:将原始信号分别修改为抽样函数 Sa(t) 、正弦
13、信号 sin(20*pi*t)+cos(20*pi*t) 、指数信号 e-2tu(t) 时, 在不同采样频率的条件下,可以观察到对应采样信号的时域和频域特性,以及重构信号与误差信号的变化。三、 Sa(t) 的欠采样及重构1.Sa(t) 的欠采样及重构程序代码;wm=1;wc=wm;Ts=2.5 *pi/wm;ws=2*pi/Ts;n=-100:100;nTs=n*Ts;标准文档f=sinc(nTs/pi);Dt=0.005;t=-20:Dt:20;fa=f*Ts*wc/pi*sinc(wc/pi)*(ones(length(nTs),1)*t-nTs*ones(1,length(t); err
14、or=abs(fa-sinc(t/pi);subplot(411);plot(t,fa) xlabel(t);ylabel(fa(t);title(sa(t)=sinc(t/pi) 的原信号 );grid;t1=-20:0.5:20;f1=sinc(t1/pi);subplot(412);stem(t1,f1);xlabel(kTs);ylabel(f(kTs);title(sa(t)=sinc(t/pi) 的采样信号 sa(t);grid;subplot(413);plot(t,fa) xlabel(t);ylabel(fa(t);title( 由 sa(t)=sinc(t/pi) 的欠采样信号重构 sa(t);grid;subplot(414);plot(t,error);xlabel(t);ylabel(error(t);title( 欠采样信号与原信号的误差 error(t);grid;2. 程序运行运行结果图与分析图3.1.3 Sa(t )的欠采样信号、重构信号及两信号的绝对误差图