寻找FFT(1D,任意长度)代码
Looking for FFT(1D, arbitrary length) code
嗨,我正在编写一个分析声音文件的程序,我需要对1秒的数组(通常为44100个样本)进行DFT。
所以我需要的是一个1D FFT算法,适用于任意长度,即不是2的幂。
有什么想法吗?
https://en.wikipedia.org/wiki/Cooley%E2%80%93Tukey_FFT_algorithm通常用于二进制拆分,但实际处理任意因子分解。只要你的数字完全分解成小数字(你的是2*2*3*3*5*5*7*7
),这将提供相当有效的FFT。(请参阅"一般分解"部分。)
已知还有其他FFT算法可以处理任意大小,但它们要慢得多(尽管比天真的要好)。看见https://en.wikipedia.org/wiki/Chirp_Z-transform#Bluestein.27s_algorithm例如。
http://www.nayuki.io/page/free-small-fft-in-multiple-languages在包括JavaScript在内的多种语言中实现了通用的Cooley-Tukey FFT算法。它不能有效地实现任意素数,但没有任何大素数需要处理。
相关文章:
- 单击时的图像代码太长
- 为什么这个代码不起作用?我花了很长时间试图弄清楚这一点
- 如何优化要在 javascript 字符串中使用的长 html 代码的创建
- 如何在安卓应用中运行用户提供的任意代码
- 代码重构一个长 JavaScript 字符串,使其更容易设置样式
- 自定义目标/运行任意代码
- 向每个函数调用添加代码的任意方法
- 在等待节点回调时运行任意代码
- 如何使用 javascript 或其他代码将 html 代码调出到其他页面,而不是重写长代码
- 寻找FFT(1D,任意长度)代码
- 将任意JavaScript代码存储到字符串变量中
- 如何将长JS代码作为对象拆分为单独的文件
- 如何在解析云代码中使用Mailgun将长html作为电子邮件发送
- 如果执行频率更高,相同的代码需要更长的时间
- 在 JavaScript 中使用 for 循环编写代码,提示用户输入任意数量的数字,打印这些数字中最大和最小的数字
- 这个长矩阵可以在代码中分成多行吗?
- 执行从任意网站下载的javascript代码
- Javascript递归意外中断-长代码警告
- 有任何关于如何重构和改进这个Javascript倒计时的想法吗?(长代码)
- 我正在使用Twitch API对特定的流媒体进行分类.代码太长了,有没有更短的方法