# impzlength

Impulse response length

## Syntax

## Description

returns the impulse response length of the specified filter. Specify a causal
discrete-time filter with the rational system function specified by the
numerator, `len`

= impzlength(`b`

,`a`

)`b`

, and denominator, `a`

,
polynomials in *z*^{–1}. For stable IIR filters, `len`

is the
effective impulse response sequence length. Terms in the IIR filter’s impulse
response after the `len`

-th term are essentially zero.

returns
the effective impulse response length for the digital filter represented as
Cascaded Transfer Functions (CTF) with numerator coefficients `len`

= impzlength(`B,A`

,"ctf")`B`

and denominator
coefficients `A`

.* (since R2024b)*

returns
the impulse response length for the digital filter, `len`

= impzlength(`d`

)`d`

.
Use `designfilt`

to generate `d`

based
on frequency-response specifications.

returns the effective impulse response length for the IIR filter specified by
the second order sections matrix, `len`

= impzlength(`sos`

)`sos`

.
`sos`

is a *K*-by-6 matrix, where the
number of sections, *K*, must be greater than or equal to 2. If
the number of sections is less than 2, `impzlength`

considers
the input to be the numerator vector, `b`

. Each row of
`sos`

corresponds to the coefficients of a second order
(biquad) filter. The *i*th row of the `sos`

matrix corresponds to ```
[bi(1) bi(2) bi(3) ai(1) ai(2)
ai(3)]
```

.

specifies
a tolerance for estimating the effective length of an IIR filter’s
impulse response. By default, `len`

= impzlength(___,`tol`

)`tol`

is `5e-5`

.
Increasing the value of `tol`

estimates a shorter
effective length for an IIR filter’s impulse response. Decreasing
the value of `tol`

produces a longer effective
length for an IIR filter’s impulse response.

## Examples

## Input Arguments

## Output Arguments

## More About

## Tips

## Algorithms

To compute the impulse response for an FIR filter, `impzlength`

uses the length of `b`

. For IIR filters, the function first finds the
poles of the transfer function using `roots`

.

If the filter is unstable, the length extends to the point at which the term from the
largest pole reaches 10^{6} times its original value.

If the filter is stable, the length extends to the point at which the term from the
largest-amplitude pole is `tol`

times its original amplitude.

If the filter is oscillatory, with poles on the unit circle only, then
`impzlength`

computes five periods of the slowest
oscillation.

If the filter has both oscillatory and damped terms, the length extends to the greater of these values:

Five periods of the slowest oscillation.

The point at which the term due to the largest pole is

`tol`

times its original amplitude.

## References

[1] Lyons, Richard G.
*Understanding Digital Signal Processing*. Upper Saddle River,
NJ: Prentice Hall, 2004.

## Extended Capabilities

## Version History

**Introduced in R2013a**

## See Also

`ctffilt`

| `designfilt`

| `digitalFilter`

| `impz`

| `zp2sos`