FFT中基2运算、基4运算、基8运算中的运算的次数及效率分析

对于不同FFT的基运算情况:

首先是:

  • 基2运算
    基2是讲一路采集的信号进行一分为2进行运算,也就是说,对于采集的信号需要满足的条件是:N(信号长度或者说采集的点数)=2L,也就是说,只要长度(或者采集点数)N=2,4,8,16,32,64,128、、、这样的长度就可以做基2运算。

  • 基4运算
    基4是讲一路采集的信号进行一分为4进行运算,也就是说,对于采集的信号需要满足的条件是:N=4L,也就是说,只要长度N=4,16,64,256、、、类似这样的长度就可以做基4运算。

  • 基8运算
    基8是讲一路采集的信号进行一分为8进行运算,也就是说,对于采集的信号需要满足的条件是:N=8L,也就是说,只要长度N=8,64,512,4096、、、、、类似这样的长度就可以做基4运算。

同时在运算效率方面来说(注:需要满足长度N需要同时满足三个条件)
假设 N=64 (同时满足基2、基4、基8运算)
DFT和FFT运算次数分析
则:
基2:
乘法复数运算=N/2 * log2N
加法复数运算=N* log2N

基2复数乘法运算次数=64/2 *log264=32 *6

基4:
乘法复数运算=3/4N * log4N
加法复数运算=2N* log4N
基4复数乘法运算次数=64/2 *log464=3/4 * 64 * 3

基8:
基8复数乘法运算次数=64/2 log864=322

(注:基8的运算忘记了,后续有时间补一下)

  • 总结:对于不同的来说,在满足三种运算的点数N时,基数越大,运算的次数越少,这样效率就会越高,但是,相应的灵活性就会有所影响。

我们可以明显的看到,在满足基8运算时,能够运算的点数变成了64,521、4096这些点,而在基2运算时会发现N可以满足的条件由2、4、8、16、32、64、128、256、、、这样的。可以发现,基2的灵活性方面大大加强。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐