Note: This page has been translated by MathWorks. Click here to see

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

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

Halfband decimator

The `dsp.FIRHalfbandDecimator`

System
object™ performs an efficient polyphase decimation of the input signal by a
factor of two. You can use `dsp.FIRHalfbandDecimator`

to implement the
analysis portion of a two-band filter bank to filter a signal into lowpass and highpass
subbands. `dsp.FIRHalfbandDecimator`

uses an FIR equiripple design to
construct the halfband filters and a polyphase implementation to filter the
input.

To filter and downsample your data:

Create the

`dsp.FIRHalfbandDecimator`

object and set its properties.Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects? (MATLAB).

`firhalfbanddecim = dsp.FIRHalfbandDecimator`

`firhalfbanddecim = dsp.FIRHalfbandDecimator(Name,Value)`

returns a halfband decimator, `firhalfbanddecim`

= dsp.FIRHalfbandDecimator`firhalfbanddecim`

, with the
default settings. Under the default settings, the System
object filters and downsamples the input data with a halfband frequency
of `11025`

Hz, a transition width of `4.1`

kHz, and a stopband attenuation of `80`

dB.

returns a halfband decimator, with additional properties specified by one or
more `firhalfbanddecim`

= dsp.FIRHalfbandDecimator(`Name,Value`

)`Name,Value`

pair arguments.

```
firhalfbanddecim =
dsp.FIRHalfbandDecimator('Specification','Filter order and stopband
attenuation')
```

creates an FIR halfband decimator object with filter
order set to 52 and stopband attenuation set to 80 dB.**For versions earlier than R2016b, use the step
function to run the System object algorithm. The arguments to
step are the object you created, followed by
the arguments shown in this section.**

**For example, y = step(obj,x) and y = obj(x) perform equivalent operations.**

`ylow = firhalfbanddecim(x)`

`[ylow,yhigh] = firhalfbanddecim(x)`

`[`

computes the `ylow`

,`yhigh`

] = firhalfbanddecim(`x`

)`ylow`

and `yhigh`

, of the
analysis filter bank, `firhalfbanddecim`

for input
`x`

. A *Ki*-by-*N*
input matrix is treated as *N* independent channels. The
System
object generates two power-complementary output signals by adding and
subtracting the two polyphase branch outputs respectively.
`ylow`

and `yhigh`

are of the same
size (*Ko*-by-*N*) and data type.
*Ko* = *Ki*/2, where `2`

is the decimation factor.

To use an object function, specify the
System
object as the first input argument. For
example, to release system resources of a System
object named `obj`

, use
this syntax:

release(obj)

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

`dsp.Channelizer`

|`dsp.DyadicAnalysisFilterBank`

|`dsp.FIRHalfbandInterpolator`

|`dsp.IIRHalfbandDecimator`