一、实验目的
(1)加深对离散傅里叶变换(DFT)基本概念的理解
(2)了解有限长序列傅里叶变换(DFT)与离散时间傅里叶变换(DTFT)的联系
(3)掌握用MATLAB语言进行离散傅里叶变换和逆变换的方法
二、实验原理
1.有限长序列的傅里叶变换(DFT)和逆变换(IDFT)
在实际中常常使用有限长序列。如果有限长序列信号为x(n),则该序列的离散傅里叶变换对可以表示为:
从离散傅里叶变换定义式可以看出,有限长序列在时域上是离散的,在频域上也是离散的。式中 ,即仅在单位圆上N个等间距的点上取值,这为使用计算机进行处理带来了方便。
由有限长序列的傅里叶变换和逆变换定义可知,DFT和DFS的公式非常相似,因此在程序编写上也基本一致。
例1:已知x(n)=[0,1,2,3,4,5,6,7],求x(n)的DFT和IDFT。要求:
(1)画出序列傅里叶变换对应的|X(k)|和arg[X(k)]图形。
(2)画出原信号与傅里叶逆变换IDFT[X(k)]图形进行比较。
代码:
xn=0:7;%信号
N=length(xn);
n=0:N-1;
k=0:N-1;
Xk=xn*exp(-1j*2*pi/N).^(n'*k);%DFT
x=(Xk*exp(1j*2*pi/N).^(n'*k))/N;%IDFT
subplot(4,1,1),stem(n,xn);%显示原序列
title('x(n)')
subplot(4,1,2),stem(n,abs(x));%显示逆变换结果
title('IDFT|X(k)|')
subplot(4,1,3),stem(n,abs(Xk));%显示|X(k)|
title('X(k)')
subplot(4,1,4),stem(k,angle(Xk));%显示显示arg|X(k)|
title('arg|X(k)|')
输出:
2.有限长序列DFT与离散时间傅里叶变换DTFT的联系
离散时间傅里叶变换(DTFT)是指信号在时域上为离散的,而在频域上则是连续的。
如果离散时间非周期信号为x(n),则它的离散傅里叶变换对(DTFT)表示为:
与有限长序列相比,X(e^(jw))仅在单位圆上取值,X(k)是在单位圆上N个等间距的点上取值。因此,连续谱X(e^(jw))可以由离散谱X(k)经插值后得到。
例2:求x(n)=[0,1,2