gpt4 book ai didi

python - ELI5 : How do I make these FFT-related lists act properly?

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:51 32 4
gpt4 key购买 nike

过去几周我一直在做 FFT 作业。它将于星期四到期,我认为选择 Python 并编写一个从时域转换到频域的 FFT 计算器会很酷。现在,我今天才刚刚开始学习 Python,所以请多多包涵。

无论如何,我偶然发现了一个问题

频率由下式给出(k*采样率)/N

其中 k 是一个整数,范围从 0 到 N-1,其中 N 是样本数量。

我想要的是一个列表,freq[n],像这样:

freq[n] = k[n]*sample rate/N

我尝试了以下方法,但没有成功:

samplerate = 44100
N = 2048
k = range(0,N-1)

for n in range(0,N-1):
freq = k[n]*samplerate/N

print freq[2]

出现以下错误:TypeError: 'int' 对象没有属性 'getitem'

如果你们愿意帮助我,我欠你们一千瓶啤酒

编辑:你们对像我这样的新手这么好,真的很温暖我的心:)谢谢

最佳答案

您的问题是 freq 每次通过您的 for 循环都被重新分配。相反,使它成为相应 n 值的 list:

freq = [(k[n] * samplerate) / N for n in range(0, N)]

或者,给定k[n] == n,简单地

freq = [(n * samplerate) / N for n in range(0, N)]

请注意,Python 中的 range 不包括上限。

关于python - ELI5 : How do I make these FFT-related lists act properly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20646828/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com