| Signal Processing Toolbox | Search  Help Desk |
| stmcb | Examples See Also |
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] = stmcb(x,nb,na)
finds the coefficients b and a of the system b(z)/a(z) with approximate impulse response x, exactly nb zeros, and exactly na poles.
[b,a] = stmcb(x,u,nb,na)
finds the system coefficients 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] = stmcb(x,nb,na,niter)
and
[b,a] = stmcb(x,u,nb,na,niter)
use niter iterations. The default for niter is 5.
[b,a] = stmcb(x,nb,na,niter,ai)
and
[b,a] = stmcb(x,u,nb,na,niter,ai)
use the vector 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:
.x and u using 1/a(z).
.b and a using \.
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
Ifx and u have different lengths, stmcb gives the following error message:
X and U must have same length.
See Also
levinson |
Levinson-Durbin recursion. |
lpc |
Linear prediction coefficients. |
aryule |
Compute an estimate of AR model parameters using the Yule-Walker method. |
prony |
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). Pgs. 461-464. [2] Ljung, L. System Identification: Theory for the User. Englewood Cliffs, NJ: Prentice Hall, 1987. Pg. 297.