第四章快速傅里叶变换FFT

article/2025/10/18 22:34:04

一、基2FFT算法

1.直接计算DFT的特点

  • 对于N点DFT的乘法和加法运算次数均为N^2(运算量较大)
  • 减少运算量的基本途径:将N点DFT分解成多个较短的DFT
  • 旋转因子具有

        周期性:W_{N}^{m}=W^{m+lN}_{N}

        对称性:W_{N}^{-m}=W_{N}^{N-m}[W^{N-m}_{N}]^{*}=W_{N}^{m}又或者W_{N}^{m+N/2}=-W_{N}^{m}

2.时域抽取法基2FFT基本原理

  • 分类:基2FFT分为时域抽取法FFT(DIT-FFT)和频域抽取法FFT(DIF-FFT)
  • 设x(n)长度为N且满足N=2^M(M为自然数),按n的奇偶数把x(n)分解为两个N/2点的子序列(时域不断奇偶分组)

         (注意X1(k)和X2(k)分别为x1(r)和x2(r)的N/2点DFT,即以N/2为周期)

  • 蝶形运算符

  •  若N=8则8点DFT一次时域抽取分解运算流程图(输入倒序输出正序)

        输入时上半部分是偶序列号,下半部分是奇序列号(对应x(n)分为奇偶序列),乘法和加法的次数变为N^{2}/2

  •  DIT-FFT算法与直接计算DFT的运算量比较(N=2^M)

        a)DIT-FFT的M级运算总复加次数C_{N}=Nlog_{2}N=NM , 总复乘次数C_{M}=NM/2

        b)直接DFT算法总复加次数为N(N-1)次,总复乘次数为N^2次

  • DIT-FFT的运算规律

        a)N点DIT-FFT包含M级蝶形运算,每一级包含N/2个蝶形单元

        b)用L表示从左到右的运算级数(L=1,2,3,,M),第L级共有2^{L-1}个不同的旋转因子

        c)第M级蝶形运算(L=M)旋转因子为W^{0}_{N}W_{N}^{1}W_{N}^{2},,,W_{N}^{N/2 -1},蝶形节点间距为N/2(所谓蝶形节点间距是指蝶形运算符交叉点延长出来的两条横线中间的空格数,有几个空格蝶形间距就为多少)

        d)关于输入序列的倒序,输出序列的正序

(8点DIT-FFT运算流图)

 3.频域抽取法(DIF-FFT)[设序列x(n)的长度N=2^M]

  • 将x(n)的DFT,即X(k)分为奇数组X(2m+1)和偶数组X(2m),令

x_{1}(n)=x(n)+x(n+\frac{N}{2}),x_{2}(n)=[x(n)-x(n+\frac{N}{2})]W_{N}^{n}

        则有

X(2m)=\sum_{n=0}^{N/2-1}x_{1}(n)W_{N/2}^{mn},X(2m+1)=\sum_{n=0}^{N/2-1}x_{2}(n)W_{N/2^{mn}}

        偶数组是x1(n)的N/2点DFT,奇数组则是x2(n)的N/2点DFT

  • DIF-FFT蝶形运算流图符号

  •  DIF-FFT的运算规律

        a)对于长度为N=2^M的序列,需要经过M-1次分解,最后分解为2^(M-1)个两点DFT(两点DFT就是一个基本DIF-FFT蝶形运算符)

        b)DIF-FFT算法与DIT-FFT算法类似,可以原位计算,共有M级运算,每级共有N/2个蝶形单元,所以两种算法的运算次数相同,不同的是DIF算法输入序列为自然序列,输出为倒序。

 (8点DIF-FFT运算流图)

4.IDFT的高效算法

  • DIF-IFFT或DIT-IFFT算法:将上述DIT-FFT算法与DIF-FFT算法中的旋转因子W_{N}^{p}改为W_{N}^{-p},最后的输出再乘以1/N即可,要注意IFFT的流图输入的是X(K)输出的是x(n)
  • 直接调用FFT算法计算IFFT:先将X(k)取复共轭,然后调用FFT,最后再取复共轭并乘以1/N

二、进一步减少运算量的措施

1.多类蝶形单元计算

  • 无关紧要的旋转因子:值为±1和±j的旋转因子,如W_{N}^{0},W_{N}^{N/2},W_{N}^{N/4}
  • 基2FFT程序中,包含以下几种蝶形运算:

        a)一类蝶形单元运算:包含所有旋转因子

        b)二类蝶形单元运算:去掉W_{N}^{m}=±1的旋转因子

        c)三类蝶形单元运算:去掉W_{N}^{m}=±1和W_{N}^{m}=±j的旋转因子

        d)四类蝶形单元运算: 去掉W_{N}^{m}=±1和W_{N}^{m}=±j的旋转因子并判断处理W_{N}^{m}=(1-j)\sqrt{2}/2

2.实序列的FFT算法

  • 处理实序列的FFT算法的三种方法:

        a)一个实序列作为作为x(n)的实部,另一个作为虚部,计算完FFT后,根据DFT的共轭对称性,由X(k)分别得到两个实序列的N点DFT

        b)用N/2点FFT计算一个N点实序列的DFT

        c)用离散哈特莱变换(DHT)

  • 设x(n)为N点实序列,取x(n)的偶数点和奇数点分别作为新构造序列y(n)的实部和虚部,即x1(n)=x(2n),x2(n)=x(2n+1),y(n)=x1(n)+jx2(n)
  • 对y(n)进行N/2点FFT,输出Y(k)则

Y_{ep}(k)=X_{1}(k)=DFT[x1(n)]

-jX_{op}(k)=X_{2}(k)=DFT[x2(n)]

  • 根据上述可得X(k)=X1(k)+W_{N}^{k}X2(k),又根据x(n)为实序列可得X(N-k)=X^{*}(k)
  • 该算法所需复数乘法次数为N(M+1)/4

 

 


http://chatgpt.dhexx.cn/article/ym266ejw.shtml

相关文章

数学专题小结:FFT算法

快速傅里叶变换(FFT,Fast Fourier Transform)是信号处理的常用手段,可以把时域信号变成频域信号,时域的卷积运算对应于频域就成了简单的乘法运算。由于两个多项式的乘积,其系数的运算实际上也是一种卷积运算,因此可以用FFT来计算多项式的乘法。网上关于FFT算法的讲解大多…

转:fft算法(快速傅里叶变换算法)

FFT (Fast Fourier Transform) 是一种快速傅里叶变换算法。它是用来将一个信号从时域转换到频域的算法。这个算法通过分治策略,将一个长度为 N 的复数序列分解成 N/2 个长度为 2 的复数序列,然后对这些小的序列分别进行 FFT 计算。 最简单的 FFT 算法是暴…

快速傅里叶变换(FFT)算法学习

前言 人生如逆旅,我亦是行人。 一、介绍 算法的世界多么广大,我们可以将算法大致分为两类: 第一类是较为有用的算法:比如一些经典的图算法,像 DFS 和 BFS(深度 / 广度优先算法),这些…

FFT算法讲解——麻麻我终于会FFT了!

FFT——快速傅里叶变换 这块不写东西空荡荡的,我决定还是把FFT的定义给贴上吧 FFT(Fast Fourier Transformation)是离散傅氏变换(DFT)的快速算法。即为快速傅氏变换。它是根据离散傅氏变换的奇、偶、虚、实等特性&…

怎么计算网站流量?

如何计算网站的流量呢?在这华仔给大家分享一个如何计算流量的算法: 举个栗子:1G1024M,10G就是101024M10240M. 一个1M的文件被下载1000次的流量约为1G;被下载10000次的流量约为10G. 假如你每月的网站流量为10G,那10G的流…

CDN流量是什么,怎么计算?

CDN流量通俗来讲就是使用CDN加速时,网络加速会产生一个数据使用量,到达某一个时段,统计出这个时段使用的量,也就是CDN流量,和网站流量的使用很像。 随着互联网的发展,用户在使用网络时对网站的浏览速度和…

流量计算器

为所做的工作处于初始开发的阶段,所以数据一直在变化,导致1s的流量大小一直也在变化。每次都需要手动根据新的参数进行计算,真的好烦。 所以呢,作为一个程序员,能让程序做的事情,自己就不要动手了呀&#x…

Flink1.14相关-3.数据流量计算

1. 前言 使用环境 Flink1.14.6Centos7.9Java8 Flink1.14.6安装部署测试参考:参考链接 2 .数据采集 2.1 信号监听 需要监听文件夹下的新文件产生,并且数据库中的值未更新时才发送消息通知后续模块开始采集数据。【后面需要重新搭建监听部分和判断部分…

适应多场景的客流量统计-人流量统计算法

在商场、展厅、景区等受人流量影响较大的场所,流量统计算法可以快速获取流量数据和动态趋势,辅助评估店铺和部分活动的效果,帮助商业决策。另外,在地铁站、火车站、机场等公共场所。实时检测人数可以及时预警高密度人群&#xff0…

网站的服务器带宽计算,服务器带宽和流量计算方式

服务器带宽和流量计算方式。网站流量和带宽该怎么计算,给一些参照数据信息,由于不清楚流量和带宽是怎么计算的,因此不清楚用多宽的带宽更有效、更节省资产! 网站服务器上最好是安装流量统计手机软件(强烈推荐应用DUMeter),假如流量…

博途1200/1500PLC累计流量计算FB(SCL算法详解+优化)

在编写这篇博客之前其实已经写过一篇SMART S7-200PLC的流量累计的应用文章,由于很多朋友咨询博途PLC下的流量累计实现算法。今天我们以博途PLC的开发环境为例详细讲解算法的实现原理和注意事项同时给出算法的优化方法。受水平和能力所限,文中难免出现错误和不足之处,诚恳的欢…

阿里云轻量应用服务器流量计算方法

阿里云轻量应用服务器套餐有峰值带宽限制每月流量的,还有固定带宽的,阿里云轻量应用服务器流量是怎么计算的?阿里云轻量应用服务器来说说不同套餐下轻量服务器流量计算方法: 轻量应用服务器带宽套餐和流量套餐 阿里云轻量应用服…

物联网GPRS模块流量计算

物联网GPRS模块流量计算 MQTT(消息队列遥测传输) 是ISO 标准下一个基于TCP/IP的消息发布/订阅传输协议。 一、TCP消耗流量计算 以太网数据包结构: 以太网首部 IP首部 TCP首部 APPL首部 用户数据 以太网尾部 以太网首部为14个字节 IP首部为20个字节 TCP首部…

恒容容器放气的瞬时流量的计算

有时候,你会遇到一个问题,该问题的描述如下: 你有一个已知体积的容器,设容器体积为,里面装有一定压力(初始压力)的气体,如空气或氢气等,设初始压力为,容器出口连接着一个阀门开关&am…

阿里云服务器公网带宽流量是怎么计算的?

阿里云服务器流量如何计算?云服务器出流量和入流量都要计算吗?不是,只计算云服务器公网出方向流量,阿里云服务器内网流量和公网出方向流量都是免费的,护云盾来详细说下阿里云服务器流量计算及流量收费说明:…

计算机网络-流量强度

若R链路带宽(链路宽度),L分组长度(一个分组的大小),a分组到达队列的平均速率(分组数量),流量强度公式 :I La/R 举例理解: 当汽车排队从关卡上桥…

腾讯云服务器带宽计费模式按流量内网、外网出入流量计算说明

腾讯云服务器公网带宽计费模式按使用流量计费,云服务器对内或对外产生的流量如何计算?云服务器出方向(下行流量)和入方向(上行流量)怎么计算?腾讯云百科来详细说下腾讯云服务器按使用流量计算说…

计算视频流量

码率也可以叫比特率,就是一种音乐每秒播放的数据量,单位用bit表示,也就是二进制位。 bps就是比特率。b就是比特(bit),s就是秒(second),p就是每(per&#xff0…

电缆载流量计算对照表

10.6/1KV聚氯乙烯绝缘电力电缆载流量 常用型号VV22、VLV22聚氯乙烯绝缘钢带铠装聚氯乙烯护套电力电缆载流量 注:以上电缆载流量计算条件 1. 线芯长期工作温度:70℃; 2. 环境温度:25℃ ; 3. 埋地深度:10…

明渠如何快速估算水流量(明渠流量计算)

明渠流量估算一般采用速度面积法估算,如果你有流速仪可以测量渠道的流速,如果没有,可以通过漂浮物与秒表来估算,漂浮物容易受到风速影响,风大了是不行的,比如通过一个漂浮物,在时间t内漂浮的距离…