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 of samples x channels.
  • framelength (int) – The signal frame length. Defaults to 1024.
  • hopsize (int) – The signal frame hopsize. Defaults to None. Setting this value will override overlap.
  • overlap (int) – The signal frame overlap coefficient. Value x means 1/x overlap. Defaults to 2.
  • 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 to scipy.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 that ispectrogram() 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 as bins 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
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 of bins 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 means 1/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 as samples 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 of stft.spectrogram() and output is the output of stft.ispectrogram()

See also

stft.stft.iprocess()
The function used to transform the data

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 of bins 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 means 1/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 as samples 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 of stft.spectrogram() and output is the output of stft.ispectrogram()

See also

stft.stft.iprocess()
The function used to transform the data
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 of samples x channels.
  • framelength (int) – The signal frame length. Defaults to 1024.
  • hopsize (int) – The signal frame hopsize. Defaults to None. Setting this value will override overlap.
  • overlap (int) – The signal frame overlap coefficient. Value x means 1/x overlap. Defaults to 2.
  • 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 to scipy.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 that ispectrogram() 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 as bins 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