DSPRelated.com
Forums

KB-Window

Started by Gert Baars September 16, 2005
What is the identity (formula) of a Kaiser-Bessel window.
I need something like W[n] = F(n,alpha)= .........?


"Gert Baars" <g.baars13@chello.nl> wrote in message 
news:534da$432adaa6$3ea3a972$11938@news.chello.nl...
> What is the identity (formula) of a Kaiser-Bessel window. > I need something like W[n] = F(n,alpha)= .........? > >
Gert, w[n] = I0[ beta*(1-[ (n-alpha)/alpha]^2 )^0.5] / I0(beta) 0 <= n <=M and alpha = M/2 = 0 otherwise I0() is the zeroth order modified Bessel function of the 1st kind I hope this helps, Clay
Clay S. Turner wrote:
> "Gert Baars" <g.baars13@chello.nl> wrote in message > news:534da$432adaa6$3ea3a972$11938@news.chello.nl... > >>What is the identity (formula) of a Kaiser-Bessel window. >>I need something like W[n] = F(n,alpha)= .........? >> >> > > > Gert, > > > w[n] = I0[ beta*(1-[ (n-alpha)/alpha]^2 )^0.5] / I0(beta) > 0 <= n <=M and alpha = M/2 > > = 0 otherwise > > > I0() is the zeroth order modified Bessel function of the 1st kind > > I hope this helps, > > Clay > > > > > >
Thank you, it does help. Alpha is a value I can specify in ScopeFIR but beta and IO[x] are not. I assume beta is a fixed value in ScopeFIR.
"Gert Baars" <g.baars13@chello.nl> wrote in message 
news:7864a$432b4f9a$3ea3a972$10530@news.chello.nl...
>> > Thank you, it does help. Alpha is a value I can specify in > ScopeFIR but beta and IO[x] are not. I assume beta is a fixed > value in ScopeFIR.
Hello Gert, Actually you should be able to specify both. As I wrote the formula, M is the length of the window. Alpha is simply M/2. This just makes the formula simpler to write. Beta is what you adjust to trade bandwidth with rolloff. Clay
Gert Baars wrote:
> Clay S. Turner wrote: > > w[n] = I0[ beta*(1-[ (n-alpha)/alpha]^2 )^0.5] / I0(beta) > > 0 <= n <=M and alpha = M/2 > > > > = 0 otherwise > > > > > > I0() is the zeroth order modified Bessel function of the 1st kind > > > > I hope this helps, > > > > Clay > > > > > > > > > > > > > Thank you, it does help. Alpha is a value I can specify in > ScopeFIR but beta and IO[x] are not. I assume beta is a fixed > value in ScopeFIR.
In that formula, Beta is the parameter that you define. Alpha is already defined as M/2. So in ScopeFIR, Alpha is Beta. You don't define I0 when creating the window. I0() is the zeroth order modified Bessel function of the 1st kind. If you're trying to create the window from scratch you'll need to be able to generate this. Check here: http://mathworld.wolfram.com/ModifiedBesselFunctionoftheFirstKind.html Regards, Bob
BobM wrote:
> Gert Baars wrote: > >>Clay S. Turner wrote: >> >>>w[n] = I0[ beta*(1-[ (n-alpha)/alpha]^2 )^0.5] / I0(beta) >>>0 <= n <=M and alpha = M/2 >>> >>> = 0 otherwise >>> >>> >>>I0() is the zeroth order modified Bessel function of the 1st kind >>> >>>I hope this helps, >>> >>>Clay >>> >>> >>> >>> >>> >>> >> >>Thank you, it does help. Alpha is a value I can specify in >>ScopeFIR but beta and IO[x] are not. I assume beta is a fixed >>value in ScopeFIR. > > > In that formula, Beta is the parameter that you define. Alpha is > already defined as M/2. So in ScopeFIR, Alpha is Beta. > > You don't define I0 when creating the window. I0() is the zeroth order > modified Bessel function of the 1st kind. If you're trying to create > the window from scratch you'll need to be able to generate this. Check > here: > > http://mathworld.wolfram.com/ModifiedBesselFunctionoftheFirstKind.html > > Regards, > Bob >
Thank you. I found that Io = SQRT(2/pi.x).COS(x - pi/4) What I actually look for is a window that gives steepest roll-off and a few dB of ripple is allowed like Chebychev, but with a relatively low #taps. Hamming does well but not if Fs/Fs gets small. Will KB offer optimal results here or are there other (better) alternatives?
"Gert Baars" <g.baars13@chello.nl> wrote in message 
news:241d5$432c5ba4$3ea3a972$10015@news.chello.nl...
> > What I actually look for is a window that gives steepest > roll-off and a few dB of ripple is allowed like Chebychev, > but with a relatively low #taps. Hamming does well but not if > Fs/Fs gets small. Will KB offer optimal results here or are > there other (better) alternatives?
Hello Gert, Kaiser in his paper cites the optimum as needing prolate spheroidal functions and he found this alternative to be very close to optimum and it is much easier to work with. If you are really looking for the best because the Kaiser somehow falls short, then maybe you are looking for too much. Have you thought about designing a window that meets your criteria using a P-M algo? Clay
Clay S. Turner wrote:
> "Gert Baars" <g.baars13@chello.nl> wrote in message > news:241d5$432c5ba4$3ea3a972$10015@news.chello.nl... > >>What I actually look for is a window that gives steepest >>roll-off and a few dB of ripple is allowed like Chebychev, >>but with a relatively low #taps. Hamming does well but not if >>Fs/Fs gets small. Will KB offer optimal results here or are >>there other (better) alternatives? > > > > Hello Gert, > > Kaiser in his paper cites the optimum as needing prolate spheroidal > functions and he found this alternative to be very close to optimum and it > is much easier to work with. If you are really looking for the best because > the Kaiser somehow falls short, then maybe you are looking for too much. > Have you thought about designing a window that meets your criteria using a > P-M algo?
Clay, Windowing is all very well, and different windows are fun to play with when designing filters, but can a windowed sync filter ever outperform a Parks-McClellan or least-squares design with the same number of taps? Learning how windows behave in a filter gives me an idea of what effect they will have in an FFT. As far as I know, that's their major use. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Gert Baars wrote:
> > Thank you. I found that Io = SQRT(2/pi.x).COS(x - pi/4) > > What I actually look for is a window that gives steepest > roll-off and a few dB of ripple is allowed like Chebychev, > but with a relatively low #taps. Hamming does well but not if > Fs/Fs gets small. Will KB offer optimal results here or are > there other (better) alternatives?
Hello Gert, I think your above formula for I0(x) is actually an assymptotic approximation for when x is large. Calculating I0(x) takes a little more work. Abromowitz and Stegen give some good series expansions to use. I have some "c" code for I0(x) - I'll just have find it if you need it. Clay
Clay S. Turner wrote:
> "Gert Baars" <g.baars13@chello.nl> wrote in message > news:241d5$432c5ba4$3ea3a972$10015@news.chello.nl... > >>What I actually look for is a window that gives steepest >>roll-off and a few dB of ripple is allowed like Chebychev, >>but with a relatively low #taps. Hamming does well but not if >>Fs/Fs gets small. Will KB offer optimal results here or are >>there other (better) alternatives? > > > > Hello Gert, > > Kaiser in his paper cites the optimum as needing prolate spheroidal > functions and he found this alternative to be very close to optimum and it > is much easier to work with. If you are really looking for the best because > the Kaiser somehow falls short, then maybe you are looking for too much. > Have you thought about designing a window that meets your criteria using a > P-M algo? > > Clay > > >
The Kaiser window seems to work a little better then the Hamming. I don't use high res floating point to speed up calculations more. Refining more though will not have much effect. What if a smoothening window is used in the frequency domain. Is a window in the time domain then still neccesary?