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.
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%