DSPRelated.com
Forums

Wanted: critically-damped high-pass IIR filter

Started by axlq July 31, 2004
A critically-damped 2-pole Butterworth lowpass filter is described
in http://people.umass.edu/exsci735/Robertson&Dowling.pdf

A method to convert this filter to a highpass filter is described in
http://www.health.uottawa.ca/biomech/lab/docs/ncb2_sm.pdf

Those two papers are short and simple enough for a non-DSP guy
like me to understand.  One thing the second paper doesn't say is
that one must invert the lowpass correction factor to preserve
the high-pass cutoff frequency when cascading multiple high-pass
filters.

A 2-pole Butterworth highpass filter constructed this way works
fine, critical damping and all.  The frequency response is as
one would expect, both for a single pass and also when cascading
multiple filters.

PROBLEM:  The critical damping feature is lost when one tries to
cascade multiple high-pass filters to achieve better rejection
of low frequencies.  The critically damped highpass filter rings
(albeit more slowly than the Butterworth), and seems to take forever
to settle down.

Does anyone have an algorithm for a high-pass critically-damped
filter that has better low frequency rejection than a 2-pole
Butterworth?  I don't care how uniformly the frequency response
falls off toward low frequencies (i.e. the dB/octave is free to
be different in any octave).  All I want is critical damping (no
overshoot or ringing), combined with about 20 dB attenuation at 1/2
the 3 dB cutoff frequency.

Unfortunately I'm not well versed enough in how to use z transforms
and such to figure it out for myself.  I appreciate any help or
pointers in the right direction.

-Alex
axlq wrote:

> A critically-damped 2-pole Butterworth lowpass filter is described > in http://people.umass.edu/exsci735/Robertson&Dowling.pdf > > A method to convert this filter to a highpass filter is described in > http://www.health.uottawa.ca/biomech/lab/docs/ncb2_sm.pdf > > Those two papers are short and simple enough for a non-DSP guy > like me to understand. One thing the second paper doesn't say is > that one must invert the lowpass correction factor to preserve > the high-pass cutoff frequency when cascading multiple high-pass > filters. > > A 2-pole Butterworth highpass filter constructed this way works > fine, critical damping and all. The frequency response is as > one would expect, both for a single pass and also when cascading > multiple filters. > > PROBLEM: The critical damping feature is lost when one tries to > cascade multiple high-pass filters to achieve better rejection > of low frequencies. The critically damped highpass filter rings > (albeit more slowly than the Butterworth), and seems to take forever > to settle down. > > Does anyone have an algorithm for a high-pass critically-damped > filter that has better low frequency rejection than a 2-pole > Butterworth? I don't care how uniformly the frequency response > falls off toward low frequencies (i.e. the dB/octave is free to > be different in any octave). All I want is critical damping (no > overshoot or ringing), combined with about 20 dB attenuation at 1/2 > the 3 dB cutoff frequency. > > Unfortunately I'm not well versed enough in how to use z transforms > and such to figure it out for myself. I appreciate any help or > pointers in the right direction. > > -Alex
Butterworth filters has a maximally flat frequency response; that's the defining property. They ring. The higher the order, the more severely they ring. Bessel filters approximate the linear frequency response of IIRs and have step responses with little or no ringing. Their digital versions lose a bit in translation, but are probably your best choice as a class. A symmetric FIR will produce better results. Step response is the integral of impulse response. Where the impulse response doesn't change sign, the step response is monotonic. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
In article <410beb7d$0$2827$61fed72c@news.rcn.com>,
Jerry Avins  <jya@ieee.org> wrote:
>axlq wrote: >> A critically-damped 2-pole Butterworth lowpass filter is described >> in http://people.umass.edu/exsci735/Robertson&Dowling.pdf >> >> A method to convert this filter to a highpass filter is described in >> http://www.health.uottawa.ca/biomech/lab/docs/ncb2_sm.pdf >>[snip] >> PROBLEM: The critical damping feature is lost when one tries to >> cascade multiple high-pass filters to achieve better rejection >> of low frequencies. The critically damped highpass filter rings >> (albeit more slowly than the Butterworth), and seems to take forever >> to settle down. > >Butterworth filters has a maximally flat frequency response; that's the >defining property. They ring. The higher the order, the more severely >they ring.
Yes, I know. Perhaps I shouldn't have used "Butterworth" and "critically-damped" together like that in my first sentence above. The articles I referenced were careful to call the critically-damped version a "digital filter" rather than a Butterworth, even though it's identical in form to a Butterworth, except for one term in K1, which is sqrt(2) for the Butterworth and 2 for the critically damped filter.
>Bessel filters approximate the linear frequency response of IIRs >and have step responses with little or no ringing. Their digital >versions lose a bit in translation, but are probably your best >choice as a class.
I was under the impression (perhaps mistaken) that Bessel filters were overdamped rather than critically damped. I'm new to this.
>A symmetric FIR will produce better results.
With no ringing in either the frequency-domain passband, or the time-domain step response? And fast to calculate? Again, I might be mistaken, but the problem I have seen with FIR filters is that for decent filter performance, the coefficients are non-trivial to calculate, especially if the filter is to be applied to an adaptive application, requiring the coefficients to be recalculated on every new data point. -A
axlq wrote:

   ...

> With no ringing in either the frequency-domain passband, or the > time-domain step response? And fast to calculate? Again, I might > be mistaken, but the problem I have seen with FIR filters is that > for decent filter performance, the coefficients are non-trivial to > calculate, especially if the filter is to be applied to an adaptive > application, requiring the coefficients to be recalculated on every > new data point.
As a general rule, filters that are well behaved in frequency are ugly in time, and vice versa. As an even more general rule, optimizing a device for one characteristic has to be done at the expense of others. FIR filters are trivial to calculate -- there are free and cheap programs to do it for you. Variable filters are another matter altogether, especially if you care about transients while they are being changed. Fading the output signal between two or more FIR filters that have the same delay is the most transient-free approach, but processing costs often put the method out of reach. Generalities will carry you only so far. When the crunch comes, you need to optimize with a specific problem and known resources in mind. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
"axlq" <axlq@spamcop.net> wrote in message
news:cegjpq$b03$1@blue.rahul.net...
> A critically-damped 2-pole Butterworth lowpass filter is described > in http://people.umass.edu/exsci735/Robertson&Dowling.pdf > > A method to convert this filter to a highpass filter is described in > http://www.health.uottawa.ca/biomech/lab/docs/ncb2_sm.pdf > > Those two papers are short and simple enough for a non-DSP guy > like me to understand. One thing the second paper doesn't say is > that one must invert the lowpass correction factor to preserve > the high-pass cutoff frequency when cascading multiple high-pass > filters. > > A 2-pole Butterworth highpass filter constructed this way works > fine, critical damping and all. The frequency response is as > one would expect, both for a single pass and also when cascading > multiple filters. > > PROBLEM: The critical damping feature is lost when one tries to > cascade multiple high-pass filters to achieve better rejection > of low frequencies. The critically damped highpass filter rings > (albeit more slowly than the Butterworth), and seems to take forever > to settle down. > > Does anyone have an algorithm for a high-pass critically-damped > filter that has better low frequency rejection than a 2-pole > Butterworth? I don't care how uniformly the frequency response > falls off toward low frequencies (i.e. the dB/octave is free to > be different in any octave). All I want is critical damping (no > overshoot or ringing), combined with about 20 dB attenuation at 1/2 > the 3 dB cutoff frequency. > > Unfortunately I'm not well versed enough in how to use z transforms > and such to figure it out for myself. I appreciate any help or > pointers in the right direction. > > -Alex
This should do. Some one else has asked this question before. I had it done already. ftp://ftp.deltacompsys.com/public/mcd/Butterworth%20Hi%20Pass.htm Peter Nachtwey Delta Computer Systems, Inc.
In article <PbydnSZJCbtTzJHcRVn-sQ@comcast.com>,
Peter Nachtwey <peter@deltacompsys.com> wrote:
>I wrote: >> Does anyone have an algorithm for a high-pass critically-damped >> filter that has better low frequency rejection than a 2-pole >> Butterworth? > >This should do. Some one else has asked this question before. I had it >done already. > >ftp://ftp.deltacompsys.com/public/mcd/Butterworth%20Hi%20Pass.htm
Thanks Peter, it's good to see a recipe available for those of us DSP laymen who need to make use of DSP tools. Unfortunately, that didn't quite address my problem. I had already implemented a 2-pole high-pass Butterworth and also a 2-pole high-pass critically damped filter, as I indicated in my original article. A Butterworth isn't critically damped. And the critically-damped one I made doesn't want to retain its critical-damping quality when cascading multiple filters. I need something that damps quickly and still attenuates low frequencies better than a 2-pole Butterworth. Jerry suggested looking at Bessel filters, but after researching all afternoon, (unbelievable how hard it is to find good information about this online!) I finally discovered from http://users.ece.gatech.edu/~mleach/ece4435/filtrpot.pdf that a Bessel "can only be realized as a low-pass filter. This is because a time delay cannot be realized with, for example, a high-pass filter." -Alex
In article <410c4e2b$0$2828$61fed72c@news.rcn.com>,
Jerry Avins  <jya@ieee.org> wrote:
>As a general rule, filters that are well behaved in frequency are ugly >in time, and vice versa. As an even more general rule, optimizing a >device for one characteristic has to be done at the expense of others.
Yes, that's why I specified earlier that I don't care much about how the frequency response looks, as long as it has better attenuation than a 2-pole Butterworth at low frequencies. The step response in the time domain matters more than how well-behaved the frequency respone looks. All I'm trying to do here is measure the unwanted "noise" at frequencies higher than a cutoff. If the S/N ratio is already fairly high, and the signal contains some transients elements (ramps and steps), the high-pass filter shouldn't spend a lot of time ringing after a transient occurs, basically indicating more noise than there really is. I managed to make a slightly better-damped high-pass filter by weighted-summing a 2-pole Butterworth to a cascade of three 2-pole critically-damped filters (which ring when cascading them). The idea was to make the ringing of each component cancel out. The frequency response falls off quickly to about 14 dB, stays there for half an octave, and then drops off at the rate of the Butterworth. The ringing of each filter don't quite cancel out, however, because the ringing wavelengths aren't quite the same. I'm not really satisfied with it, though, because it's not really much better than a single 2-pole critically damped high-pass.
>FIR filters are trivial to calculate -- there are free and cheap >programs to do it for you.
I found some, but none of them provide generalized formulas for filter coefficients for any arbitrary cutoff frequency, given a particular frequency response. They seem to arrive at the filter coefficients via a computationally expensive iterative technique; certainly not something I'd like to do if I have to vary the cutoff in real time.
>Variable filters are another matter altogether, especially if you >care about transients while they are being changed. Fading the >output signal between two or more FIR filters that have the same >delay is the most transient-free approach, but processing costs >often put the method out of reach.
I hadn't thought of that. Might be expensive in processing, but worth looking into.
>Generalities will carry you only so far. When the crunch comes, you >need to optimize with a specific problem and known resources in >mind.
Thanks for the advice. -Alex
axlq wrote:

> Jerry suggested looking at Bessel filters, but after researching all > afternoon, (unbelievable how hard it is to find good information > about this online!) I finally discovered from > http://users.ece.gatech.edu/~mleach/ece4435/filtrpot.pdf that a > Bessel "can only be realized as a low-pass filter. This is because > a time delay cannot be realized with, for example, a high-pass > filter."
Oops! I'm sorry for the lapse. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
In article <410d2a5c$0$2845$61fed72c@news.rcn.com>,
Jerry Avins  <jya@ieee.org> wrote:
>> Jerry suggested looking at Bessel filters, but after researching all >> afternoon, (unbelievable how hard it is to find good information >> about this online!) I finally discovered from >> http://users.ece.gatech.edu/~mleach/ece4435/filtrpot.pdf that a >> Bessel "can only be realized as a low-pass filter. This is because >> a time delay cannot be realized with, for example, a high-pass >> filter." > >Oops! I'm sorry for the lapse.
Maybe not a lapse... http://www.rane.com/note147.html shows a Bessel high-pass filter, but I have no idea how it was made. I found several references to highpass Bessels by googling for the string (with quotes) "high pass bessel" and also "highpass bessel" but so far I can't see how it's constructed. -Alex
"axlq" <axlq@spamcop.net> wrote in message
news:cejuqq$uia$1@blue.rahul.net...
> In article <410d2a5c$0$2845$61fed72c@news.rcn.com>, > Jerry Avins <jya@ieee.org> wrote: > >> Jerry suggested looking at Bessel filters, but after researching all > >> afternoon, (unbelievable how hard it is to find good information > >> about this online!) I finally discovered from > >> http://users.ece.gatech.edu/~mleach/ece4435/filtrpot.pdf that a > >> Bessel "can only be realized as a low-pass filter. This is because > >> a time delay cannot be realized with, for example, a high-pass > >> filter." > > > >Oops! I'm sorry for the lapse. > > Maybe not a lapse... http://www.rane.com/note147.html shows a Bessel > high-pass filter, but I have no idea how it was made. I found > several references to highpass Bessels by googling for the string > (with quotes) "high pass bessel" and also "highpass bessel" but so > far I can't see how it's constructed. > > -Alex
ftp://ftp.deltacompsys.com/public/mcd/Bessel%20High%20Pass.htm A high pass Bessel filter. It doesn't look much different from the Butterworth filter. Beware, the corner frequencies are really higher than the value used in the calculations. The filters aren't hard to make if you have Mathcad. Peter Nachtwey