实验12 离散傅里叶变换(DFT)
(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用冰点等工具下载,否则下载之后的word格式会让很多部分格式错误,谢谢)
XXXX学号姓名处XXXX
一、实验目的
(1)加深对离散傅里叶变换(DFT)基本概念的理解。
(2)了解有限长序列傅里叶变换(DFT)与周期序列傅里叶级数(DFS)、离散时间傅里叶变换(DTFT)的联系。
(3)掌握用MATLAB语言进行离散傅里叶变换和逆变换的方法。
二、实验内容
(DFT)和逆变换(IDFT)
三、实验环境
四、实验原理
(DFT)和逆变换(IDFT)
在实际中常常使用有限长序列。如果有限长序列信号为x(n),则该序列的离散傅里叶变换对可以表示为
(12-1)
(12-2)
从离散傅里叶变换定义式可以看出,有限长序列在时域上是离散的,在频域上也是离散的。式中,即仅在单位圆上N个等间距的点上取值,这为使用计算机进行处理带来了方便。
由有限长序列的傅里叶变换和逆变换定义可知,DFT和DFS的公式非常相似,因此在程序编写上也基本一致。
例12-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)]图形进行比较。
解 MATLAB程序如下:
>> xn=[0,1,2,3,4,5,6,7]; %建立信号序列
>> 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,abs(x)); %显示逆变换结果
>> title('IDFT|X(k)|');
>> subplot(2,2,3),stem(k,abs(Xk)); %显示|X(k)|
>> title('|X(k)|');
>> subplot(2,2,4),stem(k,angle(Xk)); %显示arg|X(k)|
>> title('arg|X(k)|');
运行结果如图12-1所示。
图12-1 例12-1有限长序列的傅里叶变换和逆变换结果
从得到的结果可见,与周期序列不同的是,有限长序列本身是仅有N点的离散序列,相当于周期序列的主值部分。因此,其频谱也对应序列的主值部分,是含N点的离散序列。
将周期序列的傅里叶级数变换对(式(11-1)和式(11-2))与有限长序列离散傅里叶变换对(式(12-1)和式(12-2))进行比较,可以看出两者的区别仅仅是将周期序列换成了有限长序列。
数字信号处理实验 matlab版 离散傅里叶变换(DFT) 来自淘豆网m.daumloan.com转载请标明出处.