简单FFT实验报告Matlab

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLABEXAM.4用语言编程实现DFT和FFT实验报告专业班级:姓名学号指导教师:完成时间:一、实验题目1.用语言编程实现DFT和FFT二、实验目的1.不使用MATLAB现有的FFT函数,自己编写所有具体算法2.给出流程图和理论计算结果。3.设计实验,给出DFT和FFT算法差异的证明,如复杂度等。(精度、不同长度的序列等)4.分析数据,得出结论。三、实验内容1.不使用MATLAB现有的FFT函数,自己编写所有具体算法2.给出流程图和理论计算结果。3.设计实验,给出DFT和FFT算法差异的证明,如复杂度等。(精度、不同长度的序列等)4.分析数据,得出结论。四、实验步骤(一)文件与文件夹管理1.自行编写8点FFT流程算法下图为8点FFT的蝶形运算图,我们采用基2蝶形运算单元来实现8点FFT的变换。图18点FFT蝶形运算图2.给出流程图和理论计算结果xn2xnN(n)2NAxnx[(n)]2nNNBxnxW图2基2蝶形运算单元图38点FFT架构模型利用Matlab对已知输入数据进行DFT运算,得出其理论值假设输入数据为:实现DFT算法:得出其理论值3.设计实验,给出DFT和FFT算法差异的证明,如复杂度等。(精度、不同长度的序列等)通过在matlab中对DFT和FFT的建模,计算相同点数的变换所需要的加法次数和乘法次数。以此来比较两种不同算法的差异性。首先DFT算法中,由于一次循环需要一次复数乘法和一次复数加法(第一次循环不需要加法,所以需要加法次数为计算结果减1)同理在FFT的蝶形运算中,每一次蝶形运算所消耗的复数乘法和复数加法都可以通过参数来计算出来。每次运行基2蝶形模块一次,都需要消耗两次复数加法,一次复数乘法。4.分析数据,得出结论通过运行matlab程序我们可以得出其中的运算复杂度的数值可以看出一个8点的DFT运算需要64次复数乘法,63次复数加法,符合理论值。而一个8点FFT运算则只需要12次复数乘法和24次复数加法,而且其中12次复数乘法中还包含旋转因子为1的乘法运算,所以综上所述,我们可以看出FFT的实现复杂度相对于DFT大大降低。5.实验心得通过这次matlab上级实验,我不仅对matlab这个强大的工具有了更加深入的了解,而且对DFT和FFT也有了更深的了解。通过自己的亲自动手操作,将课本上学习的FFT理论知识转化为实际的数学模型,通过matlab语言进行描写,并进行了辛苦的调试工作,最后成功地完成了基于2点蝶形运算的FFT模型。通过对比DFT和FFT算法中实际运行所消耗的复数加法次数和乘法次数,让我更加清楚的了解到FFT的优势所在。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功