A damaged rolling-element bearing does not produce a tone. It produces a train of short impacts that excites a structural resonance somewhere in the high-frequency range, and the impacts repeat at a rate determined by the bearing geometry and the shaft speed. Finding such a fault therefore means answering three questions in order: where is the impulsive energy, how do I demodulate it, and does the repetition rate match a known fault frequency.
This page covers the five analyses that answer these questions: Spectral Kurtosis (Antoni), Kurtogram, Bearing Fault Features, Harmonic-to-Noise Ratio and Onset Detection.
Spectral kurtosis locates the frequencies at which the signal is most impulsive. The Kurtogram extends this over several bandwidths at once and reports the single best demodulation band. Bearing Fault Features then demodulates the signal and checks the envelope spectrum against the four characteristic frequencies computed from the bearing geometry. HNR and Onset Detection support this chain by quantifying how tonal, respectively how event-like, the signal is.
The signal is transformed by a short-time Fourier transform and, for each frequency line separately, the fourth and second statistical moments of the magnitude are accumulated across frames. Their normalized ratio is the spectral kurtosis:
| SK value | Interpretation |
|---|---|
| ≈ −1 | Deterministic, stationary content — a pure tone or a steady harmonic. Its magnitude is the same in every frame, so there is no fluctuation at all. |
| ≈ 0 | Stationary Gaussian noise — the background of a healthy machine. |
| >> 0 | Impulsive, non-stationary content — the frequency band that carries the impact energy. This is the band to demodulate. |
The curve is reported over frequency, together with the maximum value and the frequency at which it occurs.
| Parameter | Default | Notes |
|---|---|---|
SkWindowSize | 256 | STFT window length in samples; short windows favour wide impulsive bands, long windows resolve narrow ones |
SkOverlap | 0.75 | Fractional overlap between STFT frames |
Window | Hanning | Applied before the FFT |
The choice of window length in the previous analysis is itself a decision: a fault whose resonance
occupies a wide band is best seen with a short window, a narrow one needs a long window. The
Kurtogram removes the guesswork by computing spectral kurtosis for a whole family of window lengths
2k, from KurtogramLevelMin to KurtogramLevelMax, and
displaying the result as a colormap of level against frequency.
The cell with the highest spectral kurtosis over the whole plane defines the band to demodulate. The analysis reports it explicitly as
Those three numbers are the direct input for a band-pass plus envelope analysis: set the band-pass around the reported centre frequency with the reported bandwidth, then look at the envelope spectrum for the bearing fault frequencies. The Bearing Fault Features analysis below performs the envelope step for you.
| Parameter | Default | Notes |
|---|---|---|
KurtogramLevelMin | 6 | Smallest window is 2k samples; values below 4 are raised to 4 |
KurtogramLevelMax | 11 | Largest window; automatically reduced if the recording is too short to give enough frames |
SkOverlap | 0.75 | Fractional overlap, shared with the spectral kurtosis analysis |
Window | Hanning | Applied before the FFT at every level |
The four characteristic frequencies are pure geometry. To compute them, the analysis needs the shaft speed and four numbers from the bearing data sheet:
| Parameter | Symbol | Default | Where to find it |
|---|---|---|---|
ShaftRpm | — | required | Shaft speed in rpm. If left at 0, the mean of the channel selected by RpmChannel is used instead; without either the analysis stops with a message. |
NRollers | n | 8 | Number of rolling elements — bearing data sheet |
RollerDiameterMm | d | 7.94 | Rolling element diameter in mm — bearing data sheet |
PitchDiameterMm | D | 39.04 | Pitch (cage) diameter in mm — bearing data sheet |
ContactAngleDeg | φ | 0 | Contact angle in degrees; 0 for a deep-groove ball bearing, non-zero for angular contact and tapered types |
With the shaft frequency fr = ShaftRpm / 60 in Hz and the abbreviation
γ = (d/D) · cosφ:
For every channel the analysis computes the Hilbert envelope, removes its mean, and transforms it into a linear magnitude spectrum with a Hanning window over the largest power-of-two length that fits the recording. The mean removal suppresses the large DC component of the envelope; the Hanning window keeps a strong fault line from leaking into the tolerance window of a neighbouring fault frequency.
For each of the four frequencies the harmonics 1…Harmonics are searched. Around each
harmonic a tolerance window of TolerancePercent of the harmonic frequency is opened (never
narrower than two spectral lines) and the largest magnitude inside it is taken as that harmonic's
amplitude. The analysis outputs the envelope spectrum as a curve plus one curve per fault type, with
the harmonic number on the horizontal axis; the single value of each fault curve is the root of the
sum of the squared harmonic amplitudes.
The decision which fault dominates is taken on the fundamental amplitudes only, not on
the harmonic sums. The reason is that harmonics of different fault types can fall very close
together — for small d/D the ratio BPFI/BPFO approaches 1.5, so the second BPFI
harmonic nearly coincides with the third BPFO harmonic and the tolerance windows would swallow each
other. The fundamentals carry no such ambiguity.
When the condition is met, the alarm names the dominant fault, its characteristic frequency and its fundamental amplitude; otherwise it reports that no dominant bearing signature was found.
| Parameter | Default | Notes |
|---|---|---|
ShaftRpm | required | Shaft speed in rpm; falls back to the mean of RpmChannel |
RpmChannel | −1 (none) | Channel used as the speed fallback; it is excluded from the analysis itself |
NRollers | 8 | Number of rolling elements |
RollerDiameterMm | 7.94 | Rolling element diameter |
PitchDiameterMm | 39.04 | Pitch diameter |
ContactAngleDeg | 0 | Contact angle in degrees |
Harmonics | 3 | Number of harmonics extracted per fault frequency |
TolerancePercent | 2 % | Half width of the search window around each harmonic |
DominanceRatio | 3 | Factor by which the leading fundamental must exceed the runner-up to raise an alarm |
HNR expresses how much of the energy in a window is periodic and how much is noise. The window is
mean-free, its normalized autocorrelation is evaluated over the lag range that corresponds to the
allowed fundamental frequencies, and the largest value r₀ is converted to a level:
If the harmonic power is Ph and the noise power Pn, then
r₀ ≈ Ph/(Ph+Pn), so HNR is essentially the
signal-to-noise ratio of the periodic part in decibels. A clean tone gives a large positive value; a
noise-only signal gives a large negative one. The result is limited to the range
−60…+60 dB so that near-perfect periodicity does not produce infinities.
Short overlap segments at large lags are compensated so that long periods are not systematically
underestimated.
| Parameter | Default | Notes |
|---|---|---|
F0Min | 60 Hz | Lowest fundamental considered — sets the largest lag |
F0Max | 1000 Hz | Highest fundamental considered — sets the smallest lag |
IntegrationTimeMs | 100 ms (vs. Time) / 170 ms (vs. RPM) | Window length |
IntegrationHopMs | — (window length) | vs. Time only; without it the windows do not overlap |
RpmStep, SlopeMode, RpmChannel | 50 rpm, AutoDetect, auto | vs. RPM only |
Onsets are found from the half-wave rectified spectral flux, the classical novelty function: only increases of a spectral line from one frame to the next contribute, so a decaying sound does not generate a spurious event.
The first frame has no predecessor and is reported as 0.
A frame is accepted as an onset when all three conditions hold:
mean + OnsetThresholdK · std,
computed over the whole novelty curve;OnsetMinSeparationFrames frames away from the previous accepted onset.
If a larger peak appears inside that guard interval, it replaces the previous one instead of adding
a second event.The output is the novelty curve, whose single value is the number of detected onsets, plus an alarm listing the time of every onset.
| Parameter | Default | Notes |
|---|---|---|
OnsetFFTSize | 1024 | STFT block length; smaller values give finer time resolution |
Overlap | 0.5 | A value ≥ 1 is interpreted as a percentage |
Window | Hanning | Applied before the FFT |
OnsetThresholdK | 2 | Threshold in standard deviations above the mean novelty; raise it to detect fewer, stronger events |
OnsetMinSeparationFrames | 3 | Minimum distance between two onsets, in frames |
© 2026 Deepsona. All Rights Reserved.