基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF)

第四节基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF)(Sander-Tukey) 一、算法原理 设输入序列长度为N=2M(M为正整数),将该序列的频域的输出序列X(k)(也是M点序列),按其频域顺序的奇偶分解为越来越短的子序列,称为基2按频率抽取的FFT算法。也称为Sander-Tukey算法。 二、算法步骤1.分组 2.代入DFT中 3. 变量置换--1 3. 变量置换--2 3. 变量置换--3 3. 变量置换--4 4.结论1 一个N点的DFT被分解为两个N/2点DFT。X1(k),X2(k)这两个N/2点的DFT按照: 4.结论2 三、蝶形流图表示 例子:求 N=23=8点DIF (1)先按N=8-->N/2=4,做4点的DIF: 将N=8点分解成2个4点的DIF的信号流图 (2)N/2(4点)-->N/4(2点)FFT(a)先将4点分解成2点的DIF: 因为4点DIF还是比较麻烦,所以再继续分解。 (b)一个2点的DIF蝶形流图 (c)另一个2点的DIF蝶形流图 (3)将N/4(2点)DFT再分解成2个1点的DFT(a)求2个一点的DFT (b)2个1点的DFT蝶形流图 (4)一个完整N=8的按频率抽取FFT的运算流图 (5)DIF的特点 (6)DIF与DIT比较1 相同之处: (1)DIF与DIT两种算法均为原位运算。 (2)DIF与DIT运算量相同。 它们都需要 (6)DIF与DIT比较2 不同之处: (1)DIF与DIT两种算法结构倒过来。 DIF为输入顺序,输出乱序。运算完毕再运行“二进制倒读”程序。 DIT为输入乱序,输出顺序。先运行“二进制倒读”程序,再进行求DFT。 (2)DIF与DIT根本区别:在于蝶形结不同。 DIT的复数相乘出现在减法之前。 DIF的复数相乘出现在减法之后。 作业 P200,3题。试画出N=16点的基-2按频率抽取的FFT流图(DIF)。 第五节IFFT运算方法 以上所讨论的FFT的运算方法同样可用于IDFT的运算,简称为IFFT。即快速付里叶反变换。从IDFT的定义出发,可以导出下列二种利用FFT来计算IFFT的方法。 一、利用FFT计算IFFT的思路1 将下列两式进行比较 二、利用FFT计算IFFT的思路2 利用FFT计算IFFT时在命名上应注意: (1)把FFT的时间抽取法,用于IDFT运算时,由于输入变量由时间序列x(n)改成频率序列X(k),原来按x(n)的奇、偶次序分组的时间抽取法FFT,现在就变成了按X(k)的奇偶次序抽取了。 (2)同样,频率抽取的FFT运算用于IDFT运算时,也应改变为时间抽取的IFFT。 三、改变FFT流图系数的方法1.思路 在IFFT的运算中,常常把1/N分解为(1/2)m,并且在M级运算中每一级运算都分别乘以1/2因子,就可得到IFFT的两种基本蝶形运算结构。(并不常用此方法) 2.IFFT的基本蝶形运算 四.直接利用FFT流图的方法1.思路 前面的两种IFFT算法,排程序很方便,但要改变FFT的程序和参数才能实现。 现介绍第三种IFFT算法,则可以完全不必改动FFT程序。 2.直接利用FFT流图方法的推导 3.直接利用FFT流图方法的注意点 (1)FFT与IFFT连接应用时,注意输入输出序列的排列顺序,即应注意是自然顺序还是倒序。 (2)FFT和IFFT共用同一个程序时,也应注意利用FFT算法输入输出的排列顺序,即应注意自然顺序还是倒位序 (3)当把频率抽取FFT流图用于IDFT时,应改称时间抽取IFFT流图。 (4)当把时间抽取FFT流图用于IDFT时,应改称频率抽取IFFT流图。 作业 用C语言完成N=128点的IDIT,IDIF。 第六节线性调频Z变换 一、引入 以上提出FFT算法,可以很快地求出全部DFT值。即求出有限长序列x(n)的z变换X(z)在单位园上N个等间隔抽样点zk处的抽样值。它要求N为高度复合数。即N可以分解成一些因子的乘积。例N=2L 实际上:(1)也许对其它围线上z变换取样发生兴趣。如语音处理中,常常需要知道某一围线z变换的极点所处的复频率。 (2)只需要计算单位圆上某一段的频谱。如窄带信号,希望在窄带频率内频率抽样能够非常密集,提高分辨率,带外则不考虑。 (3)若N是大素数时,不能加以分解,又如何有效计算这种序列DFT。例N=311,若用基2则须补N=28=512点,要补211个零点。 二、问题提出 由上面三个问题提出: 为了提高DFT的灵活性,须用新的方法。 线性调频z变换(CZT)就是适用这种更为一般情况下,由x(n)求X(zk)的快速变换 CZT:来自于雷达专业的专用词汇。 三、算法原理1.定义 Z 变 换 采 用 螺 线 抽 样

czt算法c语言实现,基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF).ppt相关推荐

  1. 狄斯奎诺算法 c语言,图的邻接表实现迪杰斯特拉算法(C语言).doc

    图的邻接表实现迪杰斯特拉算法(C语言) /*迪杰斯特拉算法(狄斯奎诺算法)解决的是从源点到其它所有顶点的最短路径问题*/ //算法实现: #include #include #define MAX 2 ...

  2. 狄斯奎诺算法 c语言,图的邻接表实现迪杰斯特拉算法(C语言)

    图的邻接表实现迪杰斯特拉算法(C语言). 迪杰斯特拉算法(狄斯奎诺算法)解决的是从源点到其它所有顶点的最短路径问题. 图的邻接表实现迪杰斯特拉算法(C语言) /*迪杰斯特拉算法(狄斯奎诺算法)解决的是 ...

  3. 基2频率抽取实现FFT的Verilog程序

    这里以一个8点FFT设计为例作为介绍,整体电路架构如下图(可点击放大看),实现了一个数据串行输入,结果并行输出的FFT算法(data_in_real为输入值的实部,data_in_img为虚部): 上 ...

  4. 按时间抽取的FFT算法及蝶形运算

    FFT算法的引入 通过计算.推导我们知道,N点序列x[n]的DTFT,可以表示成N/2点序列g[n] = x[2n]和h[n] = x[2n+1]的DTFT形式.由于DFT可以看作对DTFT的采样,故 ...

  5. 活性边表算法c语言,《计算机图形学》有序边表填充算法.doc

    PAGE PAGE 8 实 验 报 告 实验目的 掌握有序边表算法填充多边形区域: 理解多边形填充算法的意义: 增强C语言编程能力. 算法原理介绍 根据多边形内部点的连续性知:一条扫描线与多边形的交点 ...

  6. sunday算法c语言实现,C / C++学习笔记:实现Sunday算法

    Sunday算法 Sunday 算法于 1990 年 Daniel M.Sunday 提出的字符串模式匹配.其效率在匹配随机的字符串时比其他匹配算法还要更快.Sunday 算法的实现可比 KMP,BM ...

  7. 单像素骨架提取算法c语言实现,【图像】骨架提取与分水岭算法

    1.骨架提取 骨架提取,也叫二值图像细化.这种算法能将一个连通区域细化成一个像素的宽度,用于特征提取和目标拓扑表示. morphology子模块提供了两个函数用于骨架提取,分别是Skeletonize ...

  8. mallat算法 c语言,基于STM32F4的小波分解(Mallat算法)程序说明

    一.主要思路 原始信号:OrgSig 信号长度:DWT_SIG_LEN 小波分解层数:N 与MATLAB类似,小波分解后产生2个数组DWT_L和DWT_C,但定义与MATLAB不同.定义如下: DWT ...

  9. aloha算法c语言代码,论文对最简单的反碰撞算法ALOHA算法进行了研究,在识别时间...

    论文对最简单的反碰撞算法ALOHA算法进行了研究,在识别时间和重发次数之间作一下折衷,确定如何选择退避时间. 相关句子 1.确定如何选择这三个之一超出了本文的范围. 2.时间有限,精力有限,金钱有限. ...

最新文章

  1. WhatsApp与Gmail用户数均突破10亿大关
  2. 如何在 Vue 项目中使用 echarts
  3. 模板 - 莫比乌斯反演(常用技巧)
  4. SAP Variant Conditions in Purchasing using reference characteristics【中英文双语版】
  5. ASP.NET MVC4+BootStrap实战
  6. python 从url中提取域名和path
  7. 深入理解 MySQL 索引底层原理
  8. 最小花费(最短路变形+中南大学复试机试)
  9. Android之严苛模式(StrictMode)
  10. AOP之AspectJ简单使用
  11. mysql_real_escape_string 报错_addslashes与mysql_real_escape_string的区别
  12. Sublime Text 3插件安装方法
  13. 中国行业趋势报告——2022年度特别报告
  14. [读书笔记] - 《深度探索C++对象模型》第4章 Function语意学
  15. 选择器高级、样式及布局
  16. 单片机编程语言——C语言(1)
  17. 微信开发者工具添加企业微信小程序模拟器
  18. IOS 开发 Cache文件夹缓存的清理封装(包括WebKit缓存/SDImageCache缓存),都提供了相应的接口.
  19. 阿里云服务器的搭建和部署(小白教程)
  20. kotlin使用StateFlow的collect出错This is an internal kotlinx.coroutines API

热门文章

  1. Eclipse解压打不开的原因
  2. VScode 调试时进入不了方法
  3. 关于国产数据库表设计PDManer工具的使用
  4. 公益创投 |《为孩子赋能》心理健康主题讲座回顾
  5. PlantSimulation和PLC压力测试
  6. 民法典实施后,婚前、婚后买房区别很大
  7. 管理如何让员工服从?员工凭什么听你的?
  8. 土方量测量比以前快3倍,而且精度惊人
  9. 对未来计算机的畅想作文200高中,畅想未来作文200字
  10. 开关三极管使用细节若干问题