时域采样与频域采样定理的验证实验 下载本文

实验一 时域采样与频域采样定理的验证实验

1. 实验目的

(1) 时域采样理论与频域采样理论是数字信号处理中的重要理论。要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;

(2) 要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。

2. 实验原理与方法

时域采样定理的要点是:

? (j X ① 对模拟信号xa(t)以T进行时域等间隔理想采样,形成的采样信号的频谱 a?)会

以采样角频率Ωs(Ωs=2π/T)为周期进行周期延拓。公式为

1???a(t)]??Xa(j??jk?s) Xa(j?)?FT[xTk??? ② 采样频率Ωs必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的频谱不产生频谱混叠。

利用计算机计算上式并不方便,下面我们导出另外一个公式,以便在计算机上进行实验。 理想采样信号 x 和模拟信号xa(t)之间的关系为: ? a(t)

??a(t)?xa(t)??(t?nT)xn???? 对上式进行傅里叶变换,得到:

?(j?)??[x(t)??(t?nT)]e?j?tdtXa?a???n??? =?n???????xa(t)?(t?nT)e?j?tdt上式中,在数值上xa(nT)=x(n),再将ω=ΩT代入,得到:

?(j?)?Xan????x(nT)ea??j?nT上式的右边就是序列的傅里叶变换,即

?(j?)?X(ej?)Xa???T上式说明采样信号的傅里叶变换可用相应序列的傅里叶变换得到,只要将自变量ω用ΩT代替即可。

频域采样定理的要点是:

① 对信号x(n)的频谱函数在[0,2π]上等间隔采样N点,得到:

XN(k)?X(ej?)??2πkN , k?0,1,2,L,N?1则N点IDFT[XN(k)]得到的序列就是原序列x(n)以N为周期进行周期延拓后的主值区序列,公式为

xN(n)?IDFT[XN(k)]N?[?x(n?iN)]RN(n)i???? ② 由上式可知,频域采样点数N必须大于等于时域离散信号的长度M(即N≥M),才能使时域不产生混叠,则N点IDFT[XN(k)]得到的序列xN(n)就是原序列x(n), 即xN(n)=x(n)。如果N>M,xN(n)比原序列尾部多N-M个零点;如果N

3. 实验内容及步骤

(1) 时域采样理论的验证。 给定模拟信号

xa(t)?Ae??tsin(?0t)u(t)式中, A=444.128, π, ? ,它的幅频特性曲线如图1.1所示。? ? 50 20?502πrad/s

图1.1 xa(t)的幅频特性曲线

现用DFT(FFT)求该模拟信号的幅频特性,以验证时域采样理论。

按照xa(t)的幅频特性曲线,选取三种采样频率,即Fs=1 kHz,300 Hz,200 Hz。观测时间选Tp=64 ms。

为使用DFT,首先用下面的公式产生时域离散信号,对三种采样频率,采样序列按顺序用x1(n)、x2(n)、x3(n)表示。

x(n)?xa(nT)?Ae??nTsin(?0nT)u(nT) 因为采样频率不同,得到的x1(n)、x2(n)、x3(n)的长度不同,长度(点数)用公式N=T p×Fs计算。选FFT的变换点数为M=64,序列长度不够64的尾部加零。 X(k)=FFT[x(n)] , k=0,1,2,3,…,M-1 式中, k代表的频率为

?k?2πkM 要求:编写实验程序,计算x1(n)、 x2(n)和x3(n)的幅度特性,并绘图显示。观察分析频谱混叠失真。

(2) 频域采样理论的验证。 给定信号如下:

?n?10?n?13?x(n)??27?n14?n?26?0其它?jω

编写程序分别对频谱函数X(e)=FT[x(n)]在区间[0, 2π]上等间隔采样32点和16点,得到X32(k)和X16(k):

X32(k)?X(ej?)X16(k)?X(ej?)??2πk32 , k?0,1,2,L31??2πk16 , k?0,1,2,L15再分别对X32(k)和X16(k)进行32点和16点IFFT,得到x32(n)和x16(n):

x32(n)?IFFT[X32(k)]32 , n?0,1,2,L,31x16(n)?IFFT[X16(k)]16 , n?0,1,2,L,15分别画出、X32(k)和X16(k)的幅度谱,并绘图显示x(n)、x32(n)和x16(n)的波形,进行对比和分析,验证总结频域采样理论。

时域:

A=444.128;a=64*sqrt(2)*pi;w0=64*sqrt(2)*pi; Tp=64/1000;F1=1000;F2=300;F3=200; T1=1/F1;T2=1/F2;T3=1/F3;

n1=0:Tp*F1-1;n2=0:Tp*F2-1;n3=0:Tp*F3-1; x1=A*exp(-a*n1*T1).*sin(w0*n1*T1); x2=A*exp(-a*n2*T2).*sin(w0*n2*T2); x3=A*exp(-a*n3*T3).*sin(w0*n3*T3); f1=fft(x1,length(n1));

f2=fft(x2,length(n2)); f3=fft(x3,length(n3)); k1=0:length(f1)-1; fk1=k1/Tp;

k2=0:length(f2)-1; fk2=k2/Tp;

k3=0:length(f3)-1; fk3=k3/Tp; subplot(3,2,1) stem(n1,x1,'.')

title('(a)Fs=1000HZ'); xlabel('n');ylabel('x1(n)'); subplot(3,2,3) stem(n2,x2,'.')

title('(b)Fs=300HZ'); xlabel('n');ylabel('x2(n)'); subplot(3,2,5) stem(n3,x3,'.')

title('(c)Fs=200HZ'); xlabel('n');ylabel('x3(n)'); subplot(3,2,2)

>> plot(fk1,abs(f1));

>> title('(a) FT[xa(nT)],Fs=1000Hz') >> xlabel('f(Hz)'); >> ylabel('幅度'); >> subplot(3,2,4); >> plot(fk2,abs(f2));

>> title('(a) FT[xa(nT)],Fs=300Hz'); >> xlabel('f(Hz)'); ylabel('幅度')

>> plot(fk3,abs(f3));

>> title('(a) FT[xa(nT)],Fs=200Hz') >> xlabel('f(Hz)'); ylabel('幅度')

频域:

M=27;N=32;n=0:M;

xa=0:floor(M/2);xb=ceil(M/2)-1:-1:0;xn=[xa,xb]; Xk=fft(xn,1024); X32k=fft(xn,32); X32n=ifft(X32k); X16k=X32k(1:2:N); X16n=ifft(X16k,N/2); subplot(3,2,2); stem(n,xn,'.'); box on

title('(b)三角形序列x(n)'); xlabel('n'); ylabel('x(n)');