Impulse response length

`len = impzlength(b,a)`

`len = impzlength(sos)`

`len = impzlength(d)`

`len = impzlength(hd)`

`len = impzlength(___,tol)`

returns
the impulse response length for the 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 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)]
```

.

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

= impzlength(`d`

)`d`

.
Use `designfilt`

to generate `d`

based
on frequency-response specifications.

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.

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.

`designfilt`

| `digitalFilter`

| `impz`

| `zp2sos`