Take the 2-minute tour ×

I need to divide my transfer function into 2 transfer functions in such way that S2 = S1' Actually I have product of S2*S1

s = tf('s')
Suu = -1.6/((s-4)*(s+4))
Sux = -0.8/((s+4)*(s-4)*(s^2 + 0.1*s + 1))
Sxx = 0.3*(s - 4.163)*(s + 4.163)/((s+4)*(s-4)*(s^2 - 0.1*s + 1)*(s^2 + 0.1*s + 1))
Sxu = Sux'
SxdSdx = Sxx - (Sxu*Sux)/Suu

How to determine Sxd and Sdx if Sxd = Sdx' ? Anybody can help me?

share|improve this question

1 Answer 1

up vote 2 down vote accepted

What you are looking to do is called spectral factorization. A good survey paper on spectral factorization algorithms is A. H. Sayed and T. Kailath, "A survey of Spectral Factorization Methods", Numer. Linear Algebra Appl., vol. 8, pp. 467-496, 2001.

If your transfer function is expressible as a rational function (i.e., a ratio of polynomials in s) that you can factor then you can choose S1 to be the rational function whose zeros (roots of the numerator polynomial) and poles (roots of the denominator polynomial) are all in the left half-plane (i.e., have real parts less than zero). If there are real roots these must come in pairs and you can assign one member of each pair to S1. If you do this then S1*conj(S1) will be the original transfer function.

The numerical method by which you factor your transfer function depends on the nature of your transfer functions poles and zeros (how many are there, how close are they, etc.), how you know your transfer function (do you know it via its polynomial coefficients? do you know it via its value at selected points in s space?), how accurately you know it (how accurately do you the transfer function coefficients), and how accurate you want your factorization to be.

share|improve this answer

Your Answer


