2015-11-03 74 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