System realization via Hankel singular value decomposition


[a,b,c,d,totbnd,hsv] = imp2ss(y)
[a,b,c,d,totbnd,hsv] = imp2ss(y,ts,nu,ny,tol)
[ss,totbnd,hsv] = imp2ss(imp)
[ss,totbnd,hsv] = imp2ss(imp,tol)


The function imp2ss produces an approximate state-space realization of a given impulse response


using the Hankel SVD method proposed by S. Kung [2]. A continuous-time realization is computed via the inverse Tustin transform (using bilin) if t is positive; otherwise a discrete-time realization is returned. In the SISO case the variable y is the impulse response vector; in the MIMO case y is an N+1-column matrix containing N + 1 time samples of the matrix-valued impulse response H0, ..., HN of an nu-input, ny-output system stored row-wise:

y = [H0(:)′;H2(:)′; H3(:)′; ... ;HN(:)′

The variable tol bounds the H norm of the error between the approximate realization (a, b, c, d) and an exact realization of y; the order, say n, of the realization (a, b, c, d) is determined by the infinity norm error bound specified by the input variable tol. The inputs ts, nu, ny, tol are optional; if not present they default to the values ts = 0, nu = 1, ny = (number of rows of y)/nu, tol = 0.01σ¯1. The output hsv=[σ¯1,σ¯2,...]returns the singular values (arranged in descending order of magnitude) of the Hankel matrix:


Denoting by GN a high-order exact realization of y, the low-order approximate model G enjoys the H norm bound




More About

expand all


The realization (a, b, c, d) is computed using the Hankel SVD procedure proposed by Kung [2] as a method for approximately implementing the classical Hankel factorization realization algorithm. Kung's SVD realization procedure was subsequently shown to be equivalent to doing balanced truncation (balmr) on an exact state-space realization of the finite impulse response {y(1),....y(N)} [3]. The infinity norm error bound for discrete balanced truncation was later derived by Al-Saggaf and Franklin [1]. The algorithm is as follows:

  1. Form the Hankel matrix Γ from the data y.

  2. Perform SVD on the Hankel matrix


    where Σ1 has dimension n × n and the entries of Σ2 are nearly zero. U1 and V1 have ny and nu columns, respectively.

  3. Partition the matrices U1 and V1 into three matrix blocks:


    where U11,U13Cny × n and V11,V13Cnu × n.

  4. A discrete state-space realization is computed as

    A=1 12U¯1 12B=1 12V*11C=U111 12D=H0


    U¯=[U11U12] [U12U13]

  5. If the sampling time t is greater than zero, then the realization is converted to continuous time via the inverse of the Tustin transform

    s=2tz1z+1 .

    Otherwise, this step is omitted and the discrete-time realization calculated in Step 4 is returned.


[1] Al-Saggaf, U.M., and G.F. Franklin, "An Error Bound for a Discrete Reduced Order Model of a Linear Multivariable System," IEEE Trans. on Autom. Contr., AC-32, 1987, p. 815-819.

[2] Kung, S.Y., "A New Identification and Model Reduction Algorithm via Singular Value Decompositions," Proc. Twelfth Asilomar Conf. on Circuits, Systems and Computers, November 6-8, 1978, p. 705-714.

[3] Silverman, L.M., and M. Bettayeb, "Optimal Approximation of Linear Systems," Proc. American Control Conf., San Francisco, CA, 1980.

Was this topic helpful?