【发布时间】:2014-05-07 20:03:31
【问题描述】:
我目前正在使用 numpy.fft 库。我有 200 个带有单个音符的 .wav 文件,每个大约 4 秒长。我为每一个运行 numpy.fft ,但对于 4.5 秒或更长的样本 numpy.fft 冻结。我不明白为什么会这样?此外,如果我明确指定 fft 的长度,该函数可以正常工作,但它会检测到错误的频率(它会检测到频率偏移高一到两个半音)。
这是我的代码:
(framerate, sample) = wav.read(wav_file)
monoChannel = sample.mean(axis=1)
fft_length = int(duration * framerate) # duration is usually around 4sec long
FFT = numpy.fft(monoChannel, n=fft_length)
对于 fft_length 小于 216090 的样本,numpy.fft 可以正常工作,对于更长的 fft,算法会挂起,但在我在终端中按 ctrl+C 后它会继续。
我正在使用 python 2.7.3
我是 FFT 的新手,我真的很想了解这里发生了什么。
【问题讨论】:
标签: python audio numpy signal-processing fft