nodepoly®Open Twinsys ↗
/
All articles
TWINSYS · CONDITION MONITORING

Bearing Fault Detection with FFT and STFT

12 min read

This article is available in English only.

The $260 Billion Maintenance Problem

Unplanned equipment downtime costs industrial companies an estimated $260 billion annually according to industry surveys. Bearing failures are responsible for approximately 40-50% of all motor failures. Yet rolling element bearing defects typically develop over weeks or months before catastrophic failure — more than enough time to intervene, if you're monitoring the right signals.

The key is frequency-domain analysis. Bearing defects create characteristic impact signatures at predictable frequencies. Twinsys's ChartPage — with FFT and STFT capabilities — is purpose-built for this kind of analysis.


Bearing Defect Frequencies

For a rolling element bearing, each fault mode creates impacts at a specific frequency determined by the bearing geometry:

BPFO (Ball Pass Frequency, Outer race):
BPFO = (Nb/2) · (1 - Bd·cos(α)/Pd) · Fr

BPFI (Ball Pass Frequency, Inner race):
BPFI = (Nb/2) · (1 + Bd·cos(α)/Pd) · Fr

BSF  (Ball Spin Frequency):
BSF  = (Pd/(2Bd)) · (1 - (Bd·cos(α)/Pd)²) · Fr

FTF  (Fundamental Train Frequency):
FTF  = (1/2) · (1 - Bd·cos(α)/Pd) · Fr

Nb   = number of balls
Bd   = ball diameter (m)
Pd   = pitch diameter (m)
α    = contact angle (°)
Fr   = shaft rotation frequency (Hz)

Example: 6205 bearing running at 1750 RPM (29.17 Hz), Nb=9, Bd=7.94mm, Pd=38.5mm, α=0°:

BPFO = (9/2) × (1 - 7.94/38.5) × 29.17 = 4.5 × 0.794 × 29.17 = 104 Hz
BPFI = (9/2) × (1 + 7.94/38.5) × 29.17 = 4.5 × 1.206 × 29.17 = 158 Hz
BSF  = (38.5/(2×7.94)) × (1 - (7.94/38.5)²) × 29.17 = 68 Hz

Generating the Synthetic Vibration Signal in Twinsys

A bearing defect signal is modeled as a carrier wave (structural resonance) modulated by impact pulses (bearing defect repetition):

a(t) = A_base · sin(2π·f_carrier·t) +
        A_defect · Σ[h(t - n/f_defect)] · sin(2π·f_carrier·t) +
        noise(t)

f_carrier ≈ 2-10 kHz (structural resonance)
f_defect  = BPFO, BPFI, or BSF (bearing defect frequency)
A_defect  increases as defect worsens (0.01 early → 1.0 near failure)

In Twinsys, build this as:

┌─────────────┐  carrier
│  Sine Wave  ├──────────────┬────────────────┐
│   3000 Hz   │              │                │
└─────────────┘              ▼                ▼
┌─────────────┐  A_def  ┌─────────┐      ┌─────────┐  a(t)  ┌───────┐
│    Pulse    ├────────►│ Math Op ├─────►│   Sum   ├───────►│ Scope │
│ T = 1/104 s │         │   (*)   │      │  + + +  │        └───────┘
└─────────────┘         └─────────┘      └────▲────┘
┌─────────────┐                               │
│   Random    ├───────────────────────────────┘
└─────────────┘  noise

The impulse train is a Pulse block — Period = 1/f_defect, PulseWidth about 5% and Amplitude = A_defect. A Math Op block set to * multiplies it with the carrier (the Sine Wave frequency is entered in Hz), and a Random block supplies the noise. Use a fixed time step of about 2·10⁻⁵ s — 50 kHz sampling — so the 3 kHz carrier is well resolved.


FFT Analysis in Twinsys ChartPage

After running the simulation and recording the vibration signal, open Twinsys ChartPage and apply FFT:

Healthy bearing (no defect):

Magnitude
1.0|                              *  (carrier at 3 kHz)
0.5|
0.1|
   |   (only the noise floor elsewhere)
0.0└──────────────────────────────────── Frequency (Hz)
    0        1000      2000      3000

Early outer race defect (A_defect = 0.05):

Magnitude (zoom around the carrier, not to scale)
1.0    |                    *        ← carrier, 3000 Hz
       |
0.0025 |    *       *               *       *    ← sidebands at 3000 ± n·104 Hz
0.0    └────┴───────┴───────┴───────┴───────┴──── Frequency (Hz)
          2792    2896    3000    3104    3208

The sidebands are small, because a short impact carries little energy, but their spacing — 104 Hz, the BPFO — is the diagnostic signature, and they grow as the defect grows. The BPFO line itself only appears after demodulation, in the envelope spectrum (below).


STFT: Tracking Fault Evolution Over Time

A single FFT gives a snapshot. But maintenance engineers need to track fault evolution over time. This is where STFT (Short-Time Fourier Transform) is invaluable.

Twinsys ChartPage's STFT displays frequency content as a function of time — a spectrogram. As you simulate increasing A_defect over time (ramp from 0.01 to 1.0), the STFT shows:

Frequency  Time →
|
3208|  ░░░░░░░▒▒▒▒▓▓▓██████  (carrier + 2×BPFO, growing)
3104|  ░░░░░░░▒▒▒▒▓▓▓██████  (carrier + BPFO, growing)
3000|  ████████████████████  (carrier, always present)
2896|  ░░░░░░░▒▒▒▒▓▓▓██████  (carrier − BPFO, growing)
2792|  ░░░░░░░▒▒▒▒▓▓▓██████  (carrier − 2×BPFO, growing)
    |  . . . . . . . . . . . . . . . . . . .
       ↑                         ↑
       Healthy                   Near failure

The STFT makes the fault progression visually obvious: early in the bearing life the sidebands barely rise above the noise; as the defect grows, they grow with it while the carrier stays constant.


Band-Pass Filter for Envelope Analysis

Band-pass filtering is the first step of envelope analysis — the gold standard for bearing diagnostics. In Twinsys, build the chain in the model and let ChartPage compute the spectrum:

  1. Band-pass the signal around the resonance frequency (e.g., 3 kHz) with a Digital Filter block set to BP
  2. Compute the signal envelope: rectify with an Abs / Nonlinear block, then low-pass filter
  3. Apply FFT to the envelope in ChartPage
  4. Look for BPFO, BPFI, BSF lines in the envelope spectrum

This technique is more sensitive than direct FFT because it removes the high-energy low-frequency content that can mask bearing defect signals.


Severity Classification

Using the simulation data, you can define alarm thresholds:

BPFO Peak AmplitudeConditionAction
< 0.01 gHealthyNone
0.01-0.05 gMinor defectIncrease monitoring
0.05-0.20 gModerate defectPlan maintenance
> 0.20 gSevere defectUrgent replacement

Conclusion

Bearing fault detection is one of the most impactful applications of frequency-domain analysis in industrial maintenance. The combination of Twinsys simulation (to understand what the signals should look like) and Twinsys ChartPage (to analyze real or simulated data) provides a complete toolchain.

The pattern is universal: simulate the fault signal, understand the expected frequency signatures, build your monitoring dashboard, then apply it to real sensor data. Digital twins turn reactive maintenance into predictive maintenance.

Try this: simulate two simultaneous defects (outer race AND inner race) and look at the FFT: two families of sidebands appear around the carrier, one spaced at BPFO and one at BPFI. Then apply envelope analysis — both frequencies show up directly as lines — and see which defect is easier to detect in the presence of noise.