实验一 时域采样与频域采样定理的验证实验1. 实验目的(1) 时域采样理论与频域采样理论是数字信号处理中的重要理论。
要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;(2) 要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。
2. 实验原理与方法时域采样定理的要点是:① 对模拟信号()a x t 以T 进行时域等间隔理想采样,形成的采样信号的频谱 会以采样角频率Ωs (Ωs=2π/T )为周期进行周期延拓。
公式为② 采样频率Ωs 必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的频谱不产生频谱混叠。
利用计算机计算上式并不方便,下面我们导出另外一个公式,以便在计算机上进行实验。
理想采样信号 和模拟信号()a x t 之间的关系为:对上式进行傅里叶变换,得到:上式中,在数值上x a (nT)=x(n),再将ω=ΩT 代入,得到:上式的右边就是序列的傅里叶变换,即上式说明采样信号的傅里叶变换可用相应序列的傅里叶变换得到,只要将自变量ω用ΩT 代替即可。
频域采样定理的要点是:① 对信号x(n)的频谱函数在[0,2π]上等间隔采样N 点,得到:ˆ(j )a X Ωa a a s 1ˆˆ(j )FT[()](j j ) k X xt X k T ΩΩΩ∞=-∞==-∑a ˆ()x t a a ˆ()()()n xt x t t nT δ∞=-∞=-∑j a aˆ(j )[()()]e d t n X x t t nT t ΩΩδ∞∞--∞=-∞=-∑⎰j a ()()e d t n x t t nT tΩδ∞∞--∞=-∞-∑⎰=j aaˆ(j )()enTn X x nT ΩΩ∞-=-∞=∑j aˆ(j )(e )TX X ωωΩΩ==j 2π()(e ), 0,1,2,,1N kNX k X k N ωω===-则N 点IDFT [X N (k)]得到的序列就是原序列x(n)以N 为周期进行周期延拓后的主值区序列,公式为② 由上式可知,频域采样点数N 必须大于等于时域离散信号的长度M(即N ≥M),才能使时域不产生混叠,则N 点IDFT [X N (k)]得到的序列x N (n)就是原序列x(n), 即x N (n)=x(n)。
如果N>M ,x N (n)比原序列尾部多N -M 个零点;如果N<M ,则x N (n)=IDFT [X N (k)]发生了时域混叠失真,而且x N (n)的长度N 也比x(n)的长度M 短,因此, x N (n)与x(n)不相同。
对比上面叙述的时域采样原理和频域采样原理,得到一个有用的结论: 这两个采样理论具有对偶性,即“时域采样频谱周期延拓,频域采样时域信号周期延拓”。
因此, 将它们放在一起进行实验。
3. 实验内容及步骤(1) 时域采样理论的验证。
给定模拟信号式中, A=444.128, , ,它的幅频特性曲线如图1.1所示。
现用DFT(FFT)求该模拟信号的幅频特性,以验证时域采样理论。
按照x a (t)的幅频特性曲线,选取三种采样频率,即Fs=1 kHz ,300 Hz ,200 Hz 。
观测时间选T p =64 ms 。
为使用DFT ,首先用下面的公式产生时域离散信号,对三种采样频率,采样序列按顺序用x 1(n)、x 2(n)、x 3(n)表示。
图1.1 x a (t )的幅频特性曲线()IDFT[()][()]()N N N N i x n X k x n iN R n ∞=-∞==+∑a 0()sin()()t x t Ae t u t αΩ-=502πα=0502πrad/s Ω=a 0()()e sin()()nT x n x nT A nT u nT αΩ-==因为采样频率不同,得到的x 1(n)、x 2(n)、x 3(n)的长度不同,长度(点数)用公式N=T p ×Fs 计算。
选FFT 的变换点数为M=64,序列长度不够64的尾部加零。
X(k)=FFT[x(n)] , k=0,1,2,3,…,M -1 式中, k 代表的频率为要求:编写实验程序,计算x 1(n)、 x 2(n)和x 3(n)的幅度特性,并绘图显示。
观察分析频谱混叠失真。
(2) 频域采样理论的验证。
给定信号如下:编写程序分别对频谱函数X(e j ω)=FT [x(n)]在区间[0, 2π]上等间隔采样32点和16点,得到X 32(k)和X 16(k):再分别对X 32(k)和X 16(k)进行32点和16点IFFT ,得到x 32(n)和x 16(n):分别画出、X 32(k)和X16(k)的幅度谱,并绘图显示x(n)、x 32(n)和x 16(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));2πk k Mω=1013()2714260n n x n n n +≤≤⎧⎪=-≤≤⎨⎪⎩其它j 322π32()(e ) , 0,1,2,31k X k X k ωω===j 162π16()(e ), 0,1,2,15k X k X k ωω===323232()IFFT[()] , 0,1,2,,31x n X k n ==161616()IFFT[()] , 0,1,2,,15x n X k n ==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 ontitle('(b)三角形序列x(n)');xlabel('n');ylabel('x(n)');axis([0,32,0,20])k=0:1023;wk=2*k/1024;subplot(3,2,1);plot(wk,abs(Xk));title('(a)FT[x(n)]');xlabel('\omega^pi');ylabel('|X(e^j^\omega)|');axis([0,1,0,200])k=0:N/2-1;subplot(3,2,3);stem(k,abs(X16k),'.');box on;title('(c)16点频率采样'); xlabel('k');ylabel('|X_1_6(k)|');axis([0,8,0,200]);n1=0:N/2-1;subplot(3,2,4);stem(n1,abs(X16n),'.');box on;title('(d)16IDFT|X_1_6(k)|'); xlabel('n');ylabel('|X_1_6(n)|');axis([0,32,0,20]);k=0:N-1;subplot(3,2,5);stem(k,abs(X32k),'.');box on;title('(e)32点频率采样'); xlabel('k');ylabel('|X_3_2(k)|');axis([0,16,0,200]);n1=0:N-1;subplot(3,2,6);stem(n1,abs(X32n),'.');box on;title('(f)32点IDFT|X_3_2(k)|'); xlabel('n');ylabel('|X_3_2(n)|');axis([0,16,0,20])4. 思考题如果序列x(n)的长度为M ,希望得到其频谱在[0, 2π]上的N 点等间隔采样,当N<M 时, 如何用一次最少点数的DFT 得到该频谱采样?答:从实验的结果中,可以看出对于求频域采样点数N 小于原时域序列长度M 的N 点离散频谱是,可以先对元序列x(n)以N 为周期进行周期延拓后去其主值区序列再计算N 点DFT 则得到N 点频域采样:其所求的N 点离散频谱对应的时域离散序列是元序列x(n)以N 为周期进行周期延拓后取主值区序列,而不是原序列x(n).5、实验小结通过这次实验,我对时域采样和频域采样的理论、定理的理解更加透彻,以前只是课堂上老师说的,现在通过自己亲手做了,也知道了其内在的原理是怎么样的了。