Filter design/implementation question

  • Follow


Hello,

I have to implement a fixed-point low-pass digital filter which meets these 
requirements:

Passband: 0-3700Hz
Max ripple in passband:  1.5dB
Stopband: 4000Hz and up
Attenuation in stopband: minimum 40dB
Sample frequency: 16000Hz

As far as I can see, 3 sections of second-order IIR filters (elliptic 
filters) would do the job at a
low cost:

Number of Multipliers            : 15
Number of Adders                 : 12
Number of States                    : 6
Multiplications per Input Sample : 15
Additions per Input Sample       : 12



Which design/implementation would you go for?


0
Reply Joe 6/1/2010 7:09:25 PM

"Joe" <Joe@NoSpammers.Com> wrote in message <4c055ae7$0$280$14726298@news.sunsite.dk>...
> Hello,
> 
> I have to implement a fixed-point low-pass digital filter which meets these 
> requirements:
> 
> Passband: 0-3700Hz
> Max ripple in passband:  1.5dB
> Stopband: 4000Hz and up
> Attenuation in stopband: minimum 40dB
> Sample frequency: 16000Hz
> 
> As far as I can see, 3 sections of second-order IIR filters (elliptic 
> filters) would do the job at a
> low cost:
> 
> Number of Multipliers            : 15
> Number of Adders                 : 12
> Number of States                    : 6
> Multiplications per Input Sample : 15
> Additions per Input Sample       : 12
> 
> 
> 
> Which design/implementation would you go for?
> 

Hi Joe, if you use fdesign.lowpass, you can investigate a number of designs easily and see which ones satisfy your goals.

% fdesign.lowpass has a number of specification strings 
h = fdesign.lowpass('Fp,Fst,Ap,Ast',3700,4000,1.5,40,16000);
% design all options, FIR and IIR available to you.
D = design(h,'all');

With the Filter Design Toolbox, I get 8 filters. Four IIR and four FIR designs. You can see the designs available with

designmethods(h)

From what I see the elliptic design has the lowest cost. Although the Chebyshev designs are also low cost.

 D1 = design(h,'ellip');
 cost(D1)
 
Number of Multipliers            : 12
Number of Adders                 : 12
Number of States                 : 6 
Multiplications per Input Sample : 12
Additions per Input Sample       : 12

but I have not looked at the filter with

D1.arithmetic = 'fixed';

and the appropriate fixed-point settings for you design. That should also be considered.

Hope that helps,
Wayne
0
Reply Wayne 6/5/2010 10:27:05 AM


1 Replies
243 Views

(page loaded in 0.034 seconds)

Similiar Articles:













7/20/2012 10:10:09 PM


Reply: