The first CIC Decimator output is always zero
5 views (last 30 days)
Show older comments
It seems that the first CIC Decimator output is always zero and I don't understand its behavior.
I generated the input data and construct signed 12-bit data.
len_data = 100;
in = randi([-2048 2047], len_data, 1);
a = fi(in,1,12,0)
Then I created CIC filter object with decimation factor of 20, number of stages of 4, and internal bit width of 30-bit, and output bit width of 30-bit.
cicDecimOut = dsp.CICDecimator(DecimationFactor=20,...
NumSections=4,...
FixedPointDataType="Specify word lengths",...
SectionWordLengths=30,...
OutputWordLength=30)
Then I checked the output of the CIC filter.
out = cicDecimOut(a)
My question is the first output of the CIC filter is always zero no matter the input is and I don't know why.
0 Comments
Answers (1)
Lokesh
on 26 Jun 2024
Hi Jay,
I believe that the behavior you are observing where the first output of the CIC decimator is zero is expected due to the nature of how CIC filters operate.
A CIC filter consists of multiple integrator stages followed by comb stages. The integrators accumulate the input signal, and the comb stages perform differencing operations on the accumulated values. So as per my understanding, since there is no previous sample for the first input, the output is zero.
See Also
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!