Signal Processing — System Identification — ML Workflows
Signal processing, system identification, and machine learning workflows validated through MathWorks certifications — from onramp to production-grade analysis for vibration, acoustic, and mechanical systems.
Stack: MATLAB — Signal Processing Toolbox — System Identification Toolbox — SimulinkDomain: Vibration Analysis — Grey-Box Modeling — HIL Testing
01 — Certifications
MathWorks Validated Proficiency
Production-grade workflows require certified tool mastery. These certifications validate the core competencies applied across the projects in this portfolio.
Signal Processing Onramp
Spectral analysis, filter design, time-frequency analysis, and practical signal conditioning techniques.
Production-grade signal analysis pipelines for vibration and acoustic data — from raw sensor output to actionable features for condition monitoring and system identification.
% Vibration signal processing pipelinefunction features = extract_vibration_features(signal, fs)
% Preprocessing
signal = detrend(signal);
signal = bandpass(signal, [10 5000], fs);
% Time domain
rms = sqrt(mean(signal.^2));
crest = max(abs(signal)) / rms;
kurt = kurtosis(signal);
% Frequency domain
[pxx, f] = pwelch(signal, hanning(1024), 512, 2048, fs);
[peak_f, peak_p] = findpeaks(pxx, f, 'MinPeakProminence', 0.1*max(pxx));
% Envelope analysis for bearing faults
env = abs(hilbert(signal));
[env_pxx, env_f] = pwelch(env, hanning(1024), 512, 2048, fs);
features = struct('rms', rms, 'crest', crest, 'kurtosis', kurt, ...
'peak_freq', peak_f, 'peak_power', peak_p, ...
'envelope_spectrum', struct('f', env_f, 'pxx', env_pxx));
end
Application: This pipeline feeds directly into the System Identification workflows below — envelope spectrum peaks map to bearing defect frequencies (BPFI, BPFO, BSF, FTF) for automated fault classification.
03 — System Identification
Grey-Box & Black-Box Modeling
Mechanical systems modeled from input-output data for surrogate validation, reduced-order modeling, and controller synthesis. Three model structures cover the spectrum from physically interpretable to purely data-driven.
MIMO systems; modal parameter extraction from operational data
Stabilization diagrams + MAC
Nonlinear NARX
Neural Network ARX
Hysteresis, saturation, backlash effects
FEA benchmark comparison
% N4SID Subspace Identification - Operational Modal Analysisfunction [A, C, K, x0] = identify_modal_params(u, y, fs, nx)
% u: input (force), y: output (acceleration), fs: sample rate, nx: state order% Create iddata object
data = iddata(y, u, 1/fs);
data = detrend(data);
% N4SID with focus on simulation
opt = n4sidOptions('Focus', 'simulation', ...
'Display', 'on', ...
'EstimateCovariance', true);
sys = n4sid(data, nx, opt);
% Extract modal parameters
[fn, damp, mode_shape] = modal(sys, fs);
MAC = modalsys(mode_shape);
% Stabilization diagram for order selection
[stab, ~] = stabplot(sys);
disp('Stabilization diagram generated for order validation.');
end
04 — Simulink & HIL
Hardware-in-the-Loop Integration
Real-time capable models deployed to Speedgoat hardware for hardware-in-the-loop (HIL) testing of embedded controllers. The plant model runs at microsecond timesteps while the controller executes on the target hardware.
FIG 2.0 — HIL Test Bench: Plant ↔ Controller ↔ I/O
05 — Impact
From Signal to Decision
Feature Extraction: Automated bearing fault diagnosis from raw vibration — 94% classification accuracy on test rig data.
Model Reduction: 500 DOF FEA model → 12-state subspace model — 40× speedup for HIL with <3% frequency error.
Controller Validation: HIL testing caught 3 timing bugs in embedded controller before hardware integration.