信号抽样与恢复
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 信号抽样与恢复
一、实验目的
学会用MATLAB 实现连续信号的采样和重建 二、实验原理 1.抽样定理
若)(t f 是带限信号,带宽为m ω, )(t f 经采样后的频谱)(ωs F 就是将)(t f 的频谱
)(ωF 在频率轴上以采样频率s ω为间隔进行周期延拓。因此,当s ω≥2m ω时,不会发生频
率混叠;而当 s ω<2m ω 时将发生频率混叠。 2.信号重建
经采样后得到信号)(t f s 经理想低通)(t h 则可得到重建信号)(t f ,即:
)(t f =)(t f s *)(t h
其中:)(t f s =)
(t f ∑∞∞
--)(s
nT t δ=∑∞
∞
--)()(s
s
nT t nT f δ
)()(t Sa T t h c c
s ωπ
ω=
所以:
)(t f =)(t f s *)(t h =∑∞
∞
--)()(s s nT t nT f δ*)(t Sa T c c
s
ωπ
ω =π
ω
c
s T ∑∞
∞
--)]([)(s c
s
nT t Sa nT f ω
上式表明,连续信号可以展开成抽样函数的无穷级数。
利用MATLAB 中的t t t c ππ)
sin()(sin =
来表示)(t Sa ,有 )(sin )(π
t c t Sa =,所以可以得到在MATLAB 中信号由)(s nT f 重建)(t f 的表达式如下:
)(t f =π
ω
c
s T ∑
∞
∞
--)]([
sin )(s c
s nT t c nT f π
ω 我们选取信号)(t f =)(t Sa 作为被采样信号,当采样频率s ω=2m ω时,称为临界采样。
我们取理想低通的截止频率
c ω=m ω。下面程序实现对信号)(t f =)(t Sa 的采样及由该采样信号恢复重建)(t Sa :
三、上机实验内容
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.对以下simulink ch6example1_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