sidLTIfreqIO¶
Python equivalent:
sid.lti_freq_io
Identify LTI state-space model from input-output data.
[A0, B0] = sidLTIfreqIO(Y, U, H)
[A0, B0] = sidLTIfreqIO(Y, U, H, 'Horizon', r)
[A0, B0] = sidLTIfreqIO(Y, U, H, 'MaxStabilize', s)
Estimates a constant (LTI) state-space realization from input-output data, given a known observation matrix H:
\(x(k+1)\) = A0 x(k) + B0 u(k) y(k) = H x(k)
Uses the Ho-Kalman realization algorithm applied to the frequency response estimated via sidFreqBT. The realization is transformed to the H-basis so that the observation equation y = H x holds exactly with the returned (A0, B0).
Inputs¶
| Name | Description |
|---|---|
Y |
Output data, (N+1 x py), (N+1 x py x L), or cell array {L x 1} where Y{l} is (N_l+1 x py). For cells, trajectories shorter than 2/3 of max horizon are discarded; the rest are trimmed to a common length for spectral estimation. |
U |
Input data, (N x q), (N x q x L), or cell array {L x 1} where U{l} is (N_l x q). Must match Y format. |
H |
Observation matrix, (py x n). |
Name-value options¶
| Name | Description |
|---|---|
'Horizon' |
Hankel matrix depth r. Default: min(floor(nf/3), 50) where nf is the number of frequency bins. |
'MaxStabilize' |
Maximum eigenvalue magnitude after stabilization. Unstable eigenvalues (|lambda| > threshold) are reflected inside the unit circle: lambda <- 1/conj(lambda), then clamped to this radius. Default: 0.999. |
Outputs¶
| Name | Description |
|---|---|
A0 |
(n x n) estimated LTI dynamics matrix. |
B0 |
(n x q) estimated LTI input matrix. |
Examples¶
Algorithm¶
- Estimate transfer function \(G(e^{jw})\) = H(zI-A)^{-1}B via sidFreqBT
- Compute Markov parameters g(k) = H A^{k-1} B via IFFT
- Build block Hankel matrices H_0 and H_1 (shifted)
- SVD of H_0, truncate to order n (Ho-Kalman realization)
- Transform realization to H-basis: find T s.t. C_r \(T^{-1}\) = H
- Stabilize eigenvalues if needed
References¶
Ho, B.L. and Kalman, R.E. "Effective construction of linear state-variable models from input/output functions." Regelungstechnik, 14(12):545-548, 1966.
Specification¶
SPEC.md section 8.12 -- Output-COSMIC (LTI initialization)
See also¶
sidFreqBT, sidModelOrder, sidLTVdiscIO, sidLTVStateEst
Changelog¶
- 2026-04-02: First version by Pedro Lourenco.