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.

Decimate signal using cascaded integrator-comb (CIC) filter

The `dsp.CICDecimator`

System
object™ decimates an input signal using a cascaded integrator-comb (CIC) decimation
filter. The CIC decimation filter structure consists of *N* sections of
cascaded integrators, followed by a rate change by a factor of *R*, followed
by *N* sections of cascaded comb filters. For details, see Algorithms. The NumSections property specifies *N*, the number of sections in
the CIC filter. The DecimationFactor property
specifies *R*, the decimation factor. The `getFixedPointInfo`

function returns the word lengths and fraction lengths of the fixed-point sections and the
output for the `dsp.CICDecimator`

System
object. You can also generate HDL code for this System
object using the `generatehdl`

function.

This object requires a Fixed-Point Designer™ license.

To decimate a signal using a CIC filter:

Create the

`dsp.CICDecimator`

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

`cicDecim = dsp.CICDecimator`

`cicDecim = dsp.CICDecimator(R,M,N)`

`cicDecim = dsp.CICDecimator(Name,Value)`

creates a CIC
decimation System
object that applies a CIC decimation filter to the input signal.`cicDecim`

= dsp.CICDecimator

creates a CIC decimation object with the `cicDecim`

= dsp.CICDecimator(`R`

,`M`

,`N`

)`DecimationFactor`

property
set to `R`

, the `DifferentialDelay`

property set to
`M`

, and the `NumSections`

property set to
`N`

.

creates a CIC decimation object with each specified property set to the specified value.
Enclose each property name in single quotes. You can use this syntax with any previous
input argument combination.`cicDecim`

= dsp.CICDecimator(`Name,Value`

)

**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.**

`cicDecimOut = cicDecim(input)`

decimates the input using a CIC decimator.`cicDecimOut`

= cicDecim(`input`

)

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)

For a list of filter analysis methods this object supports, type
`dsp.CICDecimator.helpFilterAnalysis`

in the MATLAB^{®} command prompt. For the corresponding function reference pages, see Analysis Methods for Filter System Objects.

[1] Hogenauer, E.B. "An Economical
Class of Digital Filters for Decimation and Interpolation." *IEEE Transactions on
Acoustics, Speech and Signal Processing*. Volume 29, Number 2, 1981,
155–162.

[2] Meyer-Baese, U. *Digital Signal Processing with Field Programmable Gate
Arrays*. New York: Springer, 2001.

[3] Harris, Fredric J.
*Multirate Signal Processing for Communication Systems*. Indianapolis,
IN: Prentice Hall PTR, 2004.

`freqz`

|`fvtool`

|`gain`

|`generatehdl`

|`getFixedPointInfo`

|`impz`

|`info`

|`phasez`