Back to Projects
πŸ“‘

Fourier Neural Network

Spectral Learning for Predictive Maintenance on CWRU Bearing Dataset

Status

Research Published

Accuracy

~96% vs 92% CNN

Role

ML Researcher

Research Motivation

Why Fourier Neural Networks beat traditional approaches for bearing fault detection:

  • LSTM Limitation: Processes signals sequentially O(N), misses long-range periodic patterns
  • CNN Limitation: Fixed receptive field, struggles with frequency-domain features
  • FNN Advantage: Global receptive field via FFT in O(N log N) time. Naturally detects characteristic fault frequencies
  • Bearing Faults Create Peaks: Outer race faults produce energy spikes at ~107 Hz. FNN detects these directly in frequency domain

Key Insight: Bearing failure is a frequency phenomenon. By learning in frequency domain with learnable complex weights, the model directly captures fault signatures.

Architecture: Fourier Neural Operator

Input Signal x: (B, 1, L) ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Input Projectionβ”‚ Conv1d(1 β†’ width) β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ↓ β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β” Γ—depth β”‚ Fourier β”‚ β”‚ Block β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β” β”‚ SpectralConv1d β”‚ β”‚ FFT β”‚ β”‚ β†’ keep k_max modes β”‚ β”‚ R_Ο† β”‚ β”‚ β†’ learned complex weights β”‚ β”‚ IFFT β”‚ β”‚ β”‚ β””β”€β”€β”¬β”€β”€β”€β”˜ β”‚ β”‚ ↓ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β” β”‚ Local Conv1d(1Γ—1) β”‚ β”‚ W β”‚ β”‚ β”‚ β””β”€β”€β”¬β”€β”€β”€β”˜ β”‚ β”‚ + β”‚ β”‚ GELU β”‚ β”‚ BNorm β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ GlobalAvgPool β”‚ β”‚ FC(widthβ†’128) β”‚ β”‚ GELU + Dropout β”‚ β”‚ FC(128β†’4) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Output: (B, 4) logits

Key Equation per Fourier Block:

v_{t+1} (x) = Οƒ( WΒ·v_{t} (x) + F⁻¹(R_Ο† Β· F(v_{t})) (x) )

Where F = FFT, F⁻¹ = IFFT, R_Ο† = learnable complex weights (first k_max modes only)

Why This Works for Bearing Faults:

  • β€’ FFT extracts characteristic frequencies of each fault type
  • β€’ R_Ο† (complex weights) learns to amplify fault-specific frequencies
  • β€’ IFFT reconstructs time-domain signal with emphasis on fault features
  • β€’ Global view of spectrum = O(N log N) instead of O(NΒ²) attention

Experimental Results

ModelAccuracyF1 ScoreTrain TimeParameters
CNN~92%~0.9160s180K
LSTM~88%~0.87120s130K
FNN~96%~0.9545s85K

Key Finding: FNN achieves highest accuracy with fewest parameters and fastest training. Superior noise robustness compared to baselines.

FNN vs Baselines: Property Comparison

PropertyLSTMCNNFNN
Receptive FieldLocal (sequential)Local (kernel)Global (full signal)
ComplexityO(N)O(NΒ·k)O(N log N)
Periodic PatternsIndirectIndirectDirect (spectral)
Noise RobustnessLowMediumHigh

Dataset & Methodology

CWRU Bearing Dataset

  • β€’ 4 classes: Normal, Inner Race, Ball Fault, Outer Race
  • β€’ Sampling rate: 12,000 Hz
  • β€’ Drive-end accelerometer (DE_time)
  • β€’ Source: engineering.case.edu/bearingdatacenter

Signal Processing

  • β€’ Butterworth filtering (2-8 kHz)
  • β€’ Windowed segmentation (2048 samples)
  • β€’ FFT-based feature extraction
  • β€’ Spectral subtraction for noise robustness

Deliverables

7 Research Notebooks

01_data_inspection.ipynb β†’ 02_signal_visualization β†’ 03_fft_analysis β†’ 04_feature_engineering β†’ 05_baseline_models β†’ 06_fourier_neural_network β†’ 07_model_comparison

Streamlit Dashboard

Real-time signal upload, FFT visualization, live fault probability prediction. Engineers can upload `.mat` files and get predictions instantly.

CLI Inference

Command-line tool for batch predictions: `python app/inference.py --file data.mat --model fnn`

Tech Stack

ML & Research

  • β€’ PyTorch (model architecture)
  • β€’ NumPy/SciPy (signal processing)
  • β€’ Matplotlib/Seaborn (visualization)
  • β€’ Jupyter Notebooks

Deployment

  • β€’ Streamlit (interactive dashboard)
  • β€’ Python Click (CLI)
  • β€’ Pytest (unit tests)
  • β€’ Docker (containerization)

Links & Resources

Built with Next.js, TypeScript, and TailwindCSS.

Β© 2026 Shridipa Dhar