Returning only the real part of the FFT
This commit is contained in:
parent
01006046e0
commit
fae45d8ca3
1 changed files with 8 additions and 6 deletions
|
@ -160,8 +160,8 @@ class Sound(object):
|
||||||
def fft(self, t_start=0., t_end=0., samplerate=_DEFAULT_SAMPLERATE,
|
def fft(self, t_start=0., t_end=0., samplerate=_DEFAULT_SAMPLERATE,
|
||||||
freq_range=None, freq_buckets=None):
|
freq_range=None, freq_buckets=None):
|
||||||
"""
|
"""
|
||||||
Get the Fourier transform associated to a time-bounded sample of this
|
Get the real part of the Fourier transform associated to a time-bounded
|
||||||
sound
|
sample of this sound
|
||||||
|
|
||||||
:param t_start: Start offset for the wave in seconds. Default: 0
|
:param t_start: Start offset for the wave in seconds. Default: 0
|
||||||
:type t_start: float
|
:type t_start: float
|
||||||
|
@ -189,7 +189,8 @@ class Sound(object):
|
||||||
freq_range = (0, int(samplerate/2))
|
freq_range = (0, int(samplerate/2))
|
||||||
|
|
||||||
wave = self.get_wave(t_start=t_start, t_end=t_end, samplerate=samplerate)
|
wave = self.get_wave(t_start=t_start, t_end=t_end, samplerate=samplerate)
|
||||||
fft = np.fft.fft(wave.reshape(len(wave)))[freq_range[0]:freq_range[1]]
|
fft = np.fft.fft(wave.reshape(len(wave)))
|
||||||
|
fft = fft.real[freq_range[0]:freq_range[1]]
|
||||||
|
|
||||||
if freq_buckets is not None:
|
if freq_buckets is not None:
|
||||||
fft = np.histogram(fft, bins=freq_buckets)
|
fft = np.histogram(fft, bins=freq_buckets)
|
||||||
|
@ -321,8 +322,8 @@ class Mix(object):
|
||||||
def fft(self, t_start=0., t_end=0., samplerate=Sound._DEFAULT_SAMPLERATE,
|
def fft(self, t_start=0., t_end=0., samplerate=Sound._DEFAULT_SAMPLERATE,
|
||||||
freq_range=None, freq_buckets=None):
|
freq_range=None, freq_buckets=None):
|
||||||
"""
|
"""
|
||||||
Get the Fourier transform associated to a time-bounded sample of this
|
Get the real part of the Fourier transform associated to a time-bounded
|
||||||
mix
|
sample of this mix
|
||||||
|
|
||||||
:param t_start: Start offset for the wave in seconds. Default: 0
|
:param t_start: Start offset for the wave in seconds. Default: 0
|
||||||
:type t_start: float
|
:type t_start: float
|
||||||
|
@ -350,7 +351,8 @@ class Mix(object):
|
||||||
freq_range = (0, int(samplerate/2))
|
freq_range = (0, int(samplerate/2))
|
||||||
|
|
||||||
wave = self.get_wave(t_start=t_start, t_end=t_end, samplerate=samplerate)
|
wave = self.get_wave(t_start=t_start, t_end=t_end, samplerate=samplerate)
|
||||||
fft = np.fft.fft(wave.reshape(len(wave)))[freq_range[0]:freq_range[1]]
|
fft = np.fft.fft(wave.reshape(len(wave)))
|
||||||
|
fft = fft.real[freq_range[0]:freq_range[1]]
|
||||||
|
|
||||||
if freq_buckets is not None:
|
if freq_buckets is not None:
|
||||||
fft = np.histogram(fft, bins=freq_buckets)
|
fft = np.histogram(fft, bins=freq_buckets)
|
||||||
|
|
Loading…
Reference in a new issue