pub fn convolve_fir(signal: &[f32], h: &[f32]) -> Vec<f32>
Direct linear (FIR) convolution: y[i] = Σ_j signal[j]·h[i-j].
y[i] = Σ_j signal[j]·h[i-j]
Output length is signal.len() + h.len() - 1. Either operand empty → empty.
signal.len() + h.len() - 1