实验三 信号抽样及信号重建
一、实验目的
1、进一步理解信号的抽样及抽样定理; 2、进一步掌握抽样信号的频谱分析;
3、掌握和理解信号抽样以及信号重建的原理;
二、实验原理及方法
1、信号的抽样及抽样定理
抽样(Sampling),就是从连续时间信号中抽取一系列的信号样本,从而,得到一个离散时间序列(Discrete-time sequence),
图3-1给出了信号理想抽样的原理图:
x(t)?p(t)xs(t)X(j?)???m?m(a) (b)
图3-1 (a) 抽样原理图,(b) 带限信号的频谱
上图中,假设连续时间信号是一个带限信号(Bandlimited Signal),其频率范围为
??m~?m,抽样脉冲为理想单位冲激串(Unit Impulse Train),其数学表达式为:
?p(t)???(t?nT??s) 3.1
由图可见,模拟信号x(t)经抽样后,得到已抽样信号(Sampled Signal)xs(t),且:
xs(t)?x(t)p(t) 3.2
将p(t)的数学表达式代入上式得到:
?xs(t)??x(nT??s)?(t?nTs) 3.3
显然,已抽样信号xs(t) 也是一个冲激串,只是这个冲激串的冲激强度被x(nTs) 加权了。 从频域上来看,p(t) 的频谱也是冲激序列,且为:
18
?F{p(t)}??s??(??n?s) 3.4
??根据傅里叶变换的频域卷积定理,时域两个信号相乘,对应的积的傅里叶变换等于这两个信号的傅里叶变换之间的卷积。所以,已抽样信号xs(t)的傅里叶变换为:
Xs(j?)?1Ts??n???X(j(??n?s)) 3.5
表达式4.5告诉我们,如果信号x(t)的傅里叶变换为X(j?),则已抽样信号xs(t) 的傅里叶变换Xs(j?)等于无穷多个加权的移位的X(j?)之和,或者说,已抽样信号的频谱等于原连续时间信号的频谱以抽样频率?s为周期进行周期复制的结果。如图3-2所示:
x(t)X(j?)t??M?M?p(t)t?s??s1/TsP(j?)Tsxs(t)?sXs(j?)?t图3-2 信号抽样及其频谱图
3.6 在MATLAB中,对信号抽样的仿真,
?
例题 设连续时间信号为一个正弦信号 x(t) = cos(0.5πt),抽样周期为Ts = 1/4秒,编程序绘制信号x(t)和已抽样信号x[n]的波形图。
范例程序Sampling如下:
% Sampling
clear, close all,
t = 0:0.01:10;
Ts = 1/4; % Sampling period
n = 0:Ts:10; % Make the time variable to be discrete x = cos(0.5*pi*t);
xn = cos(0.5*pi*n); % Sampling
subplot(221)
plot(t,x), title('A continuous-time signal x(t)'), xlabel('Time t')
subplot(222)
stem(n,xn,'.'), title('The sampled version x[n] of x(t)'), xlabel('Time index n')
19
执行该程序后,得到的波形图如图3-3所示。
图3-3 连续时间信号及其抽样后的离散时间序列
在这个范例程序中,先将连续时间t进行离散化,使之成为以Ts = 1/4秒的离散时间n,然后,将n代入到信号x(t) 的数学表达式中计算,就完成了抽样过程,且得到了抽样后的离散时间序列x[n]。
2、 信号抽样过程中的频谱混叠
为了能够观察到已抽样信号的频谱是否会存在混叠现象,或者混叠程度有多么严重,有必要计算并绘制出已抽样信号的傅里叶变换。
根据式3.5可计算出已抽样信号的频谱。其中,主要利用了一个for循环程序完成周期延拓运算。
% Program
clear, close all,
tmax = 4; dt = 0.01; t = 0:dt:tmax; Ts = 1/10; ws = 2*pi/Ts; w0 = 20*pi; dw = 0.1; w = -w0:dw:w0; n = 0:1:tmax/Ts; x = exp(-4*t).*u(t); xn = exp(-4*n*Ts);
subplot(221)
plot(t,x), title('A continuous-time signal x(t)'), xlabel('Time t'), axis([0,tmax,0,1]), grid on subplot(223)
stem(n,xn,'.'), title('The sampled version x[n] of x(t)'), xlabel('Time index n'), axis([0,tmax/Ts,0,1]), grid on Xa = x*exp(-j*t'*w)*dt; X = 0;
for k = -8:8;
20
X = X + x*exp(-j*t'*(w-k*ws))*dt; end
subplot(222) plot(w,abs(Xa))
title('Magnitude spectrum of x(t)'), grid on axis([-60,60,0,1.8*max(abs(Xa))]) subplot(224) plot(w,abs(X))
title('Magnitude spectrum of x[n]'), xlabel('Frequency in radians/s'),grid on axis([-60,60,0,1.8*max(abs(Xa))]) 程序运行结果:
图3-4 程序运行结果图
本程序可以用来观察在不同的抽样频率条件下,已抽样信号的频谱的混叠程度,从而更加牢固地理解抽样定理。但是,提请注意的是,在for循环程序段中,计算已抽样信号的频谱X 时,没有乘以系数1/Ts,是为了便于比较X与Xa之间的区别,从而方便观察频谱的混叠程度。另外,程序中的时间步长dt的选择应该与抽样周期Ts保持一定的比例关系,建议Ts不应小于10dt,否则,计算得到的已抽样信号的频谱将出现错误。
3、 信号重建
如果满足抽样定理,那么,我们就可以唯一地由已抽样信号x[n] 恢复出原连续时间信号x(t)。在理想情况下,可以将离散时间序列通过一个理想低通滤波器,图3.5给出了理想情况下信号重建的原理示意图。
x(t)?xp(t)Ideal Lowpass Filter xr(t)p(t)图3-5 信号重建原理图
21
理想低通滤波器也称重建滤波器,它的单位冲激响应
h(t)??cTsin(?ct)??ct 3.7
?已抽样信号xp(t)的数学表达式为:xp(t)?表达式,我们有
?x(nT)?(t?nT),根据系统输入输出的卷积
??xr(t)?xp(t)?h(t) 3.8
将xp(t)代入式4.8,有
?xr(t)??n???x(nT)?cTsin(?c(t?nT))??c(t?nT) 3.9
这个公式称为内插公式(Interpolation Formula),该公式的推导详见教材,请注意复习有关内容。须提请注意的是,这里的内插公式是基于重建滤波器为理想低通滤波器的。若重建滤波器不是理想低通滤波器,则不能用这个内插公式。理想低通滤波器的频率响应特性曲线和其单位冲激响应曲线如图3.6所示。
H(j?)Th(t)T?c?t???c?c图3-6 理想低通滤波器的幅度频率响应和单位冲激响应
范例程序程序就是根据这个内插公式来重构原始信号。本程序已经做了较为详细的注释,请结合教材中的内插公式仔细阅读本程序,然后执行,以掌握和理解信号重建的基本原理。范例程序如下。
% Program
% Signal sampling and reconstruction
% The original signal is the raised cosin signal: x(t) = [1+cos(pi*t)].*[u(t+1)-u(t-1)]. clear; close all,
wm = 2*pi; % The highest frequency of x(t) a = input('Type in the frequency rate ws/wm=:'); % ws is the sampling frequency wc = wm; % The cutoff frequency of the ideal lowpass filter t0 = 2; t = -t0:0.01:t0;
x = (1+cos(pi*t)).*(u(t+1)-u(t-1));
subplot(221); % Plot the original signal x(t) plot(t,x); grid on, axis([-2,2,-0.5,2.5]); title('Original signal x(t)');xlabel('Time t');
22