Forums

Help on cascaded filter freq correction

Started by axlq August 11, 2004
I've figured out the cutoff frequency correction factor necessary
to force a 2-pole Bessel lowpass filter to exhibit 3 dB of power
attenuation at the cutoff frequency I specify, for a single pass of
the filter.  The problem is, if I stack up multiple passes, I can't
seem to get it right.

Here's what I've done so far.

Filter response function H = W^2 / (W^2 + 3W + 3)         [1]

This will have a 3 dB cutoff when H^2 = 1/2, or more simply H=p
where p=sqrt(1/2).  Solving for the angular cutoff frequency W, I
get:

W = [3 + sqrt(12/p - 3)] / (2/p - 2)                      [2]

Now, the corrected angular cutoff frequency to use in the filter is
Wc = tan(pi * r * Fc / Fs), where r is the correction factor I
want to determine, Fc is the 3 dB cutoff frequency in Hertz I want
and Fs is my sampling frequency.  If I set r to

r = arctan(W) / pi                                        [3]

this works well when I test it.  I get 3 dB attenuation at exactly
the cutoff frequency Fc that I want, for a single pass of the
filter.

The problem arises when I try to cascade the filters to get a
higher-order filter (I know this higher order filter won't be a
Bessel anymore, but that's not the point).  In this case, for n
cascades, the filter response function is:

H = [W^2 / (W^2 + 3W + 3)] ^ n

Right?  If so, then the 3 dB cutoff W is again equation [2] above,
but with p = sqrt(1/2) ^ (1/n).

The problem is, r in [3] doesn't give me a correction factor
that results in 3 dB of attenuation at my desired frequency Fc.
Empirically, if I divide r in [3] by sqrt(n), I get pretty darn
close to where I want, but it's not correct I have no mathematical
basis for doing it (the result is about 3.23 dB at Fc for n=3).

What am I failing to understand?

Thanks.  I'm trying to fill in my 2-pole filter reference table at
http://unicorn.us.com/alex/buttercrit.html -- I got the Butterworth
and Critical Damped filter corrections from the papers referenced at
the bottom of the page.  I'm trying to figure out the Bessel on my
own and I'm stumped.

-Alex
axlq wrote:

> I've figured out the cutoff frequency correction factor necessary > to force a 2-pole Bessel lowpass filter to exhibit 3 dB of power > attenuation at the cutoff frequency I specify, for a single pass of > the filter. The problem is, if I stack up multiple passes, I can't > seem to get it right.
...
> What am I failing to understand?
Each section has 3 dB attenuation at the design cut-off frequency. Cascade two such sections to get 6 dB, 3 sections to get 9 dB, etc. How many sections do you intend to cascade? If 2, design for 1.5 dB per section. If 3, 1.0. Jerry -- ... the worst possible design that just meets the specification - almost a definition of practical engineering. .. Chris Bore ������������������������������������������������������������������������
In article <411a2748$0$5900$61fed72c@news.rcn.com>,
Jerry Avins  <jya@ieee.org> wrote:
>axlq wrote: >> I've figured out the cutoff frequency correction factor necessary >> to force a 2-pole Bessel lowpass filter to exhibit 3 dB of power >> attenuation at the cutoff frequency I specify, for a single pass of >> the filter. The problem is, if I stack up multiple passes, I can't >> seem to get it right. > >> What am I failing to understand? > >Each section has 3 dB attenuation at the design cut-off frequency. >Cascade two such sections to get 6 dB, 3 sections to get 9 dB, etc. >How many sections do you intend to cascade? If 2, design for 1.5 dB per >section. If 3, 1.0.
That's what I did. The "p" variable in my original article, where p = 2^(-1/2n), means that attenuation is 20 log p at the cutoff. So when the number of cascades n=1, one gets 20 log 2^(-1/2) or -3 dB, which works as I expect. At n=2, one gets 10 log 2^(-1/4) or 1.5 dB, just like you say. However, the correction factor doesn't work right for n>=2. -Alex