The first CIC Decimator output is always zero
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Lokesh
2024-6-26
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multirate Signal Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!