Skip to content

NOTES

FDD — Frequency Domain Decomposition: SVD Separates Modes from Noise

Build cross-power spectral density (CPSD) matrices at each frequency bin, perform SVD. The first singular value (SV1) spectrum peaks at modal frequencies; the corresponding left singular vector gives the mode shape.

Intuition

Why SVD Can Separate Modes

At a natural frequency, the structure's response is dominated by that mode. The cross-spectral matrix is approximately rank 1:

\[ G(f) \approx \sigma_1 \cdot \mathbf{u}_1 \mathbf{u}_1^T \]
  • \(\sigma_1\) = first singular value → modal "energy" → SV1 spectrum
  • \(\mathbf{u}_1\) = first singular vector → mode shape

SVD automatically separates signal from noise into different subspaces. This is why FDD is much more noise-robust than PP.

FDD vs PP

PP FDD
Frequency source Averaged auto-PSD SV1 spectrum (SVD of CPSD)
Mode shapes sqrt(PSD[ch]) SVD left singular vector
Noise immunity Fair Strong
Close modes Can't separate Higher-order SVs help

Algorithm

1. Welch-averaged CPSD G[:,:,k]
   ├─ segment FFT → cross-spectra → average

2. For each frequency k:
   ├─ SVD(G[:,:,k]) → σ₁, u₁
   ├─ SV1[k] = σ₁
   └─ mode_shape[:, k] = u₁

3. Peak detection on SV1 spectrum

4. Extract shapes at peaks → normalize → dedup

When to Use FDD

  • More reliable frequencies/shapes than PP
  • Noisy data (SVD automatically denoises)
  • ≥ 30s data for good resolution

Design Deep Dive

1. CPSD Matrix vs Independent PSD

FDD uses the cross-power spectral density matrix, not auto-PSD. At modal frequencies, the CPSD matrix is approximately rank-1. SVD concentrates signal energy into the first singular value, spreading noise across higher orders—this is the mathematical foundation of FDD's noise immunity over PP.

2. Power Iteration SVD Choice

FDD only needs the dominant SV/vector. Power iteration costs O(k·n²) with k≈15 iterations → ~375 FLOP for a 5×5 CPSD matrix. Jacobi full SVD would cost O(n³) → ~500 FLOP. Power iteration is optimal when only the dominant SV is needed.

3. Why seg_len=1024 vs PP's n/3

PP needs more segments (≥3) for stable PSD estimation. FDD uses CPSD whose cross-segment variance is smaller, allowing fewer segments (~2) with longer seg_len for better frequency resolution (0.049 Hz vs 0.098 Hz).

4. Memory

CPSD buffer: 1024bins × n_ch². For 5ch: 100 KB (fits SRAM). For 10ch: 400 KB (use PSRAM).