信号抽样与恢复的原理框图如下图所示。
f⑴畤-转换^;言卜^^>4,=滤丨4f0(t)
图2.5-2信号抽样与恢复的原理框图
由原理框图不难看出,A/D转换环节实现抽样、量化、编码过程;数字信号处理环节对得到的数字信号进行必要的处理;D/A转换环节实现数/模转换,得到连续时间信号;低通滤波器的作用是滤除截止频率以外的信号,恢复出与原信号相比无失真的信号fjt)。
三、实验内容与方法1.验证性实验
1)正弦信号的采样MATLAB程序:
clf;
t=0:
0.0005:
1;
f=13;
xa=cos(2*pi*f*t);
subplot(2,1,1)
plot(t,xa);grid
xlabel('时间,msec');ylabel('幅值');title('连续时间信号x_{a}(t)');axis([01-1.21.2])subplot(2,1,2);
T=0.1;
n=0:
T:
1;
xs=cos(2*pi*f*n);
k=0:
length(n)-1;
stem(k,xs);grid;
xlabel('时间,msec');ylabel('幅值');
时间.msec
title('连续时间信号x[n]');axis([0(length(n)-l)-1.21.2]);
正弦信号的采样结果如下图所示:
2)模拟低通滤波器设计MATLAB程序:
clf;
Fp=3500;Fs=4500;
Wp=2*pi*Fp;Ws=2*pi*Fs;
[N,Wn]=buttord(Wp,Ws,0.5,30,'s');
[b,a]=butter(N,Wn,'s');
wa=0:
(3*Ws)/511:
3*Ws;
h=freqs(b,a,wa);
plot(wa/(2*pi),20*log10(abs(h)));gridxlabel('Frequency,Hz,);ylabel(,Gain,dB');title(丨Gainresponse');axis([03*Fs-605]);
模拟低通滤波器设计结果如下图所示:
m
I
o
3)时域过采样
MATLAB程序:
n=0:
50;
x=sin(2*pi*0.12*n);
y=zeros(1,3*length(x));
y([1:
3:
length(y)])=x;
subplot(2,1,1)
stem(n,x);
title('输入序列');
subplot(2,1,2)
stem(n,y(1:
length(x)));
title('输出序列');
离散信号的时域过采样结果如下图所示:
4)频域过采样MATLAB程序:
freq=[00.450.51];mag=[0100];x=fir2(99,freq,mag);[Xz,w]=freqz(x,1,512);subplot(2,1,1);
plot(w/pi,abs(Xz));axis([0101]);grid
title('输入谱');
subplot(2,1,2);
L=input('过采样因子=');y=zeros(1,L*length(x));
y([1:
L:
length(y)])=x;
[Yz,w]=freqz(y,1,512);plot(w/pi,abs(Yz));axis([0101]);gridtitle(,输出谱');
信号的频域过采样结果如下图所示:
输入谱
0.5-
0IIIIIN,,iiii
00.10.20.30.40.50.60.70.80.9
输出谱
过采样因子=32.程序设计实验
设计一模拟信号:
x(t)=3sin(2n.f.t)采样频率fs为5120Hz,取信号频率f=150Hz(正常采样)和f=3000Hz(欠采样)两种情况进行采样分析。
MATLAB程序:
%用MATLAB产生连续信号y=3sin(2uft)(t>0)和其对应的频谱
x1=0:
0.000000001:
0.01;
w=linspace(0,0.01,(length(x1)/100000));
display('Pleaseinputthevalueoff')
f=input('f=');
figure
subplot(211)
plot(x1,3*sin(2*pi*f*x1));◦/◦原时域连续信号y=3sin(2*nft)
xlabel(,t,);ylabel(,x(t),);
title('原时域连续信号y=3*sin(2*pi*f*t)');
grid
sin1=3*sin(2*pi*f*w);
n=0:
(length(w)-1);
subplot(212)
%其对应频域信号Y=FFT(3sin(2*nft))
plot(1000000*w,fft1(w,sin1,n));xlabel('w');ylabel('x(w)');
title('其对应频域信号Y=FFT(3*sin(2*pi*f*t))')grid;
其中要用到子函数fft1,程序代码如下:
functionresult=fft1(w,hanshu,n)a=cell(1,length(w));fori=1:
length(w)
m=hanshu.*((exp(-j*(i-1)*pi/100)).八n);a{i}=sum(m);
end
fori=1:
length(w)result(i)=a{i};
end
子函数通过控制参数n的取值多少可分别计算离散和近似连续信号的频谱值并作为函数值进行返回。
时域波形及频谱曲线如下图所示:
f=150Hz时
w
f=3000Hz时
原时域连续信号y=3*sin^*piTt)
00.0010.0020.0030.0040.0050.0060.0070.0080.0090.01
其对应频域信号Y=FFT(3*sin(2*pi*ft))
2001111111r
•inn111111111
010002000300040005000600070008000900010000
%对连续信号y=3Sin(27tft)进行抽样并产生其频谱:
display('Pleaseinputthevalueoffs')
f1=input('fs=');
n=0:
0.01*f1;
zb=size(n)-1;
figure
sinf=3*sin(2*pi*f*0.01*n/zb
(2));
subplot(211);
stem((2/10000*n,sinf,'.');
xlabel('nTs');ylabel('x(n)');
title('采样后的时域信号y=x(n)');
w=0:
(pi/100):
30*pi;
subplot(212)
plot(5120*w,fft1(w,sinf,n));
xlabel('w');ylabel('x(w)');
title('米样后的频域信号y=FFT(3sin(2nfn))');grid
采样后的时域波形及频谱曲线如下图所示:
f=150Hz时
f=3000Hz时
%通过低通滤波恢复原连续信号
[B,A]=butter(8,1000/1300);
[H,w]=freqz(B,A,512,30);
figure;
plot(w*2000/(2*pi),abs(H));
xlabel('Hz');ylabel('频率响应幅度');
title('低通滤波器');
grid;
figure
y=filter(B,A,sinf);
subplot(2,1,1);plot(n*0.01/zb
(2),y);
xlabel('t');ylabel('x(t)');
title('恢复后的连续信号y=3*sin(2*pi*f*t)')
grid;
Y=fft(y,512);w=(0:
255)/256*500;subplot(2,1,2);plot(20*w,([Y(1:
256)]));xlabel('Hz');ylabel('频率响应幅度');title('频谱图');grid;
恢复后的时域波形及频谱曲线如下图所示:
f=150Hz时
%设置低通滤波器参数%绘制低通频谱图
%恢复后的连续信号y=3sin(2nft)
%绘制频谱图
恢复后的连续信号y=3*sin(2*piTt)
0.0010.0020.0030.0040.0050.0060.0070.0080.0090.01
频谱图
4
-2
4
0
00
ITSS習阱賅
50
0
-50
10002000300040005000600070008000900010000
Hz
f=3000Hz时
-0
低通滤波器的频谱图
由抽样定理可知,抽样后的信号频谱是原信号频谱以抽样频率为周期进行周期延拓形成的,周期性在采样后的频谱曲线上都有很好的体现。
但是从采样后的结果以及与原连续信号频谱对比可以看出,信号频率为3000Hz的信号对应的抽样信号频谱出现了频谱混叠而并非原信号频谱的周期延拓。
这是因为信号频率相对于采样频率取值过大导致采样角频率吟<2wm,因此经周期延拓出现了频谱混叠。
而信号频率为150Hz时,采样角频率叫;22wm,从而可以实现原信号频谱以抽样频率为周期进行周期延拓,并不产生混叠,从而为下一步通过低通滤波器滤出其中的一个周期(即不失真的原连续信号)打下了基础。
从恢复后的时域波形及频谱曲线可以看出,信号频率为150Hz的恢复波形明显比信号频率为3000Hz的恢复波形好。
但是由于滤波器设计的还有待于改进,所以波形并不是很圆滑,但是已经可以基本达到实验目的,将原输入连续信号恢复。
四、思考题
1)若信号频率为5000Hz,请问本实验中的模拟信号采样后的混迭频率是多少赫兹?
分析一200Hz的方波信号,采样频率为500Hz,用谱分析功能观察其频谱中的混迭现象,思考为什么会出现混迭。
答:
混迭频率是120Hz-5000Hz。
因为方波信号除了频率为200Hz的基波外,还含有频率为200Hz的奇数倍的各次谐波,这些谐波频率的2倍都大于500Hz,所以取样后其频谱都会产生混迭现象。
2)在时域抽样定理中,为什么要求被抽样信号必须是带限信号?
如果频带是无限的,应如何处理?
答:
若被抽样信号不是带限信号,则无法确定一个抽样频率,使之大于被抽样信号最高频率的两倍,所以抽样后的频谱一定会产生混迭现象,因此要求被抽样信号必须是带限信号。
若频带是无限的,则在抽样前必须通过一个抗混叠滤波器(即一个截止频率为采样频率一半的理想低通滤波器)将信号带限到采样频率的一半,从而减小混迭误差。