快速傅里叶算法(FFT)快在哪里?
创始人
2024-05-25 23:23:13
0

目录

前言

1、DFT算法 

2、FFT算法

2.1 分类

 2.2 以基2 DIT(时间抽取) FFT 算法为例

2.2.1 一次分解 

2.2.2 多次分解

 参考


前言

  对信号分析的过程中,为了能换一个角度观察问题,很多时候需要把时域信号波形变换到频域进行分析,这涉及到对信号求傅里叶变换,在计算机中便于处理的是离散信号,因此需要求信号的离散傅里叶变换,但是离散傅里叶变换(DFT--Discrete Fourier transform)的算法时间复杂度O(n2),为了能提高计算的速度,很多时候我们进行的变换为快速傅里叶变换(FFT--Fast Fourier Transform),其算法时间复杂度O(nlogn),大大提高了计算的速度,那么该快速傅里叶变换算法的快在哪里?中间进行了什么操作,我们下面具体分析。

在之前的一篇文章中我们提到了DFT和FFT的关系

频谱、功率谱、倒频谱_heda3的博客-CSDN博客_倒频谱

1、DFT算法 

DFT的数学计算表达式为:

长度为N的离散时间信号x(n),做N点离散傅里叶变换如下:

  X(k)=\sum_{n=0}^{N-1}x(n)e^{-j\frac{2\pi}{N}kn}=\sum_{n=0}^{N-1}x(n)W_{N}^{kn}

其中k=0,1,2,...N-1

其中W_{N}=e^{-j2\frac{ \pi }{N}}

运算量表述为:

依据上述公式可知,做1点DFT,需要N次复数乘法、N-1次复数加法

做N点DFT,则需要N*N次复数乘法、N*(N-1)次复数加法

当N为256点时,所需运算量65536次复数乘法、65280次复数加法

N=512点时,所需运算量262144次复数乘法、261632次复数加法

N=1024点时,所需运算量1048576次复数乘法、1047552次复数加法

可见当N点从256到1024点变化时,DFT算法的计算量从万级到百万级。

2、FFT算法

2.1 分类

分为按照时间抽取(在时间上将信号长度逐步减少)和按照频率抽取

依据抽取长度分为基2、基4

基2 DIT(时间抽取) FFT  也称为Cooley-Tukey algorithm 库利图基算法

基2 DIF(频率抽取) FFT

基4 FFT

分裂基FFT(包含两种不同基的混合计算)

 2.2 以基2 DIT(时间抽取) FFT 算法为例

基于基2时间抽取将信号划分为两部分分别计算FFT(信号长度N要求为N=2的整数倍):

X(k)=\sum_{n=0}^{N-1}x(n)W_{N}^{kn}=\sum_{n=0}^{N/2-1}x(2n)W_{N}^{k2n}+\sum_{n=0}^{N/2-1}x(2n+1)W_{N}^{k(2n+1)}                          1)

其中k=0,1,2,...N-1

复数运算的特性

W_{N}^{kn}=e^{-j2\frac{ \pi }{N}kn}

对称性: 

 W_{N}^{nk}=W_{N}^{-nk}=W_{N}^{(N-n)k}

周期性:

 W_{N}^{nk}=W_{N}^{(n+N)k}

可约性:

 W_{N}^{nk}=W_{mN}^{mnk} =W_{N/m}^{nk/m}

常见的计算 

W_{N}^{0}=1

W_{N}^{N/2}=-1

W_{N}^{N/4}=-j

2.2.1 一次分解 

依据上述复数运算的特性的可约性,则1)化简为:

X(k)=\sum_{n=0}^{N-1}x(n)W_{N}^{kn}=\sum_{n=0}^{N/2-1}x(2n)W_{N/2}^{kn}+W_{N}^{k}\sum_{n=0}^{N/2-1}x(2n+1)W_{N/2}^{kn}     2)

             X(k)=\sum_{n=0}^{N-1}x(n)W_{N}^{kn}=X_{0}(k)+W_{N}^{k}X_{1}(k)                                                  3)

              其中k=0,1,2,...N-1

利用特性:

W_{N}^{k+N/2}=W_{N}^{N/2}W_{N}^{k}=-W_{N}^{k}

则3)可表述为:

                            X(k)=X_{0}(k)+W_{N}^{k}X_{1}(k)                                                 4)

X(k+N/2)=X_{0}(k)-W_{N}^{k}X_{1}(k)                    

                               其中k=0,1,2,...N/2-1 

用如下的蝶形方式表述为3式和4式:

 两次复数运算:

 一次复数运算:

也即是N点DFT包含:2个 N/2点DFT和N/2个蝶形运算,一个蝶形运算包含一次复数乘法和两次复数加法

上述:做N点DFT,则需要N*N次复数乘法、N*(N-1)次复数加法

则2个N/2点DFT,则需要2*(N/2*N/2)=N^{^{2}}/2次复数乘法,2*(N/2)*(N/2-1)=N(N/2-1)次复数加法运算;蝶形运算次数:N/2次复数乘法,N次复数加法。

因此总的复数乘法计算:N(N+1)/2    总的复数加法次数:N^{^{2}}/2

通过上述的一次分解前后的运算量分析,可见经过一次分解后(信号按照奇偶数将N点DFT划分为N/2点DFT,并将两个N/2点DFT组合的方式),其运算量降低了一半,计算效率得到了提升。

2.2.2 多次分解

当N一直分解下去直到DFT的点数为2时,最小的计算单元为一个基本的蝶形运算,因此由于信号长度最初定义为N=2的整数倍,也即是N=2^{^{M}},因此N点DFT运算可以分解为M级蝶形运算,每一级为N/2个蝶形运算。

通过上述的FFT计算方法,则N点FFT运算需要M*N/2个蝶形运算,复数乘法次数:

N/2*M=N/2*log_{2}^{N}

复数加法次数:

   N/2*2*M=N*log_{2}^{N}

 

当N点从256到1024点变化时,FFT算法的计算量从千级到万级。可见FFT运算速度较DFT得到较大的提升。

    现在我们可以明显知道FFT到底快在哪里,因为经过对信号的逐级分解,将大点DFT划分为小点DFT计算,也即是N点FFT若基于基2抽取方法,则需要log_{2}^{N}级分解,N点DFT最终划分为2点DFT计算,并结合指数运算的特性,减少冗余计算,使得运算量大为减小。

 参考

【1】《数字信号处理》

【2】如何利用FFT(基2时间以及基2频率)信号流图求序列的DFT

 

相关内容

热门资讯

山东招考院回应小伙为救同学耽误... 近日,“小伙为救同学职教高考语文缺考”冲上热搜,引发关注。5月14日,山东省教育招生考试院发布消息:...
因存在安全隐患 福特公司召回约... 央视记者当地时间5月14日获悉,福特汽车公司宣布,由于存在可能导致车辆在行驶过程中丧失制动功能、增加...
“流动的博物馆”进校园传薪火 本报讯(记者 宁亚琴 摄影报道)当满载文物知识的流动展板进入校园,一场跨越时空的文化对话就此开启。5...
泽连斯基:基辅已准备好进行“任... 转自:财联社【泽连斯基:基辅已准备好进行“任何形式的谈判”以结束与俄罗斯的冲突】财联社5月15日电,...
公益金赋能伊春市青少年冰雪赛事 黑龙江省伊春市地处小兴安岭腹地,作为北方知名的森林生态旅游城市,冰雪旅游一直是“林都”伊春最亮眼的名...
“当时我还以为方向盘失控了” ... 平面示意图 “晚上经过这里变道,车身都要剧烈振动一下,好影响行车安全哦。”近日,有读者向重庆晨报反映...
“青春同行,公益筑梦”爱心传递... 与此同时,一场非凡的公益之旅也在同步进行。“青春同行,公益筑梦”活动,于5月6日至31日在28省市火...
阿尼玛卿黄河水源涵养地科学考察... 本报讯(记者 师晓琼)5月13日,由三江源生态保护基金会、三江源国家公园管理局、五矿国际信托有限公司...
抽签结果出炉 北京时间5月14日,2027年男篮世界杯预选赛抽签仪式在卡塔尔多哈举行,中国男篮最终被分在B组。和中...
欧洲三大股指收盘小幅下跌 德国... 转自:财联社【欧洲三大股指收盘小幅下跌 德国DAX指数跌0.47%】财联社5月15日电,欧洲三大股指...
36岁宋轶现身央视端午晚会录制... 5月14日晚,根据录制现场的路透信息,目前确定参与的艺人包括宋轶(白旗袍古典造型获赞)、刘宇(国风舞...
特朗普中东行 “绕不开”以色列 美国总统唐纳德·特朗普5月13日至16日访问沙特阿拉伯、卡塔尔和阿拉伯联合酋长国三国,此行将不会到访...
频繁的器材变革让国乒遭遇“多哈... 2025多哈世乒赛开幕进入倒计时,中国乒乓球队已经抵达多哈,提前进行适应性训练。澳门世界杯男单丢冠之...
这场家风主题活动上,近500岁... 转自:上观新闻奉贤区南桥镇吴塘村的“明代牡丹苑”内有一株距今近500年的古牡丹。据史料记载,明代书画...
评论丨如何把握美国通胀当前走势...   孙长忠(清华大学全球私募股权研究院研究员)  美国劳工部5月13日公布4月CPI通胀数据显示:4...
俄罗斯库尔斯克州发生交通事故 ... 当地时间5月14日,俄罗斯库尔斯克州州长发布消息称,该州一地发生了严重交通事故,客车与轿车相撞,已致...
美元预测:周四零售销售数据会将...   来源:汇通网  周三(5月14日)欧盘时段,美元指数(DXY)盘中跌至100.58,下跌0.40...
欧洲债市:意大利与德国国债利差...   意大利与德国国债利差一度跌破100个基点,为2021年9月以来首次出现,反映风险偏好改善。  意...
朝阳无限社区邻里节暖心启幕 转自:劳动午报 近日,朝阳区八里庄街道朝阳无限社区举办“爱满无限 睦邻同心 共筑美好”主题邻里节,通...
马来西亚18岁中国留学生绑架案... 5月13日,两名中国留学生在马来西亚伪造绑架,骗取父母500万元赎金,被警方逮捕。5月14日,曾协助...