DSPRelated.com
Forums

For CIC filter. Is Feedback or Feedforward integrator preferred ?

Started by VasantJoseph 4 months ago1 replylatest reply 4 months ago144 views

I have been designing a CIC filter in python. For reference I had taken the matlab cic function dsp.CICDecimator to check if the filter I am designing is functioning properly.

My doubt is according to the Matlab documentation, the delay was kept in the feedforward, while in all other resources and websites, the delay was kept in the feedback path. Which is preferred, any insight?
Which one to follow.

Initially we designed the filter with the delay in the feedback path, which was not matching with the Matlab output for certain stages and inputs. Now, when we changed the equation according to the Matlab documentation figure, we got the same output of the Python code for all stages, the same as that of the Matlab function output.

image_95281.png

Source: https://www.dsprelated.com/showarticle/1337.php
The figure in most resources is like this. With the integrator unit delay in the feedback path.

According to this the integrator equation will be:
I[n] = I[n-1] + x[n]


image 2_90404.png

Source: https://in.mathworks.com/help/dsp/ref/dsp.cicdecimator-system-object.html#d126e260232

The figure of the matlab CICDecimator function. Here the unit delay is in the feedforward path.

Hence, the equation is modified as:
I[n] = I[n-1] + x[n-1]


[ - ]
Reply by kazOctober 9, 2024

Each integrator will need one unit delay. It can be inserted either in its feedback loop or in its forward path. FPGAs prefer it in the forward path for timing closure. There would be some latency issues. Your model must take account of that.