Is 'Bessel' digital lowpass filter standard?

Started by gretzteam August 24, 2010
Hi,
I'm trying to design a simple IIR lowpass filter with the following specs:

fs = 2.4kHz
fc = 150Hz
order = 3 or 4

The most important aspect is that the ringing (overshoot) shouldn't be
higher than about 3%. When using a 3rd order Butterworth, I get about 9%
overshoot, which is too much.

Someone hinted my that a Bessel filter would be better suited. This program
is a good start http://www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html
The results are impressive, about 1.2% overshoot, with still pretty good
attenuation.

I'm just wondering why I had such a hard time to find reference to a Bessel
filter in the digital domain. Matlab doesn't support it (I know I know,
this is not a reference by any mean), but even googling for it isn't nearly
as easy as for Butterworth for example. Is there a more stardard way to
design a low overshoot filter that I should be using?

Thanks!
Dave 

gretzteam wrote:

> I'm just wondering why I had such a hard time to find reference to a Bessel > filter in the digital domain. Matlab doesn't support it (I know I know, > this is not a reference by any mean), but even googling for it isn't nearly > as easy as for Butterworth for example.
Bessel filter is conveniently defined in the continuous time as the pole only filter with maximum flat group delay. There is no definition for such filter in the discrete time; you can only do approximation of some kind. Those approximations are neither elegant nor simple; refer to the filter design books like "Digital Filters: Basics and Design" by Schlichtharle.
> Is there a more stardard way to > design a low overshoot filter that I should be using?
1. What is wrong with an overshoot? 2. A real pole filter has no overshoot; just put enough of stages together. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
>1. What is wrong with an overshoot?
This was part of the design requirements. I believe the input to the system will contain squarish wave and an overshoot/ringing is not tolerable.
>2. A real pole filter has no overshoot; just put enough of stages
together. I'm not too sure what you mean here. Do you mean an all-pole filter?

gretzteam wrote:

>>2. A real pole filter has no overshoot; just put enough of stages > together. > > I'm not too sure what you mean here. Do you mean an all-pole filter?
Do you understand real and complex numbers ? VLV
On 24 Aug, 16:34, "gretzteam" <gretzteam@n_o_s_p_a_m.yahoo.com> wrote:
> >1. What is wrong with an overshoot? > > This was part of the design requirements. I believe the input to the system > will contain squarish wave and an overshoot/ringing is not tolerable.
In that case you might have a problem. Both overshoot and ringing are facts of life in DSP. You can not avoid them, only control them to within tolerable levels. If such effects are 'not tolerable' in the present spec, you might want to start circulating your resume. Rune
> > >gretzteam wrote: > >>>2. A real pole filter has no overshoot; just put enough of stages >> together. >> >> I'm not too sure what you mean here. Do you mean an all-pole filter? > >Do you understand real and complex numbers ? > >VLV > >
Ok you mean a filter whose poles are only real. English not being my first language, I got confused by your sentence. SOOORRRRYYYY!
>On 24 Aug, 16:34, "gretzteam" <gretzteam@n_o_s_p_a_m.yahoo.com> wrote: >> >1. What is wrong with an overshoot? >> >> This was part of the design requirements. I believe the input to the
system
>> will contain squarish wave and an overshoot/ringing is not tolerable. > >In that case you might have a problem. Both overshoot and ringing >are facts of life in DSP. You can not avoid them, only control them >to within tolerable levels. If such effects are 'not tolerable' in >the present spec, you might want to start circulating your resume. > >Rune >
Well I meant that the ~9% overshoot that I get with a Butterworth 3rd order lowpass is too much. I can live with <3%, which the Bessel approximation easily gives me. I was just wondering why this didn't seem like a standard method to design a filter. I only found a handful of references. Dave
On 24 Aug, 17:11, "gretzteam" <gretzteam@n_o_s_p_a_m.yahoo.com> wrote:
> >On 24 Aug, 16:34, "gretzteam" <gretzteam@n_o_s_p_a_m.yahoo.com> wrote: > >> >1. What is wrong with an overshoot? > > >> This was part of the design requirements. I believe the input to the > system > >> will contain squarish wave and an overshoot/ringing is not tolerable. > > >In that case you might have a problem. Both overshoot and ringing > >are facts of life in DSP. You can not avoid them, only control them > >to within tolerable levels. If such effects are 'not tolerable' in > >the present spec, you might want to start circulating your resume. > > >Rune > > Well I meant that the ~9% overshoot that I get with a Butterworth 3rd order > lowpass is too much. I can live with <3%, which the Bessel approximation > easily gives me. I was just wondering why this didn't seem like a standard > method to design a filter. I only found a handful of references.
Two reasons: 1) Overshoot is not a design criterion often used in DSP. Maybe it is in control theory, that traditionally deals with transients. In DSP the focus is on frequency domain, not time domain. 2) In the olden days of analog filters, the Bessel filter was a device useful to obtain approximately linear phase, but that had poor magnitude characteristics. In the realm of DSP one can obtain exact linear phase *and* total control of the magnitude by using FIRs. In the digital world the Bessel is more or less obsolete. Rune
On 08/24/2010 05:30 AM, gretzteam wrote:
> Hi, > I'm trying to design a simple IIR lowpass filter with the following specs: > > fs = 2.4kHz > fc = 150Hz > order = 3 or 4 > > The most important aspect is that the ringing (overshoot) shouldn't be > higher than about 3%. When using a 3rd order Butterworth, I get about 9% > overshoot, which is too much. > > Someone hinted my that a Bessel filter would be better suited. This program > is a good start http://www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html > The results are impressive, about 1.2% overshoot, with still pretty good > attenuation. > > I'm just wondering why I had such a hard time to find reference to a Bessel > filter in the digital domain. Matlab doesn't support it (I know I know, > this is not a reference by any mean), but even googling for it isn't nearly > as easy as for Butterworth for example. Is there a more stardard way to > design a low overshoot filter that I should be using?
Do you have the processor resources to just throw a FIR at it? -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
>Two reasons: > >1) Overshoot is not a design criterion often used in DSP. Maybe it > is in control theory, that traditionally deals with transients. > In DSP the focus is on frequency domain, not time domain. > >2) In the olden days of analog filters, the Bessel filter was a >device > useful to obtain approximately linear phase, but that had poor > magnitude characteristics. In the realm of DSP one can obtain > exact linear phase *and* total control of the magnitude by > using FIRs. In the digital world the Bessel is more or less > obsolete. > >Rune >
Interesting! However I would say that some applications also care a lot about the time domain and transients, even when done in DSP. For example, the filtering of ECG signals in medical applications are very sensitive to transients. I guess a FIR filter could do exactly what I want. However, the processing power required would be huge. The ratio of sampling rate to cutoff frequency is large in some mode of operation. This has to be small/low power. I'm not so sure that some Bessel-type approximation are really obsolete. So far it's giving me the best trade-off of processing power, overshoot and magnitude response. thanks! Dave