频率抽取(DIF)基2FFT算法和时间抽取(DIT)基2FFT算法是两种等价的FFT算法,其相同之处:

(1)DIF与DIT两种算法均为原位运算。

(2)DIF与DIT运算量相同。

不同之处:

(1)DIF的算法结构是将DIT算法结构倒过来。

· DIF为输入顺序,输出乱序。运算完毕再运行“二进制倒读”程序。

· DIT为输入乱序,输出顺序。先运行“二进制倒读”程序,再进行求DFT。

(2)DIF与DIT根本区别:在于蝶形结不同。

· DIT的复数相乘出现在减法之前。

· DIF的复数相乘出现在减法之后。

下图[REF1]是在N=8时,频率抽取(DIT)基2FFT算法的流图。

最后给出MATLAB实现的代码:

function [Xk]=DIF_FFT_2(xn,N);

%蝶形运算开始

M=log2(N);%“级”的数量

for m=0:M-1 %“级”循环开始

Num_of_Group=2^m;%每一级中组的个数

Interval_of_Group=N/2^m;%每一级中组与组之间的间距

Interval_of_Unit=N/2^(m+1);%每一组中相关运算单元之间的间距

Cycle_Count=N/2^(m+1)-1;%每一组内的循环次数

Wn=exp(-j*2*pi/Interval_of_Group);%旋转因子

for g=1:Num_of_Group %“组”循环开始

Interval_1=(g-1)*Interval_of_Group;%第g组中蝶形运算变量1的偏移量

Interval_2=(g-1)*Interval_of_Group+Interval_of_Unit;%第g组中蝶形运算变量2的偏移量

for r=0:Cycle_Count;%“组内”循环开始

k=r+1;%“组内”序列的下标

xn(k+Interval_1)=xn(k+Interval_1)+xn(k+Interval_2);%第m级,第g组的蝶形运算式1

xn(k+Interval_2)=[xn(k+Interval_1)-xn(k+Interval_2)-xn(k+Interval_2)]*Wn^r;%第m级,第g组的蝶形运算式2,注:1和2为同址运算

end

end

end

%序列排序开始

n1=fliplr(dec2bin([0:N-1]));%码位倒置步骤1:将码位转换为二进制,再进行倒序

n2=[bin2dec(n1)];%码位倒置步骤2:将码位转换为十进制后翻转

for i=1:N

Xk(i)=xn(n2(i)+1);%根据码位倒置的结果,将xn重新排序,存入Xk中

end

基2FFT算法matlab程序编写,频率抽取(DIF)基2FFT算法的MATLAB实现相关推荐

  1. 基2FFT算法matlab程序编写,按时间抽取的基2FFT算法分析及MATLAB实现

    按时间抽取的基2FFT 算法分析及MATLAB 实现 1 DIT-FFT 算法的基本原理 有限长序列x (n )的N 点DFT 定义为:∑-==10 )()(N n n k N W n x k X , ...

  2. 分别统计出其中英文字母、空格、数字和其它字符的个数 matlab 程序,编写一段程序,要求先输入一行字符,然后分别统计出其中英文...

    编写一个求和的程序,要求能任意输入两个整数,求和 用javascript写 +=functionadd(){varA=document.getElementById("a").va ...

  3. 一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程

    一.前言   我最近在做一个基于图像融合的目标检测工程,我经常用matlab去研究和创新新型的图像融合算法,因为matlab有着python所不可比拟的数据可视化功能和大量的滤波分解框架包:在目标检测 ...

  4. matlab程序的幂法,数值分析课程设计+幂法与反幂法MATLAB

    数值分析课程设计+幂法与反幂法MATLAB 1一.问题的描述及算法设计(一)问题的描述本次课程设计我所要做的课题是对称矩阵的条件数的求解设计1.求矩阵 A 的二条件数问题 A 2102.设计内容1)采 ...

  5. matlab程序设计基础m文件,实验五 M文件和MATLAB程序设计.doc

    实验五 M文件和MATLAB程序设计 第 PAGE \* Arabic \* MERGEFORMAT 10 页 实验五 M文件和MATLAB程序设计 一.实验目的 matlab作为一种高级计算机语言, ...

  6. java 网页正文抽取算法_GitHub - hfut-dmic/ContentExtractor: 自动抽取网页正文的算法,用JAVA实现...

    ContentExtractor ##简介 ContentExtractor是一个开源的网页正文抽取工具,用JAVA实现,具有非常高的抽取精度. ##算法 ContentExtractor的网页正文抽 ...

  7. 卫星测控matlab程序,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序).docx...

    PAGE 4 北斗卫星导航信号串行捕获算法MATLAB仿真报告 原理 卫星导航信号的串行捕获算法如图1所示. 图1 卫星导航信号的串行捕获算法 接收机始终在本地不停地产生对应某特定卫星的本地伪码,并且 ...

  8. 歌曲matlab代码,MATLAB程序编写歌曲《世上只有妈妈好》

    原理很简单,确定好歌谱每个音节频率和持续时间,理论上有歌谱可以编写所有的歌曲,这里编写最简单的一首<世上只有妈妈好>,供大家参考.我对编写出的歌曲进行了DWT压缩处理,,显示压缩后的音频和 ...

  9. 快速傅里叶变换(FFT)——按频率抽取DIF的基

    目录 [1]回顾DIT [2]算法原理 [3]运算特点 [1]回顾DIT https://blog.csdn.net/qq_42604176/article/details/105559756 [2] ...

最新文章

  1. springCloud入门学习(七):通过属性自定义Ribbon配置
  2. Python3中的68个内置函数总结
  3. 球迷福利!Next VR本周将直播三场ICC比赛
  4. Android Service 形式分类
  5. [转载]Android Layout标签之-viewStub,requestFocus,merge,include
  6. ue4 怎么传递变量到另一个蓝图_[UE4蓝图]虚幻4中实现简易天气系统(三)—— 受风力影响的Cascade雨水粒子...
  7. mysql 主从数据库设置方法
  8. 百度邀您来听一场云存储的大戏!
  9. 打造自己的Android源码学习环境之一:序
  10. unity--newtonsoft.json解析
  11. matlab晶闸管整流电路,基于Matlab GUI的整流电路仿真
  12. SLAM建图精度评估 by EVO
  13. win10系统找不到指定文件怎么办?10种解决方法帮你解决
  14. 2020年中国干旱灾害受灾面积、饮水困难人口数量及造成经济作物损失分析[图]
  15. 本机号码认证黑科技:极光(JG)开发者服务推出“极光认证”新产品
  16. 前端通过js导出报表到excel(如果数据量很大的话,建议不要前端自己导出数据)
  17. 大一上课设——贪吃蛇(链表 + easyx)
  18. 卢卡斯定理 Lucas
  19. win10系统如何清理c盘垃圾
  20. Resetting a lost Admin password

热门文章

  1. jmc线程转储_使线程转储智能化
  2. bean注入属性_摆脱困境:将属性值注入配置Bean
  3. mongodb实验报告_Dropwizard,MongoDB和Gradle实验
  4. 使用Java迭代器修改数据时要小心
  5. 函数指针使用场景和选择_在N + 1场景中使用@NamedEntityGraph更有选择地加载JPA实体...
  6. 为什么声明性编码使您成为更好的程序员
  7. Selenium Java教程– Selenium中的类名定位器
  8. 使用Spring Data JPA进行分页和排序
  9. 使用Spring Session和JDBC DataStore进行会话管理
  10. spring 长轮询_Spring集成文件轮询和测试