python计算fft哪个库最快_python中最快的递归FFT

本文探讨了如何将C语言中的SR-FFT(Split-Radix Fast Fourier Transform)算法转换为Python,并进行了优化,以提高计算速度。通过对算法的改进和Python代码的调整,如减少递归调用、利用预计算的旋转因子,实现了比原版代码快1.66倍的性能提升。作者分享了优化后的Python代码,并期待找到能进一步提升性能的解决方案。
摘要由CSDN通过智能技术生成

为了回答我自己的问题,我对分裂基FFT(SR-FFT)做了一些研究,发现了Anthony Blake的一篇有趣的论文等等. 标题:“南方最快的傅立叶变换”

https://www.cs.waikato.ac.nz/~ihw/papers/13-AMB-IHW-MJC-FastFourier.pdf。本文概述了用SR-FFT加速FFT的方法,并参考了Blake博士论文https://www.cs.waikato.ac.nz/~ihw/PhD_theses/Anthony_Blake.pdf。这包含了附录B清单25中SR-FFT的C代码,如下所示:typedef complex float data_t;

#define W(N,k) (cexp(-2.0f * M_PI * I * (float)k / (float)N))

data_t *LUT1;

data_t *LUT3;

void splitfft(data_t *in, data_t *out, int log2stride, int stride, int N) {

if(N == 1) {

out[0] = in[0];

}else if(N == 2) {

out[0] = in[0] + in[stride];

out[N/2] = in[0] - in[stride];

}else{

splitfft(in, out, log2stride+1, stride << 1, N >> 1);

splitfft(in+stride, out+N/2, log2stride+2, stride << 2, N >> 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值