# CIC filter wordlength and simulink simulation problem

10 views (last 30 days)
feyza on 20 Jan 2011
I want to design a CIC filter which has a decimation ratio of 32, I need 10 bits at the output, and my input is 2 bits, I want 3 stages and differential delay is 1 so according to Hogenauer's paper wordlength is N*log(RM)+Bin -1=3*log(32)+2=16 bits, however I want 10 bits at the output, and again according to Hogenauer's paper the number of bits being discarded at each stage is 0,0,1,3,4,5. Anyway I want to simulate this CIC filter in Matlab Simulink, first I want to simulate the filter without discarding the bits, after I want to simulate the filter with discarding the bits, first I use
hm=mfilt.cicdecim(32,1,3,2,16);
realizemdl(hm);
and obtain simulink blocks, I use a discrete sine wave source from Signal Processing Blockset and try to simulate and see the output with a scope but the output is not the required output, after I use
hm=mfilt.cicdecim(32,1,3,2,10,[16 15 14 12 11 10]);
realizemdl(hm);
and the output gets worse. when I use
hm=mfilt.cicdecim(32,1,3);
realizemdl(hm);
in this case the input wordlength is 16, output wordlength is 31 and I can get reasonable results, my question is how can I obtain 10 bits output when I want to design a CIC filter with a decimation ratio of 32 and simulate it with simulink ?

Seth Popinchalk on 27 Jan 2011
The Signal Processing Blockset contains the CIC Filter block in the Signal Processing Blockset -> Filtering -> Filter Designs library. This block enables you to specify the Filter Internals, including the output word length.