电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

用matlab实现DFTFFT

30页
  • 卖家[上传人]:鲁**
  • 文档编号:487467363
  • 上传时间:2024-01-01
  • 文档格式:DOCX
  • 文档大小:548KB
  • / 30 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、用 matlab 实现 DFT FFT目录实验目的2实验内容21. 用 MATLAB实现 DFT22. 用 MATLAB实现 FFT,分析有限离散序列的FFT33. 通过分别计算时间,得出DFT与 FFT 的算法差异7实验原理71.离散傅里叶变换的快速算法FFT72. FFT 提高运算速度的原理83.理论分析DFT与 FFT 算法差异10实验步骤11实验结果11实验分析21实验结论25实验体会261实验目的1. 通过研究 DFT,FFT 性质,用语言实现 DFT, FFT 。不使用 MATLAB现有的 FFT 函数,自己编写具体算法。2. 掌握 FFT 基 2 时间抽选法,理解其提高减少乘法运算次数提高运算速度的原理。3. 设计实验,得出 DFT和 FFT算法差异的证明, 如复杂度等 ( 精度、不同长度的序列等) 。实验内容1.用 MATLAB实现 DFTN点序列 x(n)的 DFT为:?-1()= ( )nk0 k N - 1X kx nWN?=0DFT的矩阵为:根据 DFT公式与矩阵展开,通过MATLAB实现 DFT:22. 用 Matlab 实现 FFT编程思想及程序框图:原位计

      2、算因为 DIT-FFT 与 DIF-FFT 的算法类似,这里我们以 DIT-FFT 为例。 N=2M点的 FFT 共进行 M级运算,且每一级都由 N/2 个蝶形运算组成,后一级的节点数据由前一级同处一条水平线位置的节点数据产生, 所以我们同样可以将后一级的节点数据储存到前一级的节点中, 这样的方法叫做原位计算, 它大大节省了内存资源, 降低了成本,简化了运算。序列的倒序无论是进行 DIT-FFT 还是 DIF-FFT 都需要进行倒序,包括输入倒序与输出倒序,以一定的方式将数组进行重新排列。倒序的方法: 首先由于 N=2M, 我们就可以用 M位二进制数来表示节点的顺序,并且按照奇偶时域抽取。然后,如 图 1 所示,第一次按最低位 n0 的 0、1 值分解为奇偶组,第二次按次低位 n1 的 0、1 值分解为奇偶组,以此类推。最后,所得二进制数所对应的十进制数即为序列倒序后产生的序列。图 1 序列倒序过程倒序的 MATLAB方法:用雷德算法可以对输入信号序列进行倒序重排,流程图如下所示:3蝴蝶因子的变化规律在 DIT-FFT 中,每一级都由 N/2 个蝶形运算构成, 每个蝶形运算包含一个蝴蝶

      3、因子,每一级的蝶形因子又有一定的变化规律:设 L 表示自左而右的运算级次( L=1,2,3, ,M),序数 R,次数 K。每个蝶形运算的两个输入量相距 B=2(L-1) 个点。假设 N=8, 则 M=3,这时有:L=1 时, B=1 , S=N/2 , R=0 , K=1: N/2则有 P=(K-1)*1,所以WNP =WNJ, J=0,1,2,3L=2 时, B=2 , S=N/4 , R=0: N/2:N-1, K=1: N/4则有 P=(K-1)*2,所以WNP =WN/2J, J=0,2L=3 时, B=4 , S=N/8 , R=0: N/4:N-1, K=1: N/8则有 P=(K-1)*4,所以WNP =WN/4J, J=04所以对于一般情况N=2M ,第 L 级的旋转因子为P=(K-1)*B 。从而得到 DIT-FFT 的 Matlab 流程图:5DIT-FFT 的 MATLAB实现为(以对x(n)= cos( n 6) 进行 16 点的变化为例):63. 通过分别计算时间,得出 DFT与 FFT 的算法差异:法一:对 N=512,1024,2048 和 4096 点的

      4、离散时间信号x(n) ,用 Matlab 语言编程分别以DFT和 FFT 计算 N 个频率样值 X(k) ,比较两者所用时间的大小。设x(n)= cos( n6) 。利用 TIC,TOC 函数,分别跟踪变换时间。法二:利用 clock 返回当前日期向量的时间,通过 etime()函数返回走过的日期向量的时间。用 MATLAB实现如下:实验原理1. 离散傅里叶变换的快速算法 FFTN点序列 x(n)的 DFT为:?-1X(k) = x(n)WNnk0 k N - 1?=02 由于系数WNnk = e-j N nk 是一个周期函数:n(N-k)k(N-n)= W-nkW= WNNN( 1)( 2)且是对称的:7WNnk +N/2= -W Nnk( 3)快速傅里叶变换算法正是基于这样的基本思想而发展起来的,它的算法基本可以分称两大类:时间抽取法( DIT-FFT)和频率抽取( DIF-FFT)。由于 DIF-FFT 算法思想基本一致,只是划分方式略有差异,所以这里以DIT-FFT 算法为例进行说明。当 N 是 2 的整数次方时,称为基 2 的 FFT 算法。首先将序列 x(n)分解为两组,偶

      5、数项为一组,奇数项为一组:()= x1(r)Nx 2rx( 2r +1) =x2 (r)r = 0,1, ,2 - 1(4)将 x1 (r) 和x 2(r) 分别进行 N/2 点的 DFT得X1 (k) 和X2 (k) , 且:X( k) =X1( k) + W kX2(k)NNr =0,1, , N - 1 (5)=X1 ( k) - WNkX (+ k)X2(k)22重复这一过程,可得到x(n)的 FFT。2. FFT 提高运算速度的原理FFT 算法将长序列的 DFT分解为短序列的 DFT。N 点的 DFT先分解为 2 个 N/2 点的 DFT,每个 N/2 点的 DFT又分解为 N/4 点的 DFT,以此类推。最小变换的点数即所谓的 “基数”,这个基数是2 点的 DFT(又叫蝴蝶因子) 。如公式( 5)所示,对于X( k)的计算可以分为两部分,因为在上下两个式子中都出现了X1 ( k ) 与 X2 (k) ,因此只需要一次复数乘法与两次复数加法即可分别得到N/2 点的 DFT,从而得到总的N点的 DFT。如 图 2 所示。X1 ( k)X1 ( k ) + WNk X2 (k)WNkX2 (k)X1 (k ) - WNk X2 (k)图 2 DIT-FFT 蝴蝶因子下图为 DIT-FFT 与 DIF-FFT 蝴蝶因子的三种形式:8图 3 DIT-FFT 和 DIF-FFT 的蝴蝶因子(1) 原始形式; ( 2)简化形式; ( 3)优化形式下面以 8 点的 DIT-FFT 为例:图 4 8 点的 DIT-FFT对于 8 点的 FFT,我们需要M=log 2 8 =3 阶运算,每一阶有四个蝴蝶因子,在

      《用matlab实现DFTFFT》由会员鲁**分享,可在线阅读,更多相关《用matlab实现DFTFFT》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.