stft package¶
Module contents¶
-
stft.
spectrogram
(data, framelength=1024, hopsize=None, overlap=None, centered=True, window=None, halved=True, transform=None, padding=0, save_settings=True)¶ Calculate the spectrogram of a signal
Parameters: - data (array_like) – The signal to be transformed. May be a 1D vector for single channel or
a 2D matrix for multi channel data. In case of a mono signal, the data
is must be a 1D vector of length
samples
. In case of a multi channel signal, the data must be in the shape ofsamples x channels
. - framelength (int) – The signal frame length. Defaults to
1024
. - hopsize (int) – The signal frame hopsize. Defaults to
None
. Setting this value will overrideoverlap
. - overlap (int) – The signal frame overlap coefficient. Value
x
means1/x
overlap. Defaults to2
. - centered (boolean) – Pad input signal so that the first and last window are centered around the beginning of the signal. Defaults to true.
- window (callable, array_like) – Window to be used for deringing. Can be
False
to disable windowing. Defaults toscipy.signal.cosine
. - halved (boolean) – Switch for turning on signal truncation. For real signals, the fourier
transform of real signals returns a symmetrically mirrored spectrum.
This additional data is not needed and can be removed. Defaults to
True
. - transform (callable) – The transform to be used. Defaults to
scipy.fftpack.fft
. - padding (int) – Zero-pad signal with x times the number of samples.
- save_settings (boolean) – Save settings used here in attribute
out.stft_settings
so thatispectrogram()
can infer these settings without the developer having to pass them again.
Returns: data – The spectrogram (or tensor of spectograms) In case of a mono signal, the data is formatted as
bins x frames
. In case of a multi channel signal, the data is formatted asbins x frames x channels
.Return type: array_like
Notes
The data will be padded to be a multiple of the desired FFT length.
See also
stft.stft.process()
- The function used to transform the data
- data (array_like) – The signal to be transformed. May be a 1D vector for single channel or
a 2D matrix for multi channel data. In case of a mono signal, the data
is must be a 1D vector of length
-
stft.
ispectrogram
(data, framelength=None, hopsize=None, overlap=None, centered=None, window=None, halved=None, transform=None, padding=None, outlength=None)¶ Calculate the inverse spectrogram of a signal
Parameters: - data (array_like) – The spectrogram to be inverted. May be a 2D matrix for single channel
or a 3D tensor for multi channel data. In case of a mono signal, the
data must be in the shape of
bins x frames
. In case of a multi channel signal, the data must be in the shape ofbins x frames x channels
. - framelength (int) – The signal frame length. Defaults to infer from data.
- hopsize (int) – The signal frame hopsize. Defaults to infer from data. Setting this
value will override
overlap
. - overlap (int) – The signal frame overlap coefficient. Value
x
means1/x
overlap. Defaults to infer from data. - centered (boolean) – Pad input signal so that the first and last window are centered around the beginning of the signal. Defaults to to infer from data.
- window (callable, array_like) – Window to be used for deringing. Can be
False
to disable windowing. Defaults to to infer from data. - halved (boolean) – Switch to reconstruct the other halve of the spectrum if the forward transform has been truncated. Defaults to to infer from data.
- transform (callable) – The transform to be used. Defaults to infer from data.
- padding (int) – Zero-pad signal with x times the number of samples. Defaults to infer from data.
- outlength (int) – Crop output signal to length. Useful when input length of spectrogram did not fit into framelength and input data had to be padded. Not setting this value will disable cropping, the output data may be longer than expected.
Returns: data – The signal (or matrix of signals). In case of a mono output signal, the data is formatted as a 1D vector of length
samples
. In case of a multi channel output signal, the data is formatted assamples x channels
.Return type: array_like
Notes
By default
spectrogram()
saves its transformation parameters in the output array. This data is used to infer the transform parameters here. Any aspect of the settings can be overridden by passing the according parameter to this function.During transform the data will be padded to be a multiple of the desired FFT length. Hence, the result of the inverse transform might be longer than the input signal. However it is safe to remove the additional data, e.g. by using
output.resize(input.shape)
where
input
is the input ofstft.spectrogram()
andoutput
is the output ofstft.ispectrogram()
See also
stft.stft.iprocess()
- The function used to transform the data
- data (array_like) – The spectrogram to be inverted. May be a 2D matrix for single channel
or a 3D tensor for multi channel data. In case of a mono signal, the
data must be in the shape of
Module to transform signals
-
stft.stft.
cosine
(M)¶ Gernerate a halfcosine window of given length
Uses
scipy.signal.cosine
by default. However since this window function has only recently been merged into mainline SciPy, a fallback calculation is in place.Parameters: M (int) – Length of the window. Returns: data – The window function Return type: array_like
-
stft.stft.
iprocess
(data, window, halved, transform, padding)¶ Calculate the inverse short time fourier transform of a spectrum
Parameters: - data (array_like) – The spectrum to be calculated. Must be a 1D array.
- window (array_like) – Tapering window
- halved (boolean) – Switch for turning on signal truncation. For real output signals, the
inverse fourier transform consumes a symmetrically mirrored spectrum.
This additional data is not needed and can be removed. Setting this
value to
True
will automatically create a mirrored spectrum. - transform (callable) – The transform to be used.
- padding (int) – Signal before FFT transform was padded with x zeros.
Returns: data – The signal
Return type: array_like
-
stft.stft.
ispectrogram
(data, framelength=None, hopsize=None, overlap=None, centered=None, window=None, halved=None, transform=None, padding=None, outlength=None)¶ Calculate the inverse spectrogram of a signal
Parameters: - data (array_like) – The spectrogram to be inverted. May be a 2D matrix for single channel
or a 3D tensor for multi channel data. In case of a mono signal, the
data must be in the shape of
bins x frames
. In case of a multi channel signal, the data must be in the shape ofbins x frames x channels
. - framelength (int) – The signal frame length. Defaults to infer from data.
- hopsize (int) – The signal frame hopsize. Defaults to infer from data. Setting this
value will override
overlap
. - overlap (int) – The signal frame overlap coefficient. Value
x
means1/x
overlap. Defaults to infer from data. - centered (boolean) – Pad input signal so that the first and last window are centered around the beginning of the signal. Defaults to to infer from data.
- window (callable, array_like) – Window to be used for deringing. Can be
False
to disable windowing. Defaults to to infer from data. - halved (boolean) – Switch to reconstruct the other halve of the spectrum if the forward transform has been truncated. Defaults to to infer from data.
- transform (callable) – The transform to be used. Defaults to infer from data.
- padding (int) – Zero-pad signal with x times the number of samples. Defaults to infer from data.
- outlength (int) – Crop output signal to length. Useful when input length of spectrogram did not fit into framelength and input data had to be padded. Not setting this value will disable cropping, the output data may be longer than expected.
Returns: data – The signal (or matrix of signals). In case of a mono output signal, the data is formatted as a 1D vector of length
samples
. In case of a multi channel output signal, the data is formatted assamples x channels
.Return type: array_like
Notes
By default
spectrogram()
saves its transformation parameters in the output array. This data is used to infer the transform parameters here. Any aspect of the settings can be overridden by passing the according parameter to this function.During transform the data will be padded to be a multiple of the desired FFT length. Hence, the result of the inverse transform might be longer than the input signal. However it is safe to remove the additional data, e.g. by using
output.resize(input.shape)
where
input
is the input ofstft.spectrogram()
andoutput
is the output ofstft.ispectrogram()
See also
stft.stft.iprocess()
- The function used to transform the data
- data (array_like) – The spectrogram to be inverted. May be a 2D matrix for single channel
or a 3D tensor for multi channel data. In case of a mono signal, the
data must be in the shape of
-
stft.stft.
process
(data, window, halved, transform, padding)¶ Calculate a windowed transform of a signal
Parameters: - data (array_like) – The signal to be calculated. Must be a 1D array.
- window (array_like) – Tapering window
- halved (boolean) – Switch for turning on signal truncation. For real signals, the fourier transform of real signals returns a symmetrically mirrored spectrum. This additional data is not needed and can be removed.
- transform (callable) – The transform to be used.
- padding (int) – Zero-pad signal with x times the number of samples.
Returns: data – The spectrum
Return type: array_like
-
stft.stft.
spectrogram
(data, framelength=1024, hopsize=None, overlap=None, centered=True, window=None, halved=True, transform=None, padding=0, save_settings=True)¶ Calculate the spectrogram of a signal
Parameters: - data (array_like) – The signal to be transformed. May be a 1D vector for single channel or
a 2D matrix for multi channel data. In case of a mono signal, the data
is must be a 1D vector of length
samples
. In case of a multi channel signal, the data must be in the shape ofsamples x channels
. - framelength (int) – The signal frame length. Defaults to
1024
. - hopsize (int) – The signal frame hopsize. Defaults to
None
. Setting this value will overrideoverlap
. - overlap (int) – The signal frame overlap coefficient. Value
x
means1/x
overlap. Defaults to2
. - centered (boolean) – Pad input signal so that the first and last window are centered around the beginning of the signal. Defaults to true.
- window (callable, array_like) – Window to be used for deringing. Can be
False
to disable windowing. Defaults toscipy.signal.cosine
. - halved (boolean) – Switch for turning on signal truncation. For real signals, the fourier
transform of real signals returns a symmetrically mirrored spectrum.
This additional data is not needed and can be removed. Defaults to
True
. - transform (callable) – The transform to be used. Defaults to
scipy.fftpack.fft
. - padding (int) – Zero-pad signal with x times the number of samples.
- save_settings (boolean) – Save settings used here in attribute
out.stft_settings
so thatispectrogram()
can infer these settings without the developer having to pass them again.
Returns: data – The spectrogram (or tensor of spectograms) In case of a mono signal, the data is formatted as
bins x frames
. In case of a multi channel signal, the data is formatted asbins x frames x channels
.Return type: array_like
Notes
The data will be padded to be a multiple of the desired FFT length.
See also
stft.stft.process()
- The function used to transform the data
- data (array_like) – The signal to be transformed. May be a 1D vector for single channel or
a 2D matrix for multi channel data. In case of a mono signal, the data
is must be a 1D vector of length