ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:82.48KB ,
资源ID:6849407      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6849407.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字信号处理实验 matlab版 离散傅里叶变换DFT.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字信号处理实验 matlab版 离散傅里叶变换DFT.docx

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

2、FS的联系3.有限长序列DFT与离散时间傅里叶变换DTFT的联系三、实验环境 MATLAB7.0 四、实验原理1.有限长序列的傅里叶变换(DFT)和逆变换(IDFT)在实际中常常使用有限长序列。如果有限长序列信号为x(n),则该序列的离散傅里叶变换对可以表示为 (12-1) (12-2)从离散傅里叶变换定义式可以看出,有限长序列在时域上是离散的,在频域上也是离散的。式中,即仅在单位圆上N个等间距的点上取值,这为使用计算机进行处理带来了方便。由有限长序列的傅里叶变换和逆变换定义可知,DFT和DFS的公式非常相似,因此在程序编写上也基本一致。例12-1 已知x(n)0,1,2,3,4,5,6,7,

3、求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); 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),ste

4、m(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点的离散序列。2.有限长序列DFT与周期序列DFS的联系将周

5、期序列的傅里叶级数变换对(式(11-1)和式(11-2)与有限长序列离散傅里叶变换对(式(12-1)和式(12-2)进行比较,可以看出两者的区别仅仅是将周期序列换成了有限长序列。例12-2 已知周期序列的主值x(n)0,1,2,3,4,5,6,7,求x(n)周期重复次数为4次时的DFS。要求:(1)画出原主值和信号周期序列信号。(2)画出序列傅里叶变换对应的和的图形。解 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*e

6、xp(-j*2*pi/N).(n*k); %离散傅里叶变换 subplot(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所示。图12-2 例12-2周期序列的傅里叶级数(DFS)结果由这个周期序列的实验我们

7、可以看出,与例12-1相比,有限长序列x(n)可以看成是周期序列的一个周期;反之,周期序列可以看成是有限长序列x(n)以N为周期的周期延拓。频域上的情况也是相同的。从这个意义上说,周期序列只有有限个序列值有意义。3.有限长序列DFT与离散时间傅里叶变换DTFT的联系离散时间傅里叶变换(DTFT)是指信号在时域上为离散的,而在频域上则是连续的。如果离散时间非周期信号为x(n),则它的离散傅里叶变换对(DTFT)表示为其中X(ejw)称为信号序列的频谱。将频谱表示为.|X(ejw)|称为序列的幅度谱, 称为序列的相位谱。从离散时间傅里叶变换的定义可以看出,信号在时域上是离散的、非周期的,而在频域上

8、则是连续的、周期性的。与有限长序列相比,X(ejw)仅在单位圆上取值,X(k)是在单位圆上N个等间距的点上取值。因此,连续谱X(ejw)可以由离散谱X(k)经插值后得到。为了进一步理解有限长序列的傅里叶变换(DFT)与离散时间傅里叶变换(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=leng

9、th(xn); n=0:N-1; w=linspace(-2*pi,2*pi,500); %将-2p,2p频率区间分割为500份 X=xn*exp(-j*n*w); %离散时间傅里叶变换 subplot(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,

10、1.1*min(angle(X),1.1*max(angle(X); ylabel(相位谱);运行结果如图12-3所示。图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行

11、改为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),stem(k,a

12、bs(Xk); %显示|X(k)| title(|X(k)|); subplot(2,1,2),stem(k,angle(Xk); %显示arg|X(k)| title(arg|X(k)|);运行结果如图12-4所示。图12-4 增长有限长序列的长度得到|X(k)|和argX(k)五、实验过程2.已知有限长序列x(n)7,6,5,4,3,2,求x(n)的DFT和IDFT。要求:画出序列傅里叶变换对应的|X(k)|和argX(k)的图形。画出原信号与傅里叶逆变换IDFTX(k)的图形进行比较。解 MATLAB程序如下: xn=7,6,5,4,3,2,; %建立信号序列 N=length(xn);

13、 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|

14、X(k)| title(arg|X(k)|);运行结果如图12-5所示。图12-53.已知周期序列的主值x(n)7,6,5,4,3,2,求x(n)周期重复次数为3次时的DFS和IDFS。要求:画出原信号序列的主值和周期序列的图形。画出序列傅里叶变换对应的和的图形。解 MATLAB程序如下: xn=7,6,5,4,3,2,1; N=length(xn); n=0:3*N-1;k=0:3*N-1; xn1=xn(mod(n,N)+1); %即xn1=xn,xn,xn,xn Xk=xn1*exp(-j*2*pi/N).(n*k); %离散傅里叶变换 subplot(2,2,1),stem(xn);

15、%显示序列主值 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-6所示。图12-64.求x(n)7,6,5,4,3,2,0n5的DTFT,将(2p,2p)区间分成500份。要求:2出原信号。画出由离散时间傅里叶变换求得的幅度谱X(ejw)和相位谱argX(ejw

16、)的图形。求有限长序列x(n)7,6,5,4,3,2,N100时的DFT,并与DTFT的结果进行比较。解 MATLAB程序如下: xn=7,6,5,4,3,2; N=length(xn); n=0:N-1; w=linspace(-2*pi,2*pi,500); %将-2p,2p频率区间分割为500份 X=xn*exp(-j*n*w); %离散时间傅里叶变换 subplot(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

17、*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-7所示。图12-7 MATLAB程序如下: N=100; xn=7,6,5,4,3,2,zeros(1,N-6); %建立信号序列 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),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-8所示。图12-8六、实验感想 通过此次实验中练习使用matlab语言进行离散傅里叶级数变换和逆变换的方法,更为熟悉的掌握了matlab的功能,在实验过程中也遇到很多小问题,并通过仔细检查和查阅相关书籍解决此类问题,让我深刻认识到,细节的重要性。在使用help过程中,深切体会到良好的英语基础和充实的课堂知识的重要性。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1