DSPRelated.com
Forums

Is 'Bessel' digital lowpass filter standard?

Started by gretzteam 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
link:
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