2015-11-03 24 views
0

我对随机的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

现在我添加了初始阶段和信号看起来完全相同,并搞砸了...... – Jamona