DSPRelated.com
Forums

Is 'Bessel' digital lowpass filter standard?

Started by gretzteam August 24, 2010
An easy, closed-form technique is to start with the poles of an analog 
Bessel filter and apply the step-invariant transform to it to obtain poles 
and zeros in the digital domain.

In article <zPudnRC2LfTHJu7RnZ2dnUVZ_sadnZ2d@giganews.com>, 
gretzteam@n_o_s_p_a_m.yahoo.com says...
> > >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
Vladimir, you mentioned that this book: "Digital Filters: Basics and
Design" by Schlichtharle, covers digital Bessel filter design. I see from
the table of contents that there is a section on Bessel filters:

6.4 Approximation in the Frequency Domain
          .
          .
          .
          6.4.4 IIR Filters with Bessel Characteristics

Like Dave, I would like to design a digital IIR with (as close as possible
to) zero group delay. 
I would buy the above book if I was sure that it contains enough
information on how to design a digital Bessel filter with almost zero group
delay. Not being able to flick through the book, it would be a bit of a
gamble though as it costs around $100 (including shipping). 

Do you think there is enough info in this book to tackle digital Bessel
design?

Thanks
Ger	 

_____________________________		
Posted through www.DSPRelated.com
Vladimir, you mentioned that this book: "Digital Filters: Basics and
Design" by Schlichtharle, covers digital Bessel filter design. I see from
the table of contents that there is a section on Bessel filters:

6.4 Approximation in the Frequency Domain
          .
          .
          .
          6.4.4 IIR Filters with Bessel Characteristics

Like Dave, I would like to design a digital IIR with (as close as possible
to) zero group delay. 
I would buy the above book if I was sure that it contains enough
information on how to design a digital Bessel filter with almost zero group
delay. Not being able to flick through the book, it would be a bit of a
gamble though as it costs around $100 (including shipping). 

Do you think there is enough info in this book to tackle digital Bessel
design?

Thanks
Ger	 

_____________________________		
Posted through www.DSPRelated.com
On Fri, 27 Jun 2014 08:21:33 -0500
"ger_lough" <20494@dsprelated> wrote:

> Vladimir, you mentioned that this book: "Digital Filters: Basics and > Design" by Schlichtharle, covers digital Bessel filter design. I see from > the table of contents that there is a section on Bessel filters: > > 6.4 Approximation in the Frequency Domain > . > . > . > 6.4.4 IIR Filters with Bessel Characteristics > > Like Dave, I would like to design a digital IIR with (as close as possible > to) zero group delay. > I would buy the above book if I was sure that it contains enough > information on how to design a digital Bessel filter with almost zero group > delay. Not being able to flick through the book, it would be a bit of a > gamble though as it costs around $100 (including shipping). > > Do you think there is enough info in this book to tackle digital Bessel > design? > > Thanks > Ger > > _____________________________ > Posted through www.DSPRelated.com
I've got Schlichtharle. The section you're looking for is only 4 pages long, and EXTREMELY math heavy (as is the whole book). Personally, I found it so theory-steeped as to be unusable. Also, you say you want zero group delay. I'm assuming that what you want is zero variation in the group delay You may do better with a FDLS attack on the problem (though I haven't tried it myself). The work on that was done by Greg Berchin, who hangs around these parts sometimes when he feels like it. A purely optimization based attack may give you better results than translating an analog prototype. -- Rob Gaddi, Highland Technology -- www.highlandtechnology.com Email address domain is currently out of order. See above to fix.
On Mon, 30 Jun 2014 09:55:02 -0700, Rob Gaddi
<rgaddi@technologyhighland.invalid> wrote:

>You may do better with a FDLS attack on the problem (though I haven't >tried it myself). The work on that was done by Greg Berchin, who hangs >around these parts sometimes when he feels like it.
Oh, I'm here most the time. I just don't always speak up. ('Tis better to remain silent and be thought a fool, than to speak out and remove all doubt.)
>A purely >optimization based attack may give you better results than translating >an analog prototype.
FDLS can deliver a very good digital approximation of an analog Bessel filter, but no Bessel filter, analog or otherwise, can deliver zero group delay. Anyone who wants FDLS code in Matlab or C can send me a private email message. Change "chatter" to "charter" and remove ".invalid". Greg
On 6/30/14 1:14 PM, Greg Berchin wrote:
> On Mon, 30 Jun 2014 09:55:02 -0700, Rob Gaddi > <rgaddi@technologyhighland.invalid> wrote: > >> You may do better with a FDLS attack on the problem (though I haven't >> tried it myself). The work on that was done by Greg Berchin, who hangs >> around these parts sometimes when he feels like it. > > Oh, I'm here most the time. I just don't always speak up. ('Tis better > to remain silent and be thought a fool, than to speak out and remove all > doubt.)
like <ahem>, "you-know-who". :-| L8r, :-) -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
Hi,

haven't read all the way back to 2010, apologies if I'm missing something.
Matlab -does- support digital Bessel filter and has been doing so for a
while. It uses run-of-the-mill predistorted bilinear transform.

See
http://www.mathworks.se/help/signal/ref/besself.html
"Examples", unfold "frequency response of a digital Bessel filter".

OctaveForge does the same, here's the source (after "pkg load signal")
https://searchcode.com/codesearch/view/9585000/
Description, see Matlab page.

Personally, I suspect a Bessel filter is a dead end for just about any
digital problem. It's more interesting as a theoretical corner of the
design space, IMHO. The digital version might be useful as a _model_ of an
analog filter, but I don't think it's a good choice for a digital design:

Bessel gets me maximally flat phase for an _IIR_ filter, but isn't that 
pointless when I could simply use a _FIR_ filter with, if I chose so,
perfect phase linearity? A simple moving-average / CIC structure comes to
mind. 

If the main requirement is overshoot but not phase linearity, any
combination of critically- or overdamped IIR sections might work.

If the main requirement is minimum latency (shortest absolute group delay),
design any FIR filter by any method you like, then factorize and mirror
non-minimum-phase poles across the unit circle to make it a minimum phase
FIR that is now asymmetric, causes group delay distortion but is faster
overall. 

Other alternatives come to mind, including brute-force numeric FIR
optimization or a plain LMS FIR solution if there are no special
constraints. For those, the main challenge is to formulate the problem. The
solver itself is usually fairly robust.	 

_____________________________		
Posted through www.DSPRelated.com
On Tue, 01 Jul 2014 10:03:46 -0500, "mnentwig" <24789@dsprelated> wrote:

>Personally, I suspect a Bessel filter is a dead end for just about any >digital problem. It's more interesting as a theoretical corner of the >design space, IMHO. The digital version might be useful as a _model_ of an >analog filter, but I don't think it's a good choice for a digital design: > >Bessel gets me maximally flat phase for an _IIR_ filter, but isn't that >pointless when I could simply use a _FIR_ filter with, if I chose so, >perfect phase linearity? A simple moving-average / CIC structure comes to >mind.
It really depends upon what one desires to optimize. The Gaussian filter exhibits the smallest time-bandwidth product of any filter. If that is what you need to optimize, then there is no other filter, digital or analog or otherwise, that will do better than the Gaussian, and the Bessel is a good approximation of the Gaussian.
>If the main requirement is overshoot but not phase linearity, any >combination of critically- or overdamped IIR sections might work.
The Gaussian filter also exhibits zero overshoot and zero ringing. (The Bessel cannot make that claim, but it is close.) Thus, *any* filter that deviates from the Gaussian spectral shape will overshoot or ring or both in the time domain. Again, if overshoot and/or ringing are what you need to optimize, then the Gaussian is best and the Bessel is a good approximation of the Gaussian. It is admittedly fairly rare that one of these figures of merit will be so critical that a Gaussian filter is required. Typically the magnitude response is most critical, and if phase is specified it is usually in the form of a delay or latency requirement. But, as you said, it does define one of the theoretical corners of the design space. Greg
Hi Greg, 

>> Thus, *any* filter that deviates from the Gaussian spectral shape will
overshoot or ring or both in the time domain I think there is something more to it. It might have been "for a minimum phase filter", but now I'd have to find me a systems theory textbook. As a counterexample, take the FIR b = [1 1 1 1 1]/5 It has no overshoot and no ringing, the step response is a ramp. But it is not minimum phase and its time-bandwidth product / latency is clearly worse than the alternatives. I guess sooner or later, someone will come up with a digital Bessel filter that's used successfully. I wouldn't want to argue with that, just saying Bessel is not where I would start my search. A Gauss filter could be an interesting choice -if- time-bandwidth product really reflects the needs. I dimly recall a side note from a Fred Harris lecture along the lines that it sounded like a good idea to use it in GSM, but they realized too late that "bandwidth" is actually much more valuable than "time". Cheers Markus _____________________________ Posted through www.DSPRelated.com
On Tue, 01 Jul 2014 12:21:36 -0500, "mnentwig" <24789@dsprelated> wrote:

>As a counterexample, take the FIR > >b = [1 1 1 1 1]/5 > >It has no overshoot and no ringing, the step response is a ramp.
You are correct, but I should have been more specific: a Gaussian filter has no overshoot and no ringing *in either domain*. Your time domain example rings in the frequency domain (lobing, spectral leakage, etc.). Greg