The first CIC Decimator output is always zero
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Lokesh
el 26 de Jun. de 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.
Ver también
Categorías
Más información sobre Multirate Signal Processing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!