Is 'Bessel' digital lowpass filter standard?

Started by August 24, 2010
```On 7/1/14 11:54 AM, Greg Berchin wrote:
>  The Gaussian filter
> exhibits the smallest time-bandwidth product of any filter.

i didn't know that, for some reason.

doesn't this depend on how "time width" and "bandwidth" are defined.

one cool thing about gaussian filters is that they map back to
themselves through the Fourier transform (FT).  specifically:

FT{ e^(-pi*t^2) }  =  e^(-pi*f^2)

using the unitary FT (so that the inverse FT is essentially identical to
the forward FT and all definitions are consistent).

of course, with scaling:

FT{ e^(-pi*(t/T)^2) }  = T * e^(-pi*(T*f)^2)

for any T>0.  the time width is T and the bandwidth is 1/T.  some
product equal to 1.

we can define the time width and bandwidth of both of those functions to
be 1.  so their "time edges" and "band edges" are both at -1/2 and +1/2.
and the time-bandwidth product for this family of curves is 1.

then we can define the energy that is under the curve of

+1/2
integral |e^(-pi*t^2)|^2 dt}  =  0.92368*sqrt(1/2)
-1/2

and divide that by the energy under the whole curve

+inf
integral |e^(-pi*t^2)|^2 dt}  =  sqrt(1/2)
-inf

and say that the time width or band width is the smallest possible width
under the curve which has the same portion of the total energy, which
appears to be 92.368 % of the total energy.

so Greg, in this statement about gaussian having the smallest
time-bandwidth product depend on a definition of time-width and
bandwidth like that above?  like no other family of functions other than
gaussian can have a time-bandwidth product equal to or less than 1?

just curious.

> 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,

what about "prolate spheroidal filters"?  i confess i have never,
myself, looked into these or the math behind them, but i remember being
told that these are the filters that are *virtually* both bandlimited
and timelimited which normally we say cannot be the case.

--

r b-j                  rbj@audioimagination.com

"Imagination is more important than knowledge."

```
```On 7/1/14 2:41 PM, robert bristow-johnson wrote:
> On 7/1/14 11:54 AM, Greg Berchin wrote:
>> The Gaussian filter
>> exhibits the smallest time-bandwidth product of any filter.
>
> i didn't know that, for some reason.
>
> doesn't this depend on how "time width" and "bandwidth" are defined?
>
>

...

>
>> 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,
>
> what about "prolate spheroidal filters"? i confess i have never, myself,
> looked into these or the math behind them, but i remember being told
> that these are the filters that are *virtually* both bandlimited and
> timelimited which normally we say cannot be the case.

hey, can someone with unlimited or free access to IEEE publications send
me the pdf of:

Mathews, J.D., J.K. Breakall, G.K. Karawas, "The Discrete Prolate
Spheroidal Filter as a Digital Signal Processing Tool," IEEE Trans. on
Acoustics, Speech and Signal Processing, ASSP-33, 1471-1478 (1985).

?

i was reading a little of it (the NASA typewriter version) on
ResearchGate.  problem is the doc is no longer at NASA that i can find.

big appreciations...

--

r b-j                  rbj@audioimagination.com

"Imagination is more important than knowledge."

```
```>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
>

thanks, good point. I didn't think of that.

----

For some prolate spherical filter thing, have a look here:
http://www.dsprelated.com/showcode/236.php

I once tried the Matlab code that comes with it - the core routine is only
a couple of lines - and it worked very well.

_____________________________
Posted through www.DSPRelated.com
```
```On 7/1/14 4:09 PM, mnentwig wrote:
>> 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
>>
>
> thanks, good point. I didn't think of that.
>
> ----
>
> For some prolate spherical filter thing, have a look here:
> http://www.dsprelated.com/showcode/236.php
>

hey, Markus, this is useful.  shows the window equation, w(t).  i don't
understand the "j" in the denominator.  sinc(j*something) is
j*sin(something) and purely imaginary.  so i am missing something.

> I once tried the Matlab code that comes with it - the core routine is only
> a couple of lines - and it worked very well.

i have to investigate this for my own learning.  i want to know, given
the narrowest width that gets 92.368 % of the total energy (in either
time or frequency domains) as the definition of time-width or bandwidth,
how this w(t) and its W(f) compare to gaussian, which has a
time-bandwidth of 1.

--

r b-j                  rbj@audioimagination.com

"Imagination is more important than knowledge."

```
```Hi,

I think I remembered this wrong.
The article is about an interpolator, not a filter. It achieves a very flat
frequency response to the specified bandwidth for a given fractional delay.

The difference is that it doesn't care about the frequency response beyond
the cutoff frequency but the response beyond the bandwidth is arbitrary.
If the input signal is free of high-frequency energy, it interpolates
accurately. But there is no guarantee, to what extent it will suppress
out-of-bandwidth energy.

For example, for any bandwidth and u=0, I get " ...0 0 0 1 0 0 0" which
clearly doesn't implement any filtering, but is correct interpolation for
an undelayed signal.

I looked at the sinc(i ...) with Octave, it's real-valued.

Now that I think about it: sin(z) = (exp(iz) + exp(-iz)) / 2i
A complex argument drops the "i" inside the exponentials.
For sinc() I divide by the complex argument and the "i" in the denominator
drops out => result should be real-valued?

Here is a shortened octave script, using the impulse response from above
function proSpher()
d = 0; % delay
T = 1; % sampling time
B = 0.7; % bandwidth, over which interpolator has near-constant H(f)
P = 6; % one-sided points excluding center
h = gPulseCoefs(d, T, B, P);
close all;
stem(h);
h(1000) = 0;
figure();
fr = fftshift(20*log10(abs(fft(h))));
plot(fr);
end

function c = gPulseCoefs(u,T,B,P)
t = (-P:P)*T+u;
c =
sinc(t/T).*real(sinc((1-B*T)*sqrt((t/T).^2-P^2)))/real(sinc(1i*(1-B*T)*P));
sinc(1i*(1-B*T)*P)
end

_____________________________
Posted through www.DSPRelated.com
```
```robert bristow-johnson <rbj@audioimagination.com> wrote:
> On 7/1/14 11:54 AM, Greg Berchin wrote:
>>  The Gaussian filter
>> exhibits the smallest time-bandwidth product of any filter.

> i didn't know that, for some reason.

A favorite subject in quantum mechanics, where it minimizes the
product of position uncertainty and momentum uncertainty, or the
prodcut of time uncertainty and energy uncertainty.

> doesn't this depend on how "time width" and "bandwidth" are defined.

I suppse so, but there aren't so many choices that otherwise
make sense.

> one cool thing about gaussian filters is that they map back to
> themselves through the Fourier transform (FT).  specifically:

>     FT{ e^(-pi*t^2) }  =  e^(-pi*f^2)

> using the unitary FT (so that the inverse FT is essentially
> identical to the forward FT and all definitions are consistent).

You can put some 2*pi in there, too.

> of course, with scaling:

>     FT{ e^(-pi*(t/T)^2) }  = T * e^(-pi*(T*f)^2)

> for any T>0.  the time width is T and the bandwidth is 1/T.  some
> product equal to 1.

> we can define the time width and bandwidth of both of those functions to
> be 1.  so their "time edges" and "band edges" are both at -1/2 and +1/2.
>  and the time-bandwidth product for this family of curves is 1.

> then we can define the energy that is under the curve of

>         +1/2
>     integral |e^(-pi*t^2)|^2 dt}  =  0.92368*sqrt(1/2)
>         -1/2

> and divide that by the energy under the whole curve

>         +inf
>     integral |e^(-pi*t^2)|^2 dt}  =  sqrt(1/2)
>         -inf

> and say that the time width or band width is the smallest possible width
> under the curve which has the same portion of the total energy, which
> appears to be 92.368 % of the total energy.

> so Greg, in this statement about gaussian having the smallest
> time-bandwidth product depend on a definition of time-width and
> bandwidth like that above?  like no other family of functions other than
> gaussian can have a time-bandwidth product equal to or less than 1?

How many peak-shaped (decrease monotonically to zero on either size
of the maximum) functions are there that also have a peak-shaped
Fourier transform?

> just curious.
>

>> 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,

> what about "prolate spheroidal filters"?  i confess i have never,
> myself, looked into these or the math behind them, but i remember being
> told that these are the filters that are *virtually* both bandlimited
> and timelimited which normally we say cannot be the case.

-- glen
```
```On Tue, 01 Jul 2014 14:41:38 -0400, robert bristow-johnson
<rbj@audioimagination.com> wrote:

>so Greg, in this statement about gaussian having the smallest
>time-bandwidth product depend on a definition of time-width and
>bandwidth like that above?

From my ancient 1999 AES paper: "... duration is defined as the
normalized second moment of the square of the time signal.  Bandwidth is
similarly defined as the second moment of the squared magnitude of the
signal's Fourier Transform.  Some familiar quantities that are also
based upon the second moment include variance, standard deviation,
mean-squared duration, and RMS duration."

Greg
```
```Greg Berchin <gjberchin@chatter.net.invalid> wrote:
> On Tue, 01 Jul 2014 14:41:38 -0400, robert bristow-johnson
> <rbj@audioimagination.com> wrote:

>>so Greg, in this statement about gaussian having the smallest
>>time-bandwidth product depend on a definition of time-width and
>>bandwidth like that above?

> From my ancient 1999 AES paper: "... duration is defined as the
> normalized second moment of the square of the time signal.  Bandwidth
> is similarly defined as the second moment of the squared magnitude of
> the signal's Fourier Transform.  Some familiar quantities that are
> also based upon the second moment include variance, standard
> deviation, mean-squared duration, and RMS duration."

In theory, you could use any even moment, or linear combination
of them.  Or, even more generally, appropriately weighted even
functions around the (mean, median, mode, etc.) of the signal.

-- glen

```
```Rob, thanks for your response. I think I may have been in for a
disappointment had I splashed out on Schlichtharle. I am only interested in
minimizing the group delay; not too concerned about overshoot. Most people
say to just use an FIR, but CPU will probably be an issue for my
application, so may not be feasible.

I will look into FDLS. How exactly would one approach digital Bessel design
using least squares? How is least squares used for this problem?

Thanks
Ger

_____________________________
Posted through www.DSPRelated.com
```
```Robert - did you get the copy of the paper I sent you?
The email address tied to my Google login isn't valid anymore, so I wouldn't have gotten any replies.

Best,
Dave
```