当前位置:首页 > 《信号与系统》实验指导书
实验五 信号抽样与恢复
一、实验目的
1、学会用MATLAB实现连续信号的采样和重建。 2、巩固抽样定理的内容。
二、实验原理
1.抽样定理
若f(t)是带限信号,带宽为?m, f(t)经采样后的频谱Fs(?)就是将f(t)的频谱
F(?)在频率轴上以采样频率?s为间隔进行周期延拓。因此,当?s??m时,不会发生频
率混叠;而当 2.信号重建
经采样后得到信号fs(t)经理想低通h(t)则可得到重建信号f(t),即:
?s
f(t)=fs(t)*h(t)
其中:fs(t)=f(t)所以:
??(t?nTs)=?f(nTs)?(t?nTs),h(t)?Ts???????cSa(?ct)。 ?f(t)=fs(t)*h(t)=?f(nTs)?(t?nTs)*Ts????cSa(?ct) ??=Tsc??f(nT)Sa[?(t?nT)]
scs???上式表明,连续信号可以展开成抽样函数的无穷级数。
利用MATLAB中的sinc(t)?tsin(?t)来表示Sa(t),有 Sa(t)?sinc(),所以可以?t?得到在MATLAB中信号由f(nTs)重建f(t)的表达式如下:
?f(t)=Tsc?????f(nTs)sinc[?c(t?nTs)] ?我们选取信号f(t)=Sa(t)作为被采样信号,当采样频率?s=2?m时,称为临界采样。我们取理想低通的截止频率?c=?m。下面程序实现对信号f(t)=Sa(t)的采样及由该采样
25
信号恢复重建Sa(t):
例5-1 Sa(t)的临界采样及信号重构;
wm=1; %信号带宽
wc=wm; %滤波器截止频率 Ts=pi/wm; %采样间隔
ws=2*pi/Ts; %采样角频率 n=-100:100; %时域采样电数 nTs=n*Ts %时域采样点 f=sinc(nTs/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)))); %信号重构 t1=-15:0.5:15; f1=sinc(t1/pi); subplot(211); stem(t1,f1); xlabel('kTs'); ylabel('f(kTs)');
title('sa(t)=sinc(t/pi)的临界采样信号'); subplot(212); plot(t,fa) xlabel('t'); ylabel('fa(t)');
title('由sa(t)=sinc(t/pi)的临界采样信号重构sa(t)'); grid;
例5-2 Sa(t)的过采样及信号重构和绝对误差分析
程序和例4-1类似,将采样间隔改成Ts=0.7*pi/wm , 滤波器截止频率该成wc=1.1*wm , 添加一个误差函数 wm=1;
wc=1.1*wm; Ts=0.7*pi/wm; ws=2*pi/Ts; n=-100:100; nTs=n*Ts
f=sinc(nTs/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-sinc(t/pi)); %重构信号与原信号误差 t1=-15:0.5:15; f1=sinc(t1/pi); subplot(311); stem(t1,f1); xlabel('kTs');
26
ylabel('f(kTs)');
title('sa(t)=sinc(t/pi)的采样信号'); subplot(312); plot(t,fa) xlabel('t'); ylabel('fa(t)');
title('由sa(t)=sinc(t/pi)的过采样信号重构sa(t)'); grid;
subplot(313); plot(t,error); xlabel('t');
ylabel('error(t)');
title('过采样信号与原信号的误差error(t)');
例5-3 Sa(t)的欠采样及信号重构和绝对误差分析
程序和例4-2类似,将采样间隔改成Ts=1.5*pi/wm , 滤波器截止频率该成wc=wm=1
三、上机实验内容
1.验证实验原理中所述的相关程序;
2.设f(t)=0.5*(1+cost)*(u(t+pi)-u(t-pi)) ,由于不是严格的频带有限信号,但其频谱大部分集中在[0,2]之间,带宽wm可根据一定的精度要求做一些近似。试根据以下两种情况用 MATLAB实现由f(t)的抽样信号fs(t)重建f(t) 并求两者误差,分析两种情况下的结果。
(1) wm=2 , wc=1.2wm , Ts=1; (2) wm=2 , wc=2 , Ts=2.5
四、实验预习要求
(1)预习实验原理。 (2)熟悉实验程序。
(3)思考课程设计实验部分程序的编写。
五、实验报告要求
(1)在MATLAB中输入程序,验证实验结果,并将实验结果存入指定存储区域中。
(2)对于程序设计实验,要求通过对验证性实验的练习,自行编制完整的实验程序,实现对信号的模拟,并得出实验结果。
(3)在实验报告中写出完整的自编程序,并给出实验结果。
六、思考题
(1)对正弦信号的抽样要注意哪些因素? (2)欠采样和过采样信号各有哪些缺点?
27
实验六 信号的复频域分析
一、实验目的
1.学会用MATLAB进行部分分式展开; 2.学会用MATLAB分析LTI系统的特性; 3.学会用MATLAB进行Laplace正、反变换。
二、实验原理及内容
1.用MATLAB进行部分分式展开
用MATLAB函数residue可以得到复杂有理分式F(s)的部分分式展开式,其调用格式为 ?r,p,k??residue(num,den)
其中,num,den分别为F(s)的分子和分母多项式的系数向量,r为部分分式的系数,p为极点,k为F(s)中整式部分的系数,若F(s)为有理真分式,则k为零。
例6-1 用部分分式展开法求F(s)的反变换 F(s)?解:其MATLAB程序为 format rat; num=[1,2]; den=[1,4,3,0]; [r,p]=residue(num,den)
程序中format rat是将结果数据以分数形式显示
s?2
s3?4s2?3s1?0.5?63F(s)可展开为 F(s)? ??ss?1s?3所以,F(s)的反变换为 f(t)???2.用MATLAB分析LTI系统的特性
系统函数H(s)通常是一个有理分式,其分子和分母均为多项式。计算H(s)的零极点可以应用MATLAB中的roots函数,求出分子和分母多项式的根,然后用plot命令画图。
在MATLAB中还有一种更简便的方法画系统函数H(s)的零极点分布图,即用pzmap函数画图。其调用格式为
28
2?2?31?t1?3t?e?e?u(t) 26?
共分享92篇相关文档