Langford Analytic · Knowledge Base

MATLAB for Vibration Data Processing

How to process vibration and modal test data in MATLAB — FFT, PSD, frequency response, damping estimation and modal parameter extraction.

Article 06.02MATLAB5 min read
MATLABvibrationFFTPSDmodalsignal processing

Engineering Task

Processing vibration test data in MATLAB to extract frequency content, PSD, frequency response functions and modal parameters.

FFT and PSD

% FFT of time history:
N = length(t);
fs = 1 / (t(2) - t(1));
f = (0:N-1) * fs / N;
X = fft(x) / N;
magnitude = abs(X(1:N/2));
freq = f(1:N/2);

% PSD using Welch method:
[pxx, f_psd] = pwelch(x, hanning(Nfft), Noverlap, Nfft, fs);

Frequency Response Function

  • Use tfestimate for H1 estimator (output/input) — standard for modal testing
  • Use invfreqz for fitting transfer functions from FRF data
  • Check coherence (cohere) — low coherence indicates noise or nonlinearity
  • Plot Bode (bodeplot) for amplitude and phase versus frequency

Damping Estimation

  • Half-power bandwidth: measure peak width at -3 dB points
  • Logarithmic decrement: from free vibration decay
  • Curve fitting: fit a single-DOF transfer function to each modal peak
  • Verify damping values are physically reasonable — not default 2%

Related Knowledge