4. Feature engineering for deployment response
Airbag deployment is a violent, millisecond-scale event. The restraint control module (RCM) must decide whether to fire a squib within roughly 10–30 ms of impact, and the decision is made from a small set of noisy sensor channels. Raw samples alone are almost useless to a classifier: a 1 kHz accelerometer stream produces 1,000 numbers per second per axis, most of which encode road noise, engine vibration, and sensor quantization. Feature engineering is the discipline of converting those raw streams into compact, physically meaningful descriptors that separate a deployable crash from a non-deployable event such as a pothole strike, a curb hit, or a hammer blow during service.
This chapter focuses on three signal families that dominate real RCM inputs: the longitudinal acceleration signal (the primary crash indicator), the occupant/seat pressure curve (used for occupant classification and suppression logic), and derived time-series characteristics that summarize shape, energy, and timing. The goal is not to enumerate every possible feature, but to build a working feature set that a model can consume and an engineer can defend in a design review.
Signal Reference Conventions
Before extracting anything, fix the coordinate and sign conventions, because every feature inherits them. In this course we adopt the SAE J211 / ISO 6487 convention for crash testing: the vehicle x-axis points forward, and deceleration during a frontal impact is recorded as negative acceleration in the raw channel, but is commonly reported as a positive "crash pulse" magnitude after sign inversion. We will state explicitly which convention each feature uses. Pressure channels are reported in kPa with positive values indicating compression of the seat cushion or bladder. Mixing conventions silently is one of the most common causes of a model that trains well and fails in the vehicle.
Time-Series Characteristics of the Crash Pulse
A frontal crash pulse is not a single spike. It has a recognizable envelope: a rapid rise to a first peak (the "crash pulse"), a plateau or secondary structure as the occupant loads the restraint, and a decay. Useful time-series features describe this envelope rather than individual samples.
- Time-to-peak (TTP): the time from impact onset to the maximum absolute acceleration. Soft, compliant structures produce long TTP; stiff barriers produce short TTP. Typical frontal pulses at 50 km/h against a rigid barrier show TTP in the 40–80 ms range, while a low-speed parking impact may never exceed the deployment threshold.
- Pulse duration above threshold: the cumulative time the signal stays above a reference level (e.g., 5 g). This distinguishes a sustained crash from a brief transient.
- Rise rate (jerk): the maximum slope of the acceleration envelope, in g/ms. High jerk is characteristic of hard, localized impacts.
- Energy proxies: the integral of the squared acceleration over a window, and the velocity change Δv obtained by integrating acceleration. Δv is the single most physically interpretable feature because deployment thresholds are often specified in terms of it.
- Zero-crossing rate and spectral centroid: cheap descriptors that separate oscillatory ringing (a struck component) from a smooth crash pulse.
These features are computed over sliding windows, not the whole record, because the RCM must decide early. A practical window is 0–30 ms with a 5 ms hop, giving the model a sequence of feature vectors that evolve as the event unfolds.
Pressure Curves as Occupant-State Features
Seat pressure curves answer a different question: who is sitting there, and are they in a position where deployment is safe? A bladder or resistive mat under the cushion produces a pressure trace that changes when an occupant shifts, when a child seat is installed, or when the seat is empty. Relevant features include:
- Static load distribution: mean and peak pressure per zone (front, rear, left, right). A rear-facing child seat concentrates load in the rear zone; an adult produces a broader distribution.
- Dynamic response to a known excitation: some systems apply a small pneumatic pulse and measure the pressure rise and decay time. A stiff child seat returns a fast, high-amplitude response; a soft adult torso damps it.
- Temporal stability: variance of pressure over a 2 s window. A restless occupant or a shifting load produces high variance and may trigger suppression logic.
Pressure features are slow compared with crash features, so they are typically computed once per ignition cycle or at a low rate, then fused with the fast acceleration features at decision time.
Acceleration Signal Conditioning
Raw accelerometer data must be conditioned before feature extraction. A representative pipeline for a 1 kHz channel is:
# Example: conditioning a single accelerometer channel (illustrative parameters)
fs = 1000.0 # Hz
fc_lp = 300.0 # anti-alias / noise low-pass, Hz
fc_hp = 0.5 # remove DC and thermal drift, Hz
window_ms = 30 # decision window
hop_ms = 5 # feature update rate
# 1. Remove DC offset estimated from the pre-trigger quiet period
x = raw - mean(raw[pre_trigger_slice])
# 2. Band-pass filter (Butterworth, order 4, zero-phase via filtfilt)
b, a = butter(4, [fc_hp/(fs/2), fc_lp/(fs/2)], btype='band')
x_f = filtfilt(b, a, x)
# 3. Integrate to velocity, then to displacement, with drift correction
v = cumtrapz(x_f, dx=1/fs)
v = v - linear_detrend(v) # remove integration drift
d = cumtrapz(v, dx=1/fs)
# 4. Sliding-window feature extraction
for start in range(0, len(x_f) - window_ms, hop_ms):
seg = x_f[start:start+window_ms]
feat = {
'peak_g': max(abs(seg)),
'ttp_ms': argmax(abs(seg)) / fs * 1000,
'rms_g': sqrt(mean(seg**2)),
'jerk_gpms': max(abs(diff(seg))) * fs / 1000,
'dv_mps': abs(v[start+window_ms] - v[start]),
'energy': sum(seg**2) / fs,
}
The band-pass corner frequencies are not arbitrary. The 300 Hz low-pass removes structural ringing that carries no crash information and would otherwise inflate jerk and energy features. The 0.5 Hz high-pass removes thermal drift that would corrupt the velocity integral. Both must be validated against the sensor's own bandwidth; a sensor rated to 400 Hz cannot support a 300 Hz corner with margin.
Feature Interaction and Selection
Individually useful features can be redundant or even harmful together. Peak acceleration and RMS are strongly correlated; TTP and jerk are inversely related for a fixed pulse shape. A practical selection procedure is:
- Compute the full candidate set on a labeled dataset of deploy and no-deploy events.
- Rank by mutual information with the label, not by correlation alone, because deployment is a nonlinear function of the pulse.
- Remove features with pairwise correlation above 0.9, keeping the one with higher mutual information.
- Validate the reduced set with a time-aware split: train on early windows, test on later windows, to avoid leaking future information.
The figure below summarizes how the three signal families flow into a shared feature vector and how the decision is gated.
Practical Validation Checklist
Before a feature set is accepted, run it against these checks. Each corresponds to a failure mode observed in real programs.
| Check | Method | Failure Symptom |
|---|---|---|
| Sign convention consistency | Compare feature sign against a known reference pulse | Model learns inverted polarity; deploy/no-deploy confusion |
| Integration drift | Integrate a stationary pre-trigger segment; expect Δv ≈ 0 | Δv drifts upward, false deployments at low speed |
| Filter corner vs sensor bandwidth | Check sensor datasheet against fc_lp | Attenuated peak, missed deployment |
| Window alignment | Verify trigger timestamp against first sample above 2 g | TTP shifted, jerk underestimated |
| Feature redundancy | Pairwise correlation matrix on training set | Overfitting, unstable coefficients |
| Time-aware split | Train on early windows, test on later | Optimistic validation, poor in-vehicle performance |
The feature vector produced here is the input to the models covered in later chapters. Its quality determines the ceiling of everything downstream: no classifier can recover information that the feature extraction stage discarded, and no amount of training data can compensate for a sign convention that was silently inverted.