This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Region-based modal decomposition


[H,H0] = modsep(G,N,REGIONFCN)


[H,H0] = modsep(G,N,REGIONFCN) decomposes the LTI model G into a sum of n simpler models Hj with their poles in disjoint regions Rj of the complex plane:


G can be any LTI model created with ss, tf, or zpk, and N is the number of regions used in the decomposition. modsep packs the submodels Hj into an LTI array H and returns the static gain H0 separately. Use H(:,:,j) to retrieve the submodel Hj(s).

To specify the regions of interest, use a function of the form


that assigns a region index IR between 1 and N to a given pole p. You can specify this function by its name or as a function handle, and use the syntax MODSEP(G,N,REGIONFCN,PARAM1,...) to pass extra input arguments:



To decompose G into G(z) = H0 + H1(z) + H2(z) where H1 and H2 have their poles inside and outside the unit disk respectively, use

[H,H0]  = modsep(G,2,@udsep)

where the function udsep is defined by

function r = udsep(p)
if abs(p)<1, r = 1;  % assign r=1 to poles inside unit disk
else         r = 2;  % assign r=2 to poles outside unit disk

To extract H1(z) and H2(z) from the LTI array H, use

H1 = H(:,:,1);  H2 = H(:,:,2);

See Also

Introduced before R2006a