| Signal Processing Toolbox | ![]() |
Compute a linear model using Steiglitz-McBride iteration.
Syntax
[b,a]=stmcb(x,nb,na) [b,a]=stmcb(x,u,nb,na) [b,a]=stmcb(x,nb,na,niter) [b,a]=stmcb(x,u,nb,na,niter) [b,a]=stmcb(x,nb,na,niter,ai) [b,a]=stmcb(x,u,nb,na,niter,ai)
Description
Steiglitz-McBride iteration is an algorithm for finding an IIR filter with a prescribed time domain impulse response. It has applications in both filter design and system identification (parametric modeling).
[b,a] finds the coefficients = stmcb(x,nb,na)
b and a of the system b(z)/a(z) with approximate impulse response x, exactly nb zeros, and exactly na poles.
[b,a] finds the system coefficients = stmcb(x,u,nb,na)
b and a of the system that, given u as input, has x as output. x and u must be the same length.
[b,a] and = stmcb(x,nb,na,niter)
[b,a] use = stmcb(x,u,nb,na,niter)
niter iterations. The default for niter is 5.
[b,a] and = stmcb(x,nb,na,niter,ai)
[b,a] use the vector = stmcb(x,u,nb,na,niter,ai)
ai as the initial estimate of the denominator coefficients. If ai is not specified, stmcb uses the output argument from [b,ai] = prony(x,0,na) as the vector ai.
stmcb returns the IIR filter coefficients in length nb+1 and na+1 row vectors b and a. The filter coefficients are ordered in descending powers of z.
Example
Approximate the impulse response of a Butterworth filter with a system of lower order.
[b,a]=butter(6,0.2); h=filter(b,a,[1 zeros(1,100)]); freqz(b,a,128) [bb,aa]=stmcb(h,4,4); freqz(bb,aa,128)
Algorithm
stmcb attempts to minimize the squared error between the impulse response x' of b(z)/a(z) and the input signal x.
stmcb iterates using two steps:
stmcb repeats this process niter times. No checking is done to see if the b and a coefficients have converged in fewer than niter iterations.
Diagnostics
If x and u have different lengths, stmcb gives the following error message.
X and U must have same length.
See Also
|
Compute the Levinson-Durbin recursion. |
|
Compute linear prediction filter coefficients. |
|
Compute an estimate of AR model parameters using the Yule-Walker method. |
|
Prony's method for time domain IIR filter design. |
References
[1] Steiglitz, K., and L.E. McBride, "A Technique for the Identification of Linear Systems," IEEE Trans. Automatic Control, Vol. AC-10 (1965), pp. 461-464.
[2] Ljung, L., System Identification: Theory for the User, Prentice-Hall, Englewood Cliffs, NJ, 1987, p. 297.
| ss2zp | strips | ![]() |