CIC filter wordlength and simulink simulation problem

10 views (last 30 days)
feyza
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 ?

Answers (1)

Seth Popinchalk
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.

Community Treasure Hunt

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

Start Hunting!