- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在分析用 Python 编写的 Cooley-Tukey 算法实现的复杂性(代码取自 here):
def fft(x):
N = len(x)
print N, N//2
if N <= 1:
return x
even = fft(x[0::2])
odd = fft(x[1::2])
T = [exp(-2j*pi*k/N)*odd[k] for k in range(N//2)]
return [even[k] + T[k] for k in range(N//2)] + [even[k] - T[k] for k in range(N//2)]
该代码与网页中显示的示例配合得很好;事实上,它似乎适用于任何长度 <= 9 的列表。出于某种原因,尝试使用长度 > 10 的列表:
print( ' '.join("%5.3f" % abs(f) for f in fft([0,1,2,3,4,5,6,7,8,9])))
返回以下错误:
T = [exp(-2j*pi*k/N)*odd[k] for k in range(N//2)]
IndexError: list index out of range
有谁知道失败的原因吗?
最佳答案
您使用的 Cooley-Tukey 实现假设输入长度是 2 的幂。二次幂输入长度是迄今为止最容易实现 Cooley-Tukey 的;将此代码扩展到非二次方输入长度需要完全重写它。
关于python - Cooley-Tukey 算法 python 超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36868702/
我知道 FFT 实现是如何工作的 ( Cooley-Tuckey algorithm ),并且我知道有一个 CUFFT CUDA 库可以快速计算 1D 或 2D FFT,但我想知道在此过程中如何利用
我正在分析用 Python 编写的 Cooley-Tukey 算法实现的复杂性(代码取自 here): def fft(x): N = len(x) print N, N//2 if N 10 的列
我正在尝试为 FFT 编写 Cooley Tukey 算法。现在,该算法运行良好,但仅适用于 2 个数字 - 没有别的。例如,我使用在线 FFT 计算,输入相同的数据并得到相同的结果。这是算法的代码:
我正在阅读 cooley tukey method works ,但我在使用以下 python 脚本时遇到了一些问题: def fft_CT_twiddles(x, inverse = False,
所以我一直在尝试(手动)在 R 中实现 Cooley-Turkey FFT 算法(对于大小为 N=n^2 的输入)。我试过: myfft 1,N=2^n,它不会计算出正确的值。我实现了一个 DFT 函
我是一名优秀的程序员,十分优秀!