A CIC (Cascaded Integrator-Comb) filter is a computationally efficient multirate filter structure built entirely from adders, subtractors, and delay elements, requiring no multipliers. It implements a linear-phase sinc^N frequency response and is most commonly used for large-ratio sample-rate conversion (decimation or interpolation) in digital signal processing pipelines found in embedded and FPGA-based systems.
In practice
CIC filters appear most often at the front end of decimation chains, where a high-rate 1-bit or low-bit-width data stream (such as the output of a delta-sigma ADC) must be reduced to a lower sample rate before further processing. Because the filter requires no multipliers, it maps directly onto simple hardware: N integrator stages running at the high rate, followed by a down-sampler, followed by N comb stages running at the low rate. This makes CIC filters a standard first stage in sigma-delta ADC receivers and software-defined radio (SDR) front ends. FPGAs and ASICs benefit the most, but fixed-point DSP cores on MCUs with hardware accumulators can also implement CIC efficiently.
The key design parameters are the decimation ratio R, the number of stages N, and the differential delay M (typically 1 or 2). Increasing N steepens the stopband rolloff but also widens the passband droop, which must be compensated downstream. Register word growth is a critical implementation detail: across N stages the internal word width grows by up to N·ceil(log2(R·M)) bits, so a 5-stage CIC decimating by 256 with M=1 on a 16-bit input requires up to 56-bit accumulators as a worst-case sizing estimate (exact requirements depend on M, signedness, and full-scale input assumptions). Most implementations use two's-complement wrap-around arithmetic, which preserves correctness for the standard CIC structure provided the accumulator registers are sized wide enough and the final output word is not truncated prematurely -- a non-obvious but important property covered in depth in "A Beginner's Guide To Cascaded Integrator-Comb (CIC) Filters."
A significant practical limitation is the CIC's inherent passband droop: the frequency response follows a sinc^N shape, which attenuates signal energy near the band edge even within the desired passband. A CIC-compensation filter (a short FIR or IIR stage that approximates an inverse-sinc response) is typically added after the CIC to flatten the passband before further narrowband filtering. "Improved Narrowband Lowpass IIR Filters" discusses compensation filter design approaches relevant to this stage.
For interpolation, the structure is reversed: comb stages run at the low input rate and integrators run at the high output rate, with an up-sampler in between. This symmetric dual structure is why CIC filters are equally useful in DAC interpolation chains, such as those in digital audio and direct digital synthesis systems. The blog post "Two Easy Ways To Test Multistage CIC Decimation Filters" offers practical verification strategies applicable both in simulation and on hardware.
Discussed on DSPRelated
Frequently asked
Why does a CIC filter need no multipliers?
The filter coefficients in a CIC are all unity -- the frequency-domain response emerges from the recursive accumulation (integration) and differencing (comb) of delayed samples, not from coefficient scaling. This means the entire structure reduces to additions, subtractions, and registers, making it very cheap in both FPGA fabric and hardware logic area.
How do I handle the bit-width growth inside a CIC filter?
Each integrator stage can grow the internal word width by up to log2(R*M) bits, where R is the
decimation ratio and M is the differential delay. For an N-stage filter, the maximum internal width is B_in + N*ceil(log2(R*M)) bits, where B_in is the input word width. In practice, implementations rely on two's-complement modular arithmetic: as long as the registers are wide enough to represent the true output without overflow, intermediate wrap-around in the integrators is mathematically harmless. Always size your accumulators correctly; truncating internal registers is a common source of subtle distortion.
What is passband droop, and how is it corrected?
A CIC filter's
magnitude response follows a sinc^N shape. Even within the intended passband, the response rolls off noticeably toward the band edge -- this is called droop. It is corrected with a CIC-compensation filter placed after the CIC stage. The compensator is usually a short linear-
phase FIR (sometimes called an inverse-sinc filter) or a carefully designed
IIR stage that applies the approximate inverse of the sinc^N curve across the passband. The compensation filter operates at the decimated (lower)
sample rate, so its computational cost is modest.
When should I choose a CIC filter over a standard FIR decimator?
CIC filters are preferred when the
decimation ratio is large (typically 8x or more) and hardware resources are constrained, because they require no multipliers and have very low logic cost. A standard
FIR decimator gives more control over the exact
frequency response and has no passband droop, but its cost scales with the number of taps and the decimation ratio. A common design pattern combines both: a CIC handles the bulk of the decimation cheaply, and a short FIR 'droop compensator' or halfband filter cleans up the passband afterward.
Can a CIC filter be used for interpolation as well as decimation?
Yes. For
interpolation, the comb sections are placed before the up-sampler and the integrators after it, the mirror image of the
decimation structure. The comb stages run at the lower input rate and the integrators run at the higher output rate. This configuration is common in
DAC signal chains, including digital audio and RF transmitters, where a
baseband signal at a modest
sample rate must be upsampled before being fed to a high-speed DAC.
Differentiators vs similar concepts
CIC filters can be viewed as a special case of
FIR filter in the sense that their
impulse response is finite, but they are more precisely described as a multirate recursive structure rather than a conventional designed FIR -- the two terms are not interchangeable in practice. A general FIR decimator uses explicit multiply-accumulate operations and gives full control over the
frequency response. A CIC filter achieves a specific sinc^N response using only additions and delays, at far lower hardware cost, but introduces passband droop and has limited stopband shape flexibility. CIC filters are also sometimes confused with moving-average (boxcar) filters: a single-stage CIC (N=1) is mathematically identical to a rectangular moving-average filter, but multi-stage CICs cascade N such sections, producing a sinc^N response with much greater stopband attenuation than a single moving average.