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.