skdh.features.SpectralFlatness#
- class skdh.features.SpectralFlatness(padlevel=2, low_cutoff=0.0, high_cutoff=5.0)#
A measure of the “tonality” or resonant structure of a signal. Provides a quantification of how tone-like a signal is, as opposed to being noise-like. For this case, tonality is defined in a sense as the amount of peaks in the power spectrum, opposed to a flat signal representing white noise.
- Parameters:
- padlevelint, optional
Padding (factors of 2) to use in the FFT computation. Default is 2.
- low_cutofffloat, optional
Low value of the frequency range to look in. Default is 0.0 Hz
- high_cutofffloat, optional
High value of the frequency range to look in. Default is 5.0 Hz
- Attributes:
- high_cut
- low_cut
- pad
Methods
compute(signal[, fs, axis])Compute the spectral flatness
Notes
The padlevel parameter effects the number of points to be used in the FFT computation by factors of 2. The computation of number of points is per
\[nfft = 2^{ceil(log_2(N)) + padlevel}\]So padlevel=2 would mean that for a signal with length 150, the number of points used in the FFT would go from 256 to 1024.
- compute(signal, fs=1.0, *, axis=-1)#
Compute the spectral flatness
- Parameters:
- signalarray-like
Array-like containing values to compute the spectral flatness for.
- fsfloat, optional
Sampling frequency in Hz. If not provided, default is assumed to be 1Hz.
- axisint, optional
Axis along which the signal entropy will be computed. Ignored if signal is a pandas.DataFrame. Default is last (-1).
- Returns:
- spec_flatnumpy.ndarray
Computed spectral flatness.