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