Why do the CIC Interpolation and CIC Decimation blocks from the Signal Processing Blockset introduce a large gain to their input signals?

2 views (last 30 days)
I am using the CIC Interpolation and CIC Decimation blocks in my model. The input signal to these blocks is of the order of hundreds. However, I observe that the output signal of these blocks is of the order of 1e30. There is a very large gain to my input signal.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
This large gain is inherent to CIC interpolators and CIC decimators in general. The gain from these Signal Processing Blockset blocks is expected to be very high. However, you can compensate for this gain in order to get an output signal that is on the same order as your input signal.
The gain, which is the DC value that can be seen in FVTool by clicking the "View Filter Response" button in the block mask, is essentially given by
(R*D)^M
Where
R is the decimation or interpolation factor,
D is the differential delay, and
M is the number of sections.
However, since all decimators/interpolators need to have a gain of R, in order to maintain the same input signal level the CIC interpolator gain needs to be compensated by
((R*D)^M)/R
For example, if you have a sinusoid of amplitude one as the input to a CIC Interpolator, then to have a sinusoid of amplitude one after interpolation, the output of the interpolator needs to be compensated by (8^32)/8 = 9.9035e+027. Similarly, if you now take the sinusoid of amplitude one and filter it with the CIC Decimator, the output needs to be compensated by 8^32 = 7.9228e+028 in order to get a sinusoid of amplitude one.
These values are computed by the Filter Design Toolbox if it is available. For the values used in this example, the Filter Design Toolbox code is
h1=mfilt.cicinterp(8,1,32);
gain(h1) % returns 9.9035e+027
h2=mfilt.cicdecim(8,1,32);
gain(h2) % returns 7.9228e+028

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!