Communications Toolbox | ![]() ![]() |
Convert a Hankel matrix to a linear system model
Syntax
[num,den] = hank2sys(h,ini,tol) [num,den,sv] = hank2sys(h,ini,tol) [a,b,c,d] = hank2sys(h,ini,tol) [a,b,c,d,sv] = hank2sys(h,ini,tol)
Description
[num,den] = hank2sys(h,ini,tol)
converts a Hankel matrix h
to a linear system transfer function with numerator num
and denominator den
. The vectors num
and den
list the coefficients of their respective polynomials in ascending order of powers of z-1. The argument ini
is the system impulse at time zero. If tol
> 1, then tol
is the order of the conversion. If tol
< 1, then tol
is the tolerance in selecting the conversion order based on the singular values. If you omit tol
, then its default value is 0.01. This conversion uses the singular value decomposition method.
[num,den,sv] = hank2sys(h,ini,tol)
returns a vector sv
that lists the singular values of h
.
[a,b,c,d] = hank2sys(h,ini,tol)
converts a Hankel matrix h
to a corresponding linear system state-space model. a
, b
, c
, and d
are matrices. The input parameters are the same as in the first syntax above.
[a,b,c,d,sv] = hank2sys(h,ini,tol)
is the same as the syntax above, except that sv
is a vector that lists the singular values of h
.
Examples
h = hankel([1 0 1]); [num,den,sv] = hank2sys(h,0,.01) num = 0 1.0000 0.0000 1.0000 den = 1.0000 0.0000 0.0000 0.0000 sv = 1.6180 1.0000 0.6180
See Also
![]() | hammgen | hilbiir | ![]() |