武汉工程大学数字信号处理实验四 离散傅里叶变换DFT及IDFT 下载本文

内容发布更新时间 : 2024/5/18 8:52:58星期一 下面是文章的全部内容请认真阅读。

实验四 离散傅里叶变换DFT及IDFT

一、实验目的

⑴在理论学习的基础上,通过本实验,加深对DFT的理解,熟悉DFT子程序。

⑵掌握计算离散信号DFT的方法。

⑶体会有限长序列DFT与离散时间傅里叶变化DTFT之间的关系。 ⑷掌握用MATLAB进行离散傅里叶变换DFT及其逆变换IDFT的方法。 三、实验内容

⑴已知有限长序列x(n)=[7,6,5,4,3,2],求x(n)的IDFT。要求: ① 画出序列DFT对应的|X(k)|和arg[X(k)]的图形。 程序: xn=[7,6,5,4,3,2]; N=length(xn) n=0:(N-1); k=0:(N-1);

Xk=xn*exp(-j*2*pi/N).^(n'*k); x=(Xk*exp(j*2*pi/N).^(n'*k))/N; subplot(2,2,1); stem(n,xn);

title('x(n)'); subplot(2,2,2); stem(n,Xk); title('IDFT[X(k)]'); subplot(2,2,3);

stem(k,abs(Xk)); title('|X(k)|'); subplot(2,2,4); stem(k,angle(Xk)); title('arg|X(k)|'); title('arg|X(k)|'); 波形如下:

② 画出原信号与IDFT[X(k)]的图形,并进行比较。 程序:

N=length(xn) n=0:(N-1); k=0:(N-1);

Xk=xn*exp(-j*2*pi/N).^(n'*k); x=(Xk*exp(j*2*pi/N).^(n'*k))/N; subplot(1,2,1);

stem(k,abs(Xk)); title('|X(k)|'); subplot(1,2,2); stem(k,angle(Xk)); title('arg|X(k)|');

⑵将第一题中的x(n)以补零方式加长到0≤n≤100,重复第⑴题。 程序: n=78

xn=[7,6,5,4,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];

N=length(xn) n=0:(N-1); k=0:(N-1);

Xk=xn*exp(-j*2*pi/N).^(n'*k); x=(Xk*exp(j*2*pi/N).^(n'*k))/N; subplot(2,2,1); stem(n,xn); title('x(n)'); subplot(2,2,2); stem(n,x); title('IDFT[X(k)]'); subplot(2,2,3); stem(k,abs(Xk)); title('|X(k)|'); subplot(2,2,4); stem(k,angle(Xk)); title('arg|X(k)|');

四、思考题

如何验证试验预习中有限长序列的DFT有周期序列的DFS关系。 答:求取一个有限长序列的DFT然后求取DFS对于只取零到N-1的序列值做比较即可