sid — Open-Source System Identification¶
sid is a free, open-source toolbox for system identification —
covering both non-parametric frequency response estimation and
time-varying state-space identification. All implementations share a
single mathematical specification and cross-language reference test
vectors to ensure numerical consistency.
Get started¶
-
:material-language-python: Python
-
:simple-mathworks: MATLAB / Octave
Features¶
- Blackman-Tukey spectral analysis — frequency response and noise spectrum estimation with configurable window size.
- Frequency-dependent resolution — vary the smoothing bandwidth across the frequency axis.
- Empirical transfer function estimate — maximum resolution via FFT ratio, with optional smoothing.
- Time-varying frequency maps and spectrograms — sliding-window analysis for non-stationary signals.
- LTV state-space identification (COSMIC) — identify time-varying A(k), B(k) with O(N) complexity, automatic regularization, and Bayesian uncertainty.
- Partial-observation identification (Output-COSMIC) — identify dynamics from output-only measurements.
- Multi-trajectory support — ensemble averaging for frequency estimates; pooled least-squares for state-space.
- Asymptotic uncertainty estimates — confidence bands for all estimation functions.
- SISO, MIMO, and time-series modes — unified API across all estimation functions.
Two paths, one specification¶
sid provides a frequency-domain path (Blackman-Tukey, ETFE) and a
time-domain state-space path (COSMIC). The two are derived from a
single mathematical specification and validated against
shared test vectors so that both implementations agree to floating-point
tolerance.