Forums

Multirate filter design

Started by Vladimir Vassilevsky July 8, 2006
Hello All,

The task is to design the multiple cascaded FIR filters to do the 
decimation. There are tough requirements about the resultant ripples in 
the passband; the stage-by-stage design seems to be very inefficient.

Can you suggest a filter design software which can optimize the overall 
response of the cascaded decimator? Also it would be nice if it can find 
the optimal decimation ratios for every stage.

Vladimir Vassilevsky

DSP and Mixed-Up Signal Design Consultant

http://www.abvolt.com
Vladimir Vassilevsky wrote:
> Also it would be nice if it can find > the optimal decimation ratios for every stage.
Vladimir, I'm not sure this has been "discovered" yet. I suspect the solution might be related to some concept in abstract algebra or finite fields, if the proper connection could be made. --Randy
Hi!

> The task is to design the multiple cascaded FIR filters to do the > decimation. There are tough requirements about the resultant ripples in > the passband; the stage-by-stage design seems to be very inefficient. > > Can you suggest a filter design software which can optimize the overall > response of the cascaded decimator? Also it would be nice if it can find > the optimal decimation ratios for every stage.
You can try out our rate converter. www.dewresearch.com It can convert any sampling frequency to any sampling frequency with SNR up to 170dB with linear phase, really short time delay and is only about 2x slower than a 2/3 or 3/2 multirate filter with coresponding antialiasing lowpass filter for rate conversion factors less than 2. For conversion factors of more than 2 I am afraid it cant be beaten with any design even if there exist a rational number for multirate filters. Regards! Atmapuri
Vladimir,
Is your goal to port this to hardware, or simply model something in C
or MATLAB?

Vladimir Vassilevsky wrote:
> Hello All, > > The task is to design the multiple cascaded FIR filters to do the > decimation. There are tough requirements about the resultant ripples in > the passband; the stage-by-stage design seems to be very inefficient. > > Can you suggest a filter design software which can optimize the overall > response of the cascaded decimator? Also it would be nice if it can find > the optimal decimation ratios for every stage. > > Vladimir Vassilevsky > > DSP and Mixed-Up Signal Design Consultant > > http://www.abvolt.com
On Sat, 08 Jul 2006 22:28:44 GMT, Vladimir Vassilevsky
<antispam_bogus@hotmail.com> wrote:

>Hello All, > >The task is to design the multiple cascaded FIR filters to do the >decimation. There are tough requirements about the resultant ripples in >the passband; the stage-by-stage design seems to be very inefficient. > >Can you suggest a filter design software which can optimize the overall >response of the cascaded decimator? Also it would be nice if it can find >the optimal decimation ratios for every stage. > >Vladimir Vassilevsky
Hello Vladimir, I remember reading (somewhere) that it is *VERY* difficult to find the optimum decimation factors for a multi-stage (cascaded) decimation filter if the number of stages is greater than two. However, thanks to the pioneers of DSP, there is an equation for finding the optimum decimation factors for a two-stage (cascaded) decimation filter. If your total desired dec factor is D, you can design two cascaded dec filters with the 1st filter having dec factor of D1 and the 2nd filter having dec factor of D2. Now, D = D1*D2. The equation for the optimum D1 (D1opt) comes from: Crochiere, R. and Rabiner, L. "Optimum FIR Digital Implementations for Decimation, Interpolation, and Narrow?band Filtering," IEEE Trans. on Acoust. Speech, and Signal Proc., Vol. ASSP?23, No. 5, October 1975. and is: 1 - sqrt[(D*F)/(2-F)] D1opt = ------------------------ 2 - F*(D + 1) where original desired transition region width (Hz) F = -----------------------------------------------. final desired stopband frequency (Hz) Your computed D1opt probably won't be an integer so you have to convert it to the closest integer that's an integer submultiple of D. (Whew, what a sentence!) For example, if D = 100 and you compute D1opt = 29.7, then the nearest integer submultiple of 100 (nearest to 29.7) is 25. So you assign D1 = 25. Once you know D1, D2 is (of course) D D2 = ----. D1 (I give an example of all of this in Chapter 10 of the 2nd edition of my DSP book.) Ya' know what you might do? You might partition your original (high-order) dec filter into the cascade of two separate dec filters, ... and then break each one of those filters into two dec filters. (My guess is that having four cascaded filters will NOT be much more computationally efficient than having two cascaded filters, but ya' never know.) Good Luck, [-Rick-] Your friendly neighborhood DSP junkie.
In article <wkWrg.62924$fb2.42168@newssvr27.news.prodigy.net>, 
antispam_bogus@hotmail.com says...
> > >Hello All, > >The task is to design the multiple cascaded FIR filters to do the >decimation. There are tough requirements about the resultant ripples in >the passband; the stage-by-stage design seems to be very inefficient. > >Can you suggest a filter design software which can optimize the overall >response of the cascaded decimator? Also it would be nice if it can find >the optimal decimation ratios for every stage. >
FilterShop will do this. http://linearx.com/products/software/FilterShop/Fshop_01.htm
Robert Orban wrote:
> In article <wkWrg.62924$fb2.42168@newssvr27.news.prodigy.net>, > antispam_bogus@hotmail.com says... >> >> Hello All, >> >> The task is to design the multiple cascaded FIR filters to do the >> decimation. There are tough requirements about the resultant ripples in >> the passband; the stage-by-stage design seems to be very inefficient. >> >> Can you suggest a filter design software which can optimize the overall >> response of the cascaded decimator? Also it would be nice if it can find >> the optimal decimation ratios for every stage. >> > > FilterShop will do this. > > http://linearx.com/products/software/FilterShop/Fshop_01.htm >
Filter Design Toolbox will do this too. http://www.mathworks.com/products/filterdesign/demos.html?file=/products/demos/shipping/filterdesign/multistagesrcdemo.html