# Interpolating and Decimating CIC filter based on sinc function

How to realize a sinc function using CIC filter for decimation and interpolation ??? Can I combine interpolation and decimaton methods inorder to get the complete response of a sinc function???

• do you want the $\text{sinc}$ to be in frequency or time domain? Jan 25 '17 at 11:27
• The real question, and you should probably edit your question to include that, or ask a new one, is why you want that? Jan 25 '17 at 12:30

The frequency/z domain response of a $N$-Stage CIC filter is, invariably [1]:

\begin{align} H(z) &= \frac{(1-z^{-RM})^N}{(1-z^{-1})^N}\\ &= \left(\sum\limits_{k=0}^{RM-1}{z^{-k}}\right)^N \end{align}

with $R$ being the rate change, and $M$ being the delay length. You can assume $M=1$ (you don't get a special shape if you assume larger $M$, just sharper response).

For $N=1$, you get the "boring" observation that you've built a moving average filter (which, in fact, has sinc-shape in frequency domain). But that's really just due to the fact that that you really did just that – build a recursive MA.

The magnitude response is usually (as in [1]) represented as

$$\lvert H(f)\rvert = \left\lvert \frac{\sin(\pi M f)}{\pi M f} \right\rvert^N$$

which goes to say you only get the sinc shape for $N=1$. In other words, a moving average. Which really shouldn't surprise you – the moving average is the time-domain rectangle, and the Fourier transform of that is the sinc.

[1] CIC Filter Introduction, Matthew P. Donadio, July 2000. Available Online

• To clarify, the CIC with N=1 only approximates a Sinc, and only reasonably well for large M. For small M it is what I would call an "aliased Sinc". I mention this minor point not to detract from this good answer but in case anyone wants a precise Sinc function response at least over the limited frequency range applied. That said I believe the final magnitude response is incorrect for general M where M is any positive integer. @MarcusMüller would you agree? Apr 25 '17 at 21:42