数字信号处理实验 matlab版 离散傅里叶变换(dft)

上传人:小** 文档编号:55655618 上传时间:2018-10-03 格式:DOC 页数:9 大小:118.50KB
返回 下载 相关 举报
数字信号处理实验 matlab版 离散傅里叶变换(dft)_第1页
第1页 / 共9页
数字信号处理实验 matlab版 离散傅里叶变换(dft)_第2页
第2页 / 共9页
数字信号处理实验 matlab版 离散傅里叶变换(dft)_第3页
第3页 / 共9页
数字信号处理实验 matlab版 离散傅里叶变换(dft)_第4页
第4页 / 共9页
数字信号处理实验 matlab版 离散傅里叶变换(dft)_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数字信号处理实验 matlab版 离散傅里叶变换(dft)》由会员分享,可在线阅读,更多相关《数字信号处理实验 matlab版 离散傅里叶变换(dft)(9页珍藏版)》请在金锄头文库上搜索。

1、实验实验 12 离散傅里叶变换离散傅里叶变换(DFT)(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用 冰点等工具下载,否则下载之后的 word 格式会让很多部分格式错误,谢谢) XXXX 学号姓名处学号姓名处 XXXX一、实验目的一、实验目的(1)加深对离散傅里叶变换(DFT)基本概念的理解。 (2)了解有限长序列傅里叶变换(DFT)与周期序列傅里叶级数(DFS)、离散时间傅里叶变 换(DTFT)的联系。 (3)掌握用 MATLAB 语言进行离散傅里叶变换和逆变换的方法。二、实验内容二、实验内容1.有限长序列的傅里叶变换(DFT)和逆变换(IDFT) 2.有限

2、长序列 DFT 与周期序列 DFS 的联系 3.有限长序列 DFT 与离散时间傅里叶变换 DTFT 的联系三、实验环境三、实验环境MATLAB7.0 四、实验原理四、实验原理1.有限长序列的傅里叶变换有限长序列的傅里叶变换(DFT)和逆变换和逆变换(IDFT) 在实际中常常使用有限长序列。如果有限长序列信号为 x(n),则该序列的离散傅里叶 变换对可以表示为(12-1)1N,0,1,k,Wx(n)DFTx(n)X(k)1N0nnk N(12-2)1N,0,1,n,WX(k)N1IDFTX(k)x(n)1N0knk N从离散傅里叶变换定义式可以看出,有限长序列在时域上是离散的,在频域上也是离散的

3、。式中,即仅在单位圆上 N 个等间距的点上取值,这为使用计算机进N2jNeW行处理带来了方便。 由有限长序列的傅里叶变换和逆变换定义可知,DFT 和 DFS 的公式非常相似,因此在 程序编写上也基本一致。 例例 12-1 已知 x(n)0,1,2,3,4,5,6,7 ,求 x(n)的 DFT 和 IDFT。要求: (1)画出序列傅里叶变换对应的|X(k)|和 argX(k)图形。 (2)画出原信号与傅里叶逆变换 IDFTX(k)图形进行比较。 解 MATLAB 程序如下: xn=0,1,2,3,4,5,6,7; %建立信号序列 N=length(xn); n=0:(N-1);k=0:(N-1)

4、; 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)|); 运

5、行结果如图 12-1 所示。0246802468x(n)0246802468IDFT|X(k)|024680102030|X(k)|02468-4-2024arg|X(k)|图 12-1 例 12-1 有限长序列的傅里叶变换和逆变换结果 从得到的结果可见,与周期序列不同的是,有限长序列本身是仅有 N 点的离散序列, 相当于周期序列的主值部分。因此,其频谱也对应序列的主值部分,是含 N 点的离散序列。2.有限长序列有限长序列 DFT 与周期序列与周期序列 DFS 的联系的联系 将周期序列的傅里叶级数变换对(式(11-1)和式(11-2)与有限长序列离散傅里叶变换对 (式(12-1)和式(12-2

6、)进行比较,可以看出两者的区别仅仅是将周期序列换成了有限长序列。例例 12-2 已知周期序列的主值 x(n)0,1,2,3,4,5,6,7 ,求 x(n)周期重复次 数为 4 次时的 DFS。要求:(1)画出原主值和信号周期序列信号。(2)画出序列傅里叶变换对应的和的图形。(k)X(k)Xarg解 MATLAB 程序如下: xn=0,1,2,3,4,5,6,7; N=length(xn); n=0:4*N-1;k=0:4*N-1; xn1=xn(mod(n,N)+1); %即 xn1=xn,xn,xn,xn Xk=xn1*exp(-j*2*pi/N).(n*k); %离散傅里叶变换 subpl

7、ot(2,2,1),stem(xn); %显示序列主值 title(原主值信号 x(n); subplot(2,2,2),stem(n,xn1); %显示周期序列 title(周期序列信号); subplot(2,2,3),stem(k,abs(Xk); %显示序列的幅度谱 title(|X(k)|); subplot(2,2,4),stem(k,angle(Xk); %显示序列的相位谱 title(arg|X(k)|); 运行结果如图 12-2 所示。0246802468主 主 主 主 主 x(n)01020304002468主 主 主 主 主 主010203040050100150|X(k

8、)|010203040-4-2024arg|X(k)|图 12-2 例 12-2 周期序列的傅里叶级数(DFS)结果 由这个周期序列的实验我们可以看出,与例 12-1 相比,有限长序列 x(n)可以看成是周期序列的一个周期;反之,周期序列可以看成是有限长序列 x(n)以 N 为周期的(n)x(n)x周期延拓。频域上的情况也是相同的。从这个意义上说,周期序列只有有限个序列值有意 义。 3.有限长序列有限长序列 DFT 与离散时间傅里叶变换与离散时间傅里叶变换 DTFT 的联系的联系 离散时间傅里叶变换(DTFT)是指信号在时域上为离散的,而在频域上则是连续的。 如果离散时间非周期信号为 x(n)

9、,则它的离散傅里叶变换对(DTFT)表示为njjex(n)X(eDTFTx(n)de)X(e21x(n)IDTFTX(ejjj 其中 X(ejw)称为信号序列的频谱。将频谱表示为.|X(ejw)|)(jje)X(e)X(e称为序列的幅度谱, 称为序列的相位谱。)X(earg)(j从离散时间傅里叶变换的定义可以看出,信号在时域上是离散的、非周期的,而在频 域上则是连续的、周期性的。 与有限长序列相比,X(ejw)仅在单位圆上取值,X(k)是在单位圆上 N 个等间距的点上 取值。因此,连续谱 X(ejw)可以由离散谱 X(k)经插值后得到。 为了进一步理解有限长序列的傅里叶变换(DFT)与离散时间

10、傅里叶变换(DTFT)的联系, 我们举例说明离散时间傅里叶变换的使用方法和结果。 例例 12-3 求 x(n)0,1,2,3,4,5,6,7 ,0n7 的 DTFT,将(2p,2p)区间 分成 500 份。要求: (1)画出原信号。 (2)画出由离散时间傅里叶变换求得的幅度谱 X(ejw)和相位谱 argX(ejw)图形。 解 MATLAB 程序如下: xn=0,1,2,3,4,5,6,7; N=length(xn); n=0:N-1; w=linspace(-2*pi,2*pi,500); %将-2p,2p频率区间分割为 500 份 X=xn*exp(-j*n*w);%离散时间傅里叶变换 s

11、ubplot(3,1,1),stem(n,xn,k); ylabel(x(n); subplot(3,1,2),plot(w,abs(X),k);%显示序列的幅度谱 axis(-2*pi,2*pi,1.1*min(abs(X),1.1*max(abs(X); ylabel(幅度谱); subplot(3,1,3),plot(w,angle(X),k);%显示序列的相位谱 axis(-2*pi,2*pi,1.1*min(angle(X),1.1*max(angle(X); ylabel(相位谱); 运行结果如图 12-3 所示。012345670510x(n)-6-4-20246102030主

12、主 主-6-4-20246-202主 主 主图 12-3 例 12-3 离散时间傅里叶变换(DTFT)的结果 由图 12-3 与 DFT 的结果图 12-1 相比可以看出,两者有一定的差别。主要原因在于, 该例进行 DTFT 时,X(ejw)在单位圆上取 250 个点进行分割;而图 12-1 进行 DFT 时,X(k) 是在单位圆上 N8 的等间距点上取值,X(k)的序列长度与 X(ejw)相比不够长。 例例 12-4 仍然用 x(n)0,1,2,3,4,5,6,7 ,将 x(n)的有限长序列后面补足至 N100,求其 DFT,并与例 12-3 进行比较。 解 将例 12-1 程序的前 2 行

13、改为N100;xn0,1,2,3,4,5,6,7,zeros(1,N8) ; 则|X(k)|和 argX(k)的图形接近由离散时间傅里叶变换求得的幅度谱 X(ejw)和相位 谱 argX(ejw)的图形,如图 12-4 所示。注意,此图对应0,2p区间。MATLAB 程序如下: N=100; xn=0,1,2,3,4,5,6,7,zeros(1,N-8); %建立信号序列 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,1,1),

14、stem(k,abs(Xk); %显示|X(k)| title(|X(k)|); subplot(2,1,2),stem(k,angle(Xk); %显示arg|X(k)| title(arg|X(k)|);运行结果如图 12-4 所示。01020304050607080901000102030|X(k)|0102030405060708090100-4-2024arg|X(k)|图 12-4 增长有限长序列的长度得到|X(k)|和 argX(k)五、实验过程五、实验过程2.已知有限长序列 x(n)7,6,5,4,3,2 ,求 x(n)的 DFT 和 IDFT。要求: 画出序列傅里叶变换对应的

15、|X(k)|和 argX(k)的图形。画出原信号与傅里叶逆变换 IDFTX(k)的图形进行比较。 解 MATLAB 程序如下: 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,abs(x);%显示逆变换结果 title(IDFT|X(k)|); subplot(2,2,3),stem(k,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号