General Principles
Before we dive into the individual features, there are a few fundamental concepts that apply to all frequency-domain descriptors.
The Role of Windowing
The Fast Fourier Transform assumes that the signal segment it processes is periodic. In practice, this is almost never the case. When we take a finite excerpt from a longer signal and apply the FFT directly, we introduce artificial discontinuities at the edges. These manifest as spectral leakage — energy that should be concentrated at a single frequency spreads across neighbouring bins.
To mitigate this, we multiply the signal segment by a window function before applying the FFT. The choice of window — Hann, Hamming, Blackman, Blackman–Harris, or others — involves a trade-off between frequency resolution and sidelobe suppression. Because all frequency-domain features are derived from the spectrum, they are all affected by the choice of window. Comparing features computed with different windows is rarely meaningful unless the window is taken into account.
For a detailed discussion of window functions, their properties, and how to choose the right one for your application, see the dedicated article: Window Functions in Digital Signal Processing.
From Spectrum to Features
The FFT gives us a complex-valued spectrum:
where N is the window length and k corresponds to frequency fk = k · Fs / N (with Fs being the sampling rate). For real-valued signals, only the first N/2 + 1 bins are needed, as the rest are redundant due to conjugate symmetry.
From this spectrum we typically compute two derived quantities:
- Magnitude spectrum: |X(k)| — used for amplitude-related features.
- Power spectrum: P(k) = |X(k)|² — used for energy-related features.
Most spectral features are computed directly from P(k) or |X(k)|. The distinction is important because some features operate on amplitude, while others are defined in terms of power.
Frame-Based Processing
Audio and vibration signals are rarely stationary — their properties change over time. To capture how the signal evolves, we process it in short overlapping frames. Typical frame lengths range from 10 to 50 milliseconds. For each frame, we extract a set of features, resulting in a sequence of feature vectors over time. This sequence can then be used to track changes, detect events, or recognize patterns. The overlap between consecutive frames (usually 50% to 75%) ensures that we do not miss transitions that fall near frame boundaries.
This frame-based approach is the foundation of nearly all practical feature extraction in DSP, and it is assumed throughout the rest of this article.