stmcb() - Signal Processing
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(h,nb,na) finds
the coefficients b and a of
the system b(z)/a(z)
with approximate impulse response h, exactly nb zeros,
and exactly na poles.[b,a] = stmcb(y,x,nb,na) finds
the system coefficients b and a of
the system that, given x as input, has y as
output. x and y must be the
same length.[b,a] = stmcb(h,nb,na,niter) and[b,a] = stmcb(y,x,nb,na,niter) use niter iterations.
The default for niter is 5.[b,a] = stmcb(h,nb,na,niter,ai) and[b,a] = stmcb(y,x,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(h,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.H(z)=B(z)A(z)=b(1)+b(2)z−1+⋯+b(nb+1)z−nba(1)+a(2)z−1+⋯+a(na+1)z−na
Syntax
[b,a] = stmcb(h,nb,na)[b,a] = stmcb(y,x,nb,na)[b,a] = stmcb(h,nb,na,niter)[b,a] = stmcb(y,x,nb,na,niter)[b,a] = stmcb(h,nb,na,niter,ai)[b,a] = stmcb(y,x,nb,na,niter,ai)
Example
Input signal X and output signal Y must
have the same length.
Output / Return Value
Limitations
Alternatives / See Also
Reference