使用FFT来计算IFFT

  • 公式
    • DFT与IDFT
      • DFT公式
      • iDFT公式
    • DFT计算iDFT
  • 公式推导

FFT是DFT的一种快读计算方式,本质上的计算逻辑是一样的,所以下面使用DFT来讨论公式,应用于FFT是一样的

公式

DFT与IDFT

DFT公式

Xk=∑n=0N−1e−i2πNknxn,k∈{0,1,...N−1}X_k = \sum_{n=0}^{N-1}e^{-i\frac{2\pi}{N}kn}x_n , k\in \{0,1,... N-1\} Xk​=n=0∑N−1​e−iN2π​knxn​,k∈{0,1,...N−1}

iDFT公式

公式:
xn=1N∑k=0N−1ei2πNknXk,k∈{0,1,...N−1}x_n = \frac{1}{N}\sum_{k=0}^{N-1}e^{i\frac{2\pi}{N}kn}X_k, k\in \{0,1,... N-1\} xn​=N1​k=0∑N−1​eiN2π​knXk​,k∈{0,1,...N−1}


那是否可以直接DFT来计算iDFT呢?
答案是可以的

DFT计算iDFT

IFFT(X)=1Nconj(FFT(conj(X)))IFFT(X) = \cfrac{1}{N}conj(FFT(conj(X))) IFFT(X)=N1​conj(FFT(conj(X)))

公式推导

由DFT公式开始推到

(1) 由e的幂来看,共轭操作就是将 幂 取负值 (不理解的可以复习一下欧拉公式
DFT(x)=∑n=0Nconj(ei2πNkn)xn(1)DFT(x) = \sum_{n=0}^{N}conj(e^{i\frac{2\pi}{N}kn})x_n \space\space\space\space\space\space\space\space\space\space\space\space(1) DFT(x)=n=0∑N​conj(eiN2π​kn)xn​            (1)

(2) 将x替换为conj(x)
DFT(conj(x))=∑n=0Nconj(ei2πNkn)conj(xn)(2)DFT(conj(x)) = \sum_{n=0}^{N}conj(e^{i\frac{2\pi}{N}kn}) conj(x_n) \space\space\space\space\space\space\space\space\space\space\space\space(2) DFT(conj(x))=n=0∑N​conj(eiN2π​kn)conj(xn​)            (2)

这里介绍一下共轭运算的两个公式
conj(a)conj(b)=conj(ab)conj(a)+conj(b)=conj(a+b)conj(a)conj(b) = conj(ab) \newline conj(a)+conj(b) = conj(a+b) conj(a)conj(b)=conj(ab)conj(a)+conj(b)=conj(a+b)

(2) 套用上述公式,
DFT(conj(x))=conj(∑n=0Nei2πNknxn)(3)DFT(conj(x)) = conj(\sum_{n=0}^{N}e^{i\frac{2\pi}{N}kn} x_n) \space\space\space\space\space\space\space\space\space\space\space\space(3) DFT(conj(x))=conj(n=0∑N​eiN2π​knxn​)            (3)

(3) 右边部分其实就是N倍的IDFT,N可以从共轭运算中提出来
DFT(conj(x))=Nconj(IDFT(X))(4)DFT(conj(x)) = Nconj(IDFT(X)) \space\space\space\space\space\space\space\space\space\space\space\space(4) DFT(conj(x))=Nconj(IDFT(X))            (4)

(4) 两边都再取一次共轭
1Nconj(DFT(conj(x)))=IDFT(X)(4)\cfrac{1}{N}conj(DFT(conj(x))) = IDFT(X) \space\space\space\space\space\space\space\space\space\space\space\space(4) N1​conj(DFT(conj(x)))=IDFT(X)            (4)

所以FFT一样有这样的结论
IFFT(X)=1Nconj(FFT(conj(X)))IFFT(X) = \cfrac{1}{N}conj(FFT(conj(X))) IFFT(X)=N1​conj(FFT(conj(X)))

参考文档:

  1. Discrete Fourier Transform离散傅里叶变换算法
  2. How to Compute the IFFT using only the forward FFT

使用FFT来计算IFFT相关推荐

  1. 通过FFT来计算螺旋线的匝数

    手边有两个螺旋线,它们是射频天线.下面使用图像处理的方法来获得它们对应的匝数. ▲ 两款天线对比 01基本算法原理 具体处理步骤: 1. 截取螺旋线的图片: 截取螺旋线的图频并旋转的水平方向. ▲ 截 ...

  2. tensor如何实现转置_PyTorch中的傅立叶卷积:通过FFT有效计算大核卷积的数学原理和代码实现...

    卷积 卷积在数据分析中无处不在.几十年来,它们已用于信号和图像处理.最近,它们已成为现代神经网络的重要组成部分. 在数学上,卷积表示为: 尽管离散卷积在计算应用程序中更为常见,但由于本文使用连续变量证 ...

  3. verilog中将fft转换成ifft

    fft的实现以及代码已经展现在verilog实现8点FFT运算中了. 利用fft的代码即可实现ifft的代码. 主要操作就是将输入的部分取共轭,然后输出结果取共轭再除8(因为是8点fft所以结果除以8 ...

  4. 【STM32H7的DSP教程】第32章 STM32H7的实数FFT的逆变换(支持单精度和双精度)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第32章       STM32H7的实数FFT的逆变换(支 ...

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

    基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF) 第四节基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF)(Sander-Tu ...

  6. C语言实现的FFT与IFFT源代码,不依赖特定平台

    目录 源码 FFT.c FFT.h 使用方法 初始化 输入数据 FFT 快速傅里叶变换 解算FFT结果 使用python绘制FFT波形 IFFT 快速傅里叶逆变换 解算IFFT结果 Windows 1 ...

  7. matlab的fft与ifft,fft与ifft区别

    OFDM是如何利用FFT和IFFT技术实现的_信息与通信_工程科技_专业资料.1.LTE 在广义上说只有一个载波,FDD 是上行和下行的载波分配在不同的频点,TDD 是在 同一个...... Matl ...

  8. python实现FFT,IFFT

    利用蝶形算法实现fft,以及ifft:我的算法还不太完整,只能输入图片长宽为2**n的图片,要改进只需要根据输入的长宽进行补0,使得长宽都为2的整数倍: import math import cv2 ...

  9. Python实现FFT及IFFT

    运行环境及编译工具 Windows VS Code 编程语言及库版本 库 版本 Python 3.7.0 copy 无 numpy 1.19.2 opencv 3.4.2 PIL 8.1.0 matp ...

最新文章

  1. python中词云图是用来描述_Python制作词云图代码实例
  2. 漫说中介者模式--创业公司成长记
  3. 向silverlight传递自定义参数
  4. 使用FgSegNet进行前景图像分割
  5. C++ 对象的初始化和清理
  6. script和scriptreplay命令实现终端录制和回放。
  7. 外包以小时计算金额的费用_基金申购赎回费用计算实例
  8. 12306小卡片-鸿蒙智慧出行
  9. 数仓、数据平台和中台还分不清楚?大佬的10年经验之谈,看完懂了
  10. 信息系统服务器(机柜)鉴定表,机房建设标准及管理规范
  11. Java中文姓名拆分
  12. 小鹏汽车面试经验分享
  13. 《剑来》语句摘录(六)
  14. 阿里巴巴 Alibaba
  15. 2019/7/18ACM集训
  16. 【网络编程实践--陈硕】2.4.4 procmon 程序的设计实现
  17. Go分享好的github插件和项目
  18. D语言和Go语言有前途吗?
  19. YOLO系列文章汇总
  20. 华大HC32F460NMI中断实验

热门文章

  1. J. Med. Chem. | 通过负向设计优化筛选化合物库
  2. php model类,PHP培训之PHP Model类
  3. iMeta | 宏基因组生物信息期刊-创刊背景和简介
  4. Science Bulletin:上海植生所王二涛组发表基于绝对丰度的植物根际微生物群落“扩增-选择”组装模型
  5. 中科院遗传发育所发表“重组菌群体系在根系微生物组研究中应用”的重要综述...
  6. Microbiome:南土所褚海燕组揭示长期施肥抑制根际微生物固氮的作用机制
  7. 哈佛牙学院博士后:教你口腔保健基本功之刷牙篇
  8. matlab中sinks,MATLAB Simulink模块库详解(二)Sinks篇
  9. PCA图像数据降维及重构误差分析实战并使用TSNE进行异常数据可视化分析
  10. python使用正则表达式检测给定的URL地址是否合法