Plotting the F.T. of sound_info (complex numbers)from pylab import *import matplotlib.pyplot as pltfrom scipy.fftpack import fftimport waveimport numpy as npfile = "toy-rattle-2.wav"spf = wave.open(file,'r')f = spf.getframerate()sound_info = spf.readframes(-1)sound_info = fromstring(sound_info, 'Int16')plt.plot( sound_info )plt.show()
Magnitude of F.T.ft = fft( sound_info )
Applying a Windowing Function ( Hanning )ft_mag = map( abs, ft )
window = np.hanning( len(sound_info ) )
Apply the windowing function before taking the FFT: (pythonically)
sound_window = []
for s, w in zip( sound_info, window ):
sound_window.append( s * w )
ft = fft( sound_window )
ft_mag = map( abs, ft )
It does not seem like much difference, other than slight variations noticeable on the edges. Scale might be affecting it.
ft_u = fft( sound_info )ft_w = fft( sound_window )ft_um = map( abs, ft_u ) ft_wm = map( abs, ft_w )
dif = []Below, I graphed the difference:
for w, u in zip( ft_wm, ft_um):
dif.append( abs( w - u ) )
Which doesn't look like any difference. This baffles me...
No comments:
Post a Comment