DSPRelated.com
Forums

Bessel Filter (Digital)

Started by raj malhotra November 16, 2010
>could we be more clear as to why Bessel seems okay for analog and not >with digital? > >i have never implemented a Bessel filter in either domain, i don't >remember even doing it in school. i do remember seeing it and the >design equations and such in sections besides that of other filters >(Butterworth, Tchebyshev 1 and 2, Elliptical, Gaussian). i remember >seeing plots of their group delay were pretty damn flat until well >higher than the cutoff frequency (which was pretty sloppy compared to >a Butterworth). the phase delay would also be pretty flat. > >now, i can imagine using the bilinear transform on it, the magnitude >response will simply be warped with that tan() function, and the phase >response will be similarly warped, but group delay or phase delay is >calculated with the warped phase response and the *unwarped* >frequency. if it was phase-linear in the analog domain, i wouldn't >expect it to be in the digital domain, unless the cutoff frequency was >much smaller than Nyquist. > >is that the essential reason that the discrete-time Bessel is a >bitch? or is there something else i hadn't thought of? > >r b-j
I see it as a very good way to compromise between ringing and attenuation. For a 3rd order filter (fc=0.1), a Butterworth has about 10% overshoot, whereas a Bessel has <1%! The attenuation is sloppier, but still better than cascading three 1st order filter. Also, the feedforward coefficients are trivial (3rd order = [1 3 3 1]) so it really doesn't cost more than the cascade of 1st order filter. I guess one could design an FIR to meet all ringing and attenuation requirements, but it would cost a lot more computations. Bessel is a good filter to use if the application calls for it. Dave
>could we be more clear as to why Bessel seems okay for analog and not >with digital? > >i have never implemented a Bessel filter in either domain, i don't >remember even doing it in school. i do remember seeing it and the >design equations and such in sections besides that of other filters >(Butterworth, Tchebyshev 1 and 2, Elliptical, Gaussian). i remember >seeing plots of their group delay were pretty damn flat until well >higher than the cutoff frequency (which was pretty sloppy compared to >a Butterworth). the phase delay would also be pretty flat. > >now, i can imagine using the bilinear transform on it, the magnitude >response will simply be warped with that tan() function, and the phase >response will be similarly warped, but group delay or phase delay is >calculated with the warped phase response and the *unwarped* >frequency. if it was phase-linear in the analog domain, i wouldn't >expect it to be in the digital domain, unless the cutoff frequency was >much smaller than Nyquist. > >is that the essential reason that the discrete-time Bessel is a >bitch? or is there something else i hadn't thought of? > >r b-j
I see it as a very good way to compromise between ringing and attenuation. For a 3rd order filter (fc=0.1), a Butterworth has about 10% overshoot, whereas a Bessel has <1%! The attenuation is sloppier, but still better than cascading three 1st order filter. Also, the feedforward coefficients are trivial (3rd order = [1 3 3 1]) so it really doesn't cost more than the cascade of 1st order filter. I guess one could design an FIR to meet all ringing and attenuation requirements, but it would cost a lot more computations. Bessel is a good filter to use if the application calls for it. Dave

gretzteam wrote:


> > I see it as a very good way to compromise between ringing and attenuation. > > For a 3rd order filter (fc=0.1), a Butterworth has about 10% overshoot, > whereas a Bessel has <1%! The attenuation is sloppier, but still better > than cascading three 1st order filter.
Everybody complains about "ringing" and overshoot, but nobody could explain why it is bad.
> Also, the feedforward coefficients are trivial (3rd order = [1 3 3 1]) so > it really doesn't cost more than the cascade of 1st order filter.
Bessel is the pole only filter. Hence the numerator == 1. That [1 3 3 1] (tripple sinc) is the artifact of BLT. Using BLT for converting Bessel from S domain to Z domain is *wrong* idea (except for marginally low Fc/Fs), as BLT warping destroys linear phase property.
> I guess one could design an FIR to meet all ringing and attenuation > requirements, but it would cost a lot more computations. Bessel is a good > filter to use if the application calls for it.
Can you give an example of such application? I had 1 (one) case where digital Bessel filter was appropriate. That was for calculation of the long term moving average. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
>Everybody complains about "ringing" and overshoot, but nobody could >explain why it is bad. > >> Also, the feedforward coefficients are trivial (3rd order = [1 3 3 1])
so
>> it really doesn't cost more than the cascade of 1st order filter. > >Bessel is the pole only filter. Hence the numerator == 1. That [1 3 3 1] >(tripple sinc) is the artifact of BLT. Using BLT for converting Bessel >from S domain to Z domain is *wrong* idea (except for marginally low >Fc/Fs), as BLT warping destroys linear phase property. > >> I guess one could design an FIR to meet all ringing and attenuation >> requirements, but it would cost a lot more computations. Bessel is a
good
>> filter to use if the application calls for it. > >Can you give an example of such application? >I had 1 (one) case where digital Bessel filter was appropriate. That was >for calculation of the long term moving average.
ECG.
On Nov 17, 10:53=A0am, Vladimir Vassilevsky <nos...@nowhere.com> wrote:
> gretzteam wrote: > > > I see it as a very good way to compromise between ringing and attenuati=
on.
> > > For a 3rd order filter (fc=3D0.1), a Butterworth has about 10% overshoo=
t,
> > whereas a Bessel has <1%! The attenuation is sloppier, but still better > > than cascading three 1st order filter. > > Everybody complains about "ringing" and overshoot, but nobody could > explain why it is bad.
i think the control systems people (like Tim) might be able to explain it. i can imagine a huge crane working in tight conditions and, with a 6% overshoot, crashes into a wall with people on the other side, bringing down the structure and killing dozens. i s'pose they would blame Obama and i would blame Bush. r b-j
On Wed, 17 Nov 2010 09:53:39 -0600, Vladimir Vassilevsky <nospam@nowhere.com>
wrote:

>Can you give an example of such application? >I had 1 (one) case where digital Bessel filter was appropriate. That was >for calculation of the long term moving average.
Just about anything mechanical. I had an old Ford Explorer with a cruise control that overshot and rang. Set to, for example, 65 MPH; after braking hit "Resume" and it would shoot to 67 MPH, then slow to 63, then continue ringing for three or four cycles until it settled. It was annoying. Even things as mundane as VU meters are subject to maximum tolerable overshoot. In the recent past I worked with shock and vibration data for machinery prognostics. They worked almost entirely in the time domain, and wanted to be certain that the position/velocity/acceleration vs. time data they had were truly indicative of the state of the machinery, and not due to the filtering that had been applied to the data. They commonly use Bessel filters. Greg

robert bristow-johnson wrote:

> On Nov 17, 10:53 am, Vladimir Vassilevsky <nos...@nowhere.com> wrote: >>gretzteam wrote:
>>>For a 3rd order filter (fc=0.1), a Butterworth has about 10% overshoot, >>>whereas a Bessel has <1%! The attenuation is sloppier, but still better >>>than cascading three 1st order filter. >> >>Everybody complains about "ringing" and overshoot, but nobody could >>explain why it is bad. > > i think the control systems people (like Tim) might be able to explain > it.
How this is relevant to Bessel/Butterwoth/etc?
> i can imagine a huge crane working in tight conditions and, with a 6% > overshoot, crashes into a wall with people on the other side, bringing > down the structure and killing dozens.
Yesterday a moron fired his gun when I was downrange. That was an overshoot. No kidding.
> i s'pose they would blame > Obama and i would blame Bush.
Most would blame on Microsoft or McDonalds. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
On 11/17/2010 08:32 AM, robert bristow-johnson wrote:
> On Nov 17, 10:53 am, Vladimir Vassilevsky<nos...@nowhere.com> wrote: >> gretzteam wrote: >> >>> I see it as a very good way to compromise between ringing and attenuation. >> >>> For a 3rd order filter (fc=0.1), a Butterworth has about 10% overshoot, >>> whereas a Bessel has<1%! The attenuation is sloppier, but still better >>> than cascading three 1st order filter. >> >> Everybody complains about "ringing" and overshoot, but nobody could >> explain why it is bad. > > i think the control systems people (like Tim) might be able to explain > it. > > i can imagine a huge crane working in tight conditions and, with a 6% > overshoot, crashes into a wall with people on the other side, bringing > down the structure and killing dozens.
You hit the nail on the head. But if you're designing a control loop your job is to make the whole thing not ring, and having non-ringing filters inside of it is not a sufficient condition for that in any way shape or form. (Note that with some systems you're willing to put up with some overshoot, and even some ringing, if it means that the settling time is as short as possible. It all depends on what the system needs to accomplish). -- 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
On Nov 17, 11:48=A0am, Vladimir Vassilevsky <nos...@nowhere.com> wrote:
> robert bristow-johnson wrote: > > On Nov 17, 10:53 am, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > >>gretzteam wrote: > >>>For a 3rd order filter (fc=3D0.1), a Butterworth has about 10% oversho=
ot,
> >>>whereas a Bessel has <1%! The attenuation is sloppier, but still bette=
r
> >>>than cascading three 1st order filter. > > >>Everybody complains about "ringing" and overshoot, but nobody could > >>explain why it is bad. > > > i think the control systems people (like Tim) might be able to explain > > it. > > How this is relevant to Bessel/Butterwoth/etc?
in designing your controller, you might want a net transfer function (of plant with feedback and controller) that isn't a Butterworth, but more like a Bessel.
> > > i can imagine a huge crane working in tight conditions and, with a 6% > > overshoot, crashes into a wall with people on the other side, bringing > > down the structure and killing dozens. > > Yesterday a moron fired his gun when I was downrange. That was an > overshoot. No kidding.
did he yell "Fore!" before shooting? r b-j

robert bristow-johnson wrote:
> On Nov 17, 11:48 am, Vladimir Vassilevsky <nos...@nowhere.com> wrote: >
>>>>Everybody complains about "ringing" and overshoot, but nobody could >>>>explain why it is bad. >> >>>i think the control systems people (like Tim) might be able to explain >>>it. >> >>How this is relevant to Bessel/Butterwoth/etc? > > in designing your controller, you might want a net transfer function > (of plant with feedback and controller) that isn't a Butterworth, but > more like a Bessel.
AFAIK they have many other criteria for loop optimization and they don't set matching Bessel response as the specific goal of the design. Also, as Tim said, having a Bessel filter inside a loop is not any condition for the whole loop to be ringing or not ringing. BTW, once I had to design a PLL which was supposed to have a net response of Bessel (altogether with digital filter upfront). I used a highly scientific method of "experimental mathematics". Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com