You are here : matlab → Signal Processing → stmcb
# stmcb() - Signal Processing

### Syntax

### Example

### Output / Return Value

### Limitations

### Alternatives / See Also

### Reference

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

[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)

Input signal X and output signal Y must have the same length.