From: Joe on
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?


From: Wayne King on
"Joe" <Joe(a)NoSpammers.Com> wrote in message <4c055ae7$0$280$14726298(a)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