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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

点基于DIT的FFT的实现.doc

1、武汉理工大学数字信号处理课程设计说明书课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目:8点基于DIT的FFT的实现初始条件:具备Matlab编程能力;熟悉基于DIT的FFT的实现原理;提供编程所需要的计算机一台。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、 编写一个8点的基于DIT的FFT函数,不能使用matlab自带的FFT实现函数;2、 并调用该函数实现16点的FFT运算,用matlab自带函数对运行结果结果进行验证;3、 完成符合学校要求的设计说明书。时间安排:一周,其中3天程序设计,2天程序调试指导教师签名: 年 月 日系主

2、任(或责任教师)签名: 年 月 日目 录摘 要I1 概述11.1 快速傅立叶变换(FFT)简介11.2 MATLAB简介22 直接计算DFT的问题及改进32.1 直接计算DFT的运算量32.2 改进措施43 按时间抽选的基-2FFT算法(DIT-FFT)53.1 DIT-FFT算法原理53.2 DIT-FFT的运算量113.3 DIT-FFT算法的特点123.4 N=16时的DIT-FFT算法144 MATLAB程序代码154.1 N=8点DIT-FFT代码154.2 N=16点DIT-FFT代码165 MATLAB仿真结果及验证175.1 DIT-FFT函数调试175.2 DIT-FFT函数

3、运行结果185.3调用系统函数验证196 心得体会21参考文献22武汉理工大学数字信号处理课程设计说明书摘 要 此次课设目的是利用MATLAB实现8点基于DIT的FFT的仿真,不使用MATLAB自带的FFT实现函数。本文先就直接计算傅立叶变换(DFT)存在的问题进行讨论,之后详细介绍了快速傅立叶变换(FFT)的原理以及推导过程,给出了8点FFT的蝶形流图以及MATLAB仿真的程序代码,并通过调用该函数代码计算16点的FFT。最后给出了仿真调试结果和此次课设的总结。关键词:FFT;MATLAB;仿真Abstract The aim of this Course Design is to use

4、MATLAB to achieve 8-point DIT-FFT simulation, and can not use the built-in MATLAB FFT function to realize. The beginning of this article discuss the problems of direct calculation of the Fourier transform (DFT) , and then introduces the principle of Fast Fourier Transform (FFT) and the process of de

5、rivation. Then there is given butterfly flow diagram of 8-point FFT and the MATLAB simulation program code, and realize 16-point FFT calculation by calling the function code. Finally, enumeratethe simulation results andmakethe summary of this curriculum design. Keywords: FFT; MATLAB; SimulationI1 概述

6、1.1 快速傅立叶变换(FFT)简介傅立叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。傅立叶变换是声学、语音、电信和信号处理等领域中一种重要的分析工具。在不同的研究领域,傅立叶变换具有多种不同的变体形式,如连续傅立叶变换和离散傅立叶变换。离散傅立叶变换(DFT),是傅立叶变换在时域和频域上都呈现离散的形式,将时域信号的采样变换为在离散时间傅立叶变换(DTFT)频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号

7、的主值序列。即使对有限长的离散信号作DFT,也应当将其看作经过周期延拓成为周期信号再作变换。有限长序列可以通过离散傅立叶变换(DFT)将其频域也离散化成有限长序列。但其计算量太大,很难实时地处理问题,因此引出了快速傅立叶变换(FFT)。1965年,Cooley和Tukey提出了计算离散傅立叶变换(DFT)的快速算法,将DFT的运算量减少了几个数量级。从此,对快速傅立叶变换(FFT)算法的研究便不断深入,数字信号处理这门新兴学科也随FFT的出现和发展而迅速发展。根据对序列分解与选取方法的不同而产生了FFT的多种算法,基本算法是基2DIT和基2DIF。FFT在离散傅立叶反变换、线性卷积和线性相关等

8、方面也有重要应用。计算离散傅立叶变换的快速方法,有按时间抽取的FFT算法(DIT-FFT)和按频率抽取的FFT算法(DIF-FFT)。前者是将时域信号序列按偶奇分排,后者是将频域信号序列按偶奇分排。它们都借助于的两个特点:一是周期性;二是对称性。这样,便可以把离散傅立叶变换的计算分成若干步进行,计算效率大为提高。快速傅立叶变换(FFT),是离散傅立叶变换的快速算法,它是根据离散傅立叶变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅立叶变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。1.2 MATLAB简介MATLAB

9、是美国Math Works公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国Math Works公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设

10、计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使M

11、ATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。优势特点:1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;2) 具有完备的图形处理功能,实现计算结果和编程的可视化;3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。2 直接计算DFT的问题及改进 DFT在数字信号处理中有着重要的作用。然而直接计算DFT的运算量非常大,它与序列长度的平方成正比,因此制约了DFT的应用。快速傅立叶变换(Fast Fou

12、rier Transform,FFT)是实现DFT的一种快速算法。2.1 直接计算DFT的运算量 离散傅立叶变换对为: 正变换: , (2.1.1) 反变换: , (2.1.2)其中,为旋转因子且,x(n)表示输入的离散数字信号序列,X(k)为输入序列x(n)对应的N个离散频率点的相对幅度。比较两式,正变换与反变换的差别就在于旋转因子的指数差个负号及少一个比例因子。因此DFT与IDFT的计算量极为相似,所以只需以正变换为例来考虑直接计算DFT时所存在的问题。一般情况下,序列、x(n)及其离散频谱X(k)都是复序列,因此,要计算离散频谱X(k)的一个值就需要N次复数乘法与N-1次复数加法运算,而

13、计算一个完整的N点的X(k)(对应),就需要次复数乘法与N(N-1)次复数加法运算,当N很大时,因此直接计算DFT的运算量就几乎与成正比,随着N的增加,运算量将急剧增大,即使采用计算机,也很难实时处理。当然,以上的分析的DFT计算量与实际的运算量稍有出入,例如,计算时就不需要做乘法运算,但是当N很大时,这种情况对整个DFT的计算量影响很小,一般不做特别统计。2.2 改进措施 FFT主要利用DFT旋转因子的周期性与对称性来减少运算量:周期性: (2.2.1)对称性: (2.2.2)利用周期性与对称性,一方面可以在DFT的运算过程中把有些项进行合并,另一方面可以把长序列的DFT分解成若干短序列的D

14、FT。因为DFT的运算量与变换长度的平方成正比,如果可以把一个长序列DFT分解成若干短序列DFT再进行计算,就可以大大减少运算量。3 按时间抽选的基-2FFT算法(DIT-FFT)常用的FFT算法有两大类,一类是按时间抽取的FFT算法(简称DIT-FFT),另一类是按频率抽取的FFT算法(简称DIF-FFT)。最早提出的基-2FFT算法,使DFT的运算效率提高了12个数量级,从而为DFT由理论研究到实际应用创造了条件。3.1 DIT-FFT算法原理按时间抽取的FFT算法基本思想是:时域下的序列x(n)按序列n的奇偶分组,频域下序列X(k)按序列k前后分组。有限长序列x(n),设其长度,L为整数,若不满足该条件,加零补足。显然N为偶数,可以按序列序号分为奇、偶两组序列,长度分别为N/2,如:按n的奇偶分组,对x(n)重新排列,得:令 (3.1.1) (3.1.2)再令 (3.1.3) (3.1.4)N点序列x(n)的DFT为:因为

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

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