# CIC Decimation HDL Optimized

Decimate signal using cascaded integrator-comb filter optimized for HDL code generation

• Library:
• DSP System Toolbox HDL Support / Filtering

## Description

The CIC Decimation HDL Optimized block decimates an input signal by using a cascaded integrator-comb (CIC) decimation filter. CIC filters are a class of linear phase FIR filters consisting of a comb part and an integrator part. The CIC decimation filter structure consists of N sections of cascaded integrators, a rate change factor of R, and then N sections of cascaded comb filters. For more information about CIC Decimation filter, see Algorithms.

The block supports fixed decimation rate. It provides an architecture suitable for HDL code generation and hardware deployment.

The block supports real and complex fixed-point inputs.

## Ports

### Input

expand all

Input data, specified as a signed integer or `signed fixed point` with word length less than or equal to 32.

Data Types: `int8` | `int16` | `int32` | `fixed point`
Complex Number Support: Yes

Control signal that indicates if the input data is valid. When this value is `1` (true), the block captures the values from the data input port. When this value is `0` (false), the block ignores the values from the data input port.

Data Types: `Boolean`

Clears internal states, specified as a Boolean scalar.

When this value is `1` (true), the block stops the current calculation and clears all internal states. When the reset is `0` (false) and the input valid is `1` (true), the block starts a new filtering operation.

#### Dependencies

To enable this port, select the Enable reset input port parameter.

Data Types: `Boolean`

### Output

expand all

CIC decimated output data, returned as a scalar.

You can define the output data type of the block. See Output data type.

Data Types: `int8` | `int16` | `int32` | `fixed point`
Complex Number Support: Yes

Control signal that indicates if the data from the data output port is valid. When this value is `1` (true), the block returns valid data on the data output port. When this value is `0` (false), the values on the data output port are not valid.

Data Types: `Boolean`

## Parameters

expand all

Specify the decimation factor rate with which you want to decimate the input as an integer from 2 to 2048.

Specify the differential delay of the comb part of the block as an integer from 1 to 2.

Specify the number of sections in either the comb part or the integrator part of the block as an integer from 1 to 6.

Select the data type to represent the output data.

• `Full precision` — The output data type has a word length equal to the input word length plus gain bits.

• `Same word length as input` — The output data type has a word length equal to the input word length.

• `Minimum section word lengths` — The output data type uses the word length you specify in the Output word length parameter. When you select this parameter, the block applies the Pruning algorithm internally. For more information about Pruning algorithm, see [1].

Word length of the output, specified as an integer from 2 to 104.

### Note

When the Output word length value entered is in the range 2 to 6, there are chances of output data getting overflowed.

#### Dependencies

To enable this parameter, set the Output data type parameter to `Minimum section word lengths`.

Select this parameter to enable the reset input port.

expand all

## References

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

Watch now