1、实验四 离散傅里叶变换 DFT 及 IDFT一、实验目的在理论学习的基础上,通过本实验,加深对 DFT 的理解,熟悉DFT 子程序。掌握计算离散信号 DFT 的方法。体会有限长序列 DFT 与离散时间傅里叶变化 DTFT 之间的关系。掌握用 MATLAB 进行离散傅里叶变换 DFT 及其逆变换 IDFT 的方法。三、实验内容已知有限长序列 x(n)=7,6,5,4,3,2,求 x(n)的 IDFT。要求: 画出序列 DFT 对应的|X(k)|和 argX(k)的图形。程序:xn=7,6,5,4,3,2; N=length(xn) n=0:(N-1); k=0:(N-1); Xk=xn*exp(
2、-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(IDFTX(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)|);波形如下: 画出原信号与 IDFTX(k)的图形,并进行比较。程序:N=length(xn) n=0:(N-
3、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)以补零方式加长到 0n100,重复第题。程序:n=78xn=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
4、,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(IDFTX(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 的序列值做比较即可