In digital signal processing, a cascaded integratorâÂÂcomb (CIC) is a computationally efficient class of low-pass finite impulse response (FIR) filter that chains N number of integrator and comb filter pairs (where N is the filter's order) to form a decimator or interpolator. In a decimating CIC, the input signal is first fed through N integrator stages, followed by a down-sampler, and then N comb stages. An interpolating CIC (e.g. Figure 1) has the reverse order of this architecture, but with the down-sampler replaced with a zero-stuffer (up-sampler).
CIC filters were invented by Eugene B. Hogenauer in 1979 (published in 1981), and are a class of FIR filters used in multi-rate digital signal processing.
Unlike most FIR filters, it has a down-sampler or up-sampler in the middle of the structure, which converts between the high sampling rate of used by the integrator stages and the low sampling rate of used by the comb stages.
At the high sampling rate of a CIC's transfer function in the z-domain is:
where:
An integratorâÂÂcomb filter is an efficient implementation of a simple 1-order moving-average FIR filter, with division by omitted. To see this, consider how a simple moving average filter can be implemented recursively by adding the newest sample to the previous result and subtracting the oldest sample
The second equality corresponds to a comb filter that gets integrated
Higher-order CIC structures are obtained by cascading identical simple moving average filters, then rearranging the sections to place all integrators first (decimator) or combs first (interpolator). Such rearrangement is possible because both the combs, the integrators, and the entire structure are linear time-invariant (LTI) systems.
In the interpolating CIC, its upsampler (which normally precedes an interpolation filter) is passed through the comb sections using a Noble identity, reducing the number of delay elements needed by a factor of . Similarly, in the decimating CIC, its downsampler (which normally follows a decimation filter) is moved before the comb sections.
CIC filters have some appealing features:
In the z-domain, each integrator contributes one pole at DC () and one zero at the origin (). Each comb contributes poles at the origin and zeroes that are equally-spaced along the z-domain's unit circle. CIC filters are implemented with fixed-point arithmetic without any round-off error to ensure exact cancellation of each comb's zero at DC with each integrator's pole at DC and exact cancellation of one of each comb's pole at the origin with each integrator's zero at the origin, leaving only poles at the origin per integrator-comb pair. So with for example, the 1-order pole-zero plot (Figure 2) only has 7 poles in the origin and 7 zeros along the unit circle, not 8. N-order CIC filters will have N times as many poles and zeros in the same locations as the 1-order.
Evaluating at provides its frequency response :<blockquote></blockquote>where is frequency relative to the low sampling rate and has corresponding angular frequency Plotting the magnitude of this frequency response (Figure 3) shows it is a crude low-pass filter which looks like a series of successively smaller and smaller "lobes" with soft peaks separated by valleys which null each zero at multiples of . At large , the response approximates the following sinc-in-frequency frequency response over a low frequency range:<blockquote></blockquote>Typically the gain is normalized by dividing by , so the DC peak has unity gain. N-order CIC filters are called sinc filters and their frequency response corresponds to multiplying the 1-order's shape on itself N times, resulting in successively greater attenuation. The first sidelobe's peak is approximately .
Sinc filters are commonly used with delta-sigma modulation ADCs just prior to downsampling to the desired output data rate (ODR) of . A sinc filter's frequency response will lie under a envelope, so higher orders have steeper roll off for cutting out more high frequency noise, but will also have a lower -3 dB frequency. Another tradeoff is that a sinc filter's settling time will be , so higher order filters cost additional latency.
The CIC filter's possible range of responses is limited by this shape. Larger amounts of stopband rejection can be achieved by increasing the order, but that increases attenuation in the passband and requires increased bit width for the integrator and comb sections. For this reason, many real-world filtering requirements cannot be met by a CIC filter alone.
A short to moderate length FIR or infinite impulse response (IIR) filter can compensate for the falling slope of a CIC filter's shape. Multiple interpolation and decimation rates can reuse the same set of compensation FIR coefficients, since the shape of the CIC's main lobe changes very little when the decimation ratio is changed.