Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Decimate by factor of two using polyphase IIR

`dsp.IIRHalfbandDecimator`

performs efficient
polyphase decimation of the input signal by a factor of two. To design
the halfband filter, you can specify the object to use an elliptic
design or a quasi-linear phase design. The object uses these design
methods to compute the filter coefficients. To filter the inputs,
the object uses a polyphase structure. The allpass filters in the
polyphase structure are in a minimum multiplier form.

Elliptic design introduces nonlinear phase and creates the filter using fewer coefficients than quasi linear design. Quasi-linear phase design overcomes phase nonlinearity at the cost of additional coefficients.

Alternatively, instead of designing the halfband filter using a design method, you can specify the filter coefficients directly. When you choose this option, the allpass filters in the two branches of the polyphase implementation can be in a minimum multiplier form or in a wave digital form.

You can also use the `dsp.IIRHalfbandDecimator`

object
to implement the analysis portion of a two-band filter bank to filter
a signal into lowpass and highpass subbands. This object supports ARM^{®}
Cortex^{®} code
generation.

To filter and downsample your data:

Define and set up your halfband decimator. See Construction.

Call

`step`

to filter the input signal according to the properties of`dsp.IIRHalfbandDecimator`

. The input signal can be a real- or complex-valued column vector or matrix. If the input signal is a matrix, each column of the matrix is treated as an independent channel. The number of rows in the input signal must be a multiple of 2.

Starting in R2016b, instead of using the `step`

method
to perform the operation defined by the System
object™, you can
call the object with arguments, as if it were a function. For example, ```
y
= step(obj,x)
```

and `y = obj(x)`

perform
equivalent operations.

`IIRHalfbandDecim = dsp.IIRHalfbandDecimator`

returns
a halfband decimator, `IIRHalfbandDecim`

, with
the default settings. Calling `step`

with the default
property settings filters and downsamples the input data with a halfband
frequency of `11025`

Hz, a transition width of `4100`

Hz,
and a stopband attenuation of `80`

dB.

sets
each property Name to the specified Value. Unspecified properties
have default values.`IIRHalfbandDecim`

= dsp.IIRHalfbandDecimator(`Name,Value`

)

reset | Reset internal states of IIR halfband decimator |

step | Filter input with IIR halfband decimator |

For additional methods, see Analysis Methods for Filter System Objects.

For a complete list of analysis methods supported for the `dsp.IIRHalfbandDecimator`

object,
enter `dsp.IIRHalfbandDecimator.helpFilterAnalysis`

at
the MATLAB^{®} command prompt.

Common to All System Objects | |
---|---|

`clone` | Create System object with same property values |

`getNumInputs` | Expected number of inputs to a System object |

`getNumOutputs` | Expected number of outputs of a System object |

`isLocked` | Check locked states of a System object (logical) |

`release` | Allow System object property value changes |

[1] Lang, M. *Allpass Filter Design and Applications.* IEEE
Transactions on Signal Processing. Vol. 46, No. 9, Sept 1998, pp.
2505–2514.

[2] Harris, F.J. *Multirate Signal Processing for
Communication Systems*. Prentice Hall. 2004, pp. 208–209.

[3] Regalia, Phillip A., Sanjit K. Mitra, and P. P. Vaidyanathan.
"The Digital All-Pass Filter: A Versatile Signal Processing Building
Block." *Proceedings of the IEEE.* Vol. 76, Number
1, 1988, pp. 19-37.

Was this topic helpful?