使用FFT来计算IFFT
使用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−1e−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=N1k=0∑N−1eiN2π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)=N1conj(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∑Nconj(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∑Nconj(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∑NeiN2π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) N1conj(DFT(conj(x)))=IDFT(X) (4)
所以FFT一样有这样的结论
IFFT(X)=1Nconj(FFT(conj(X)))IFFT(X) = \cfrac{1}{N}conj(FFT(conj(X))) IFFT(X)=N1conj(FFT(conj(X)))
参考文档:
- Discrete Fourier Transform离散傅里叶变换算法
- How to Compute the IFFT using only the forward FFT
使用FFT来计算IFFT相关推荐
- 通过FFT来计算螺旋线的匝数
手边有两个螺旋线,它们是射频天线.下面使用图像处理的方法来获得它们对应的匝数. ▲ 两款天线对比 01基本算法原理 具体处理步骤: 1. 截取螺旋线的图片: 截取螺旋线的图频并旋转的水平方向. ▲ 截 ...
- tensor如何实现转置_PyTorch中的傅立叶卷积:通过FFT有效计算大核卷积的数学原理和代码实现...
卷积 卷积在数据分析中无处不在.几十年来,它们已用于信号和图像处理.最近,它们已成为现代神经网络的重要组成部分. 在数学上,卷积表示为: 尽管离散卷积在计算应用程序中更为常见,但由于本文使用连续变量证 ...
- verilog中将fft转换成ifft
fft的实现以及代码已经展现在verilog实现8点FFT运算中了. 利用fft的代码即可实现ifft的代码. 主要操作就是将输入的部分取共轭,然后输出结果取共轭再除8(因为是8点fft所以结果除以8 ...
- 【STM32H7的DSP教程】第32章 STM32H7的实数FFT的逆变换(支持单精度和双精度)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第32章 STM32H7的实数FFT的逆变换(支 ...
- czt算法c语言实现,基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF).ppt
基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF) 第四节基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF)(Sander-Tu ...
- C语言实现的FFT与IFFT源代码,不依赖特定平台
目录 源码 FFT.c FFT.h 使用方法 初始化 输入数据 FFT 快速傅里叶变换 解算FFT结果 使用python绘制FFT波形 IFFT 快速傅里叶逆变换 解算IFFT结果 Windows 1 ...
- matlab的fft与ifft,fft与ifft区别
OFDM是如何利用FFT和IFFT技术实现的_信息与通信_工程科技_专业资料.1.LTE 在广义上说只有一个载波,FDD 是上行和下行的载波分配在不同的频点,TDD 是在 同一个...... Matl ...
- python实现FFT,IFFT
利用蝶形算法实现fft,以及ifft:我的算法还不太完整,只能输入图片长宽为2**n的图片,要改进只需要根据输入的长宽进行补0,使得长宽都为2的整数倍: import math import cv2 ...
- Python实现FFT及IFFT
运行环境及编译工具 Windows VS Code 编程语言及库版本 库 版本 Python 3.7.0 copy 无 numpy 1.19.2 opencv 3.4.2 PIL 8.1.0 matp ...
最新文章
- python中词云图是用来描述_Python制作词云图代码实例
- 漫说中介者模式--创业公司成长记
- 向silverlight传递自定义参数
- 使用FgSegNet进行前景图像分割
- C++ 对象的初始化和清理
- script和scriptreplay命令实现终端录制和回放。
- 外包以小时计算金额的费用_基金申购赎回费用计算实例
- 12306小卡片-鸿蒙智慧出行
- 数仓、数据平台和中台还分不清楚?大佬的10年经验之谈,看完懂了
- 信息系统服务器(机柜)鉴定表,机房建设标准及管理规范
- Java中文姓名拆分
- 小鹏汽车面试经验分享
- 《剑来》语句摘录(六)
- 阿里巴巴 Alibaba
- 2019/7/18ACM集训
- 【网络编程实践--陈硕】2.4.4 procmon 程序的设计实现
- Go分享好的github插件和项目
- D语言和Go语言有前途吗?
- YOLO系列文章汇总
- 华大HC32F460NMI中断实验
热门文章
- J. Med. Chem. | 通过负向设计优化筛选化合物库
- php model类,PHP培训之PHP Model类
- iMeta | 宏基因组生物信息期刊-创刊背景和简介
- Science Bulletin:上海植生所王二涛组发表基于绝对丰度的植物根际微生物群落“扩增-选择”组装模型
- 中科院遗传发育所发表“重组菌群体系在根系微生物组研究中应用”的重要综述...
- Microbiome:南土所褚海燕组揭示长期施肥抑制根际微生物固氮的作用机制
- 哈佛牙学院博士后:教你口腔保健基本功之刷牙篇
- matlab中sinks,MATLAB Simulink模块库详解(二)Sinks篇
- PCA图像数据降维及重构误差分析实战并使用TSNE进行异常数据可视化分析
- python使用正则表达式检测给定的URL地址是否合法