仅具有幅度的逆傅里叶变换 - 我是否也需要相位?

时间:2015-11-03 09:38:39

标签: python audio machine-learning fft

我在随机wav文件上使用短时傅立叶变换,并对幅度谱进行了一些更改。到"听到"我做了什么,我试图通过使用逆STFT来反转过程。

在Python中,频谱看起来像这样。 Magnitude Spectrum in Python

然而,如果我试图将整个事物转换回wav并查看其频谱,它看起来像这样: Magnitude Spectrum after ISTFT

我只是使用逆FFT的幅度。我究竟做错了什么? 我还需要相位信号吗?即使我操纵了幅度,我也可以使用相同的相位信号吗?

# ....read wav-file, perform STFT on it and manipulate the magnitude spectrum
# Then (as follows) I'm trying to write it back
fs = 41000.0 # Frequency Spectrum

filteredwrite = istft(magnitude)

from scipy.io.wavfile import read, write
write('../data/mxx.wav', fs, filteredwrite.astype(x.dtype))

如果我做ifft(fft(F)),傅里叶函数可以正常工作 - 这里没有错。

1 个答案:

答案 0 :(得分:1)

需要相位来重建原始信号,因为分量频率的相对相位决定了这些波的叠加。