Talk:Kaiser window

message: I replaced the frequency spectra plots by Bob K (old ones were :Image:Kaiser_window_function_alpha_2.png and :Image:Kaiser_window_function_alpha_3.png).  I found the old ones hard to read because of the plotting format that was used — all sorts of Moire effects, etc.  Also, it is nice to keep the same format as the time-domain plots we already have, in particular putting two α values on the same plot so that you can directly compare their spectra, and using a similar color and labelling scheme.  (On the other hand, Bob's side-by-side plots look very nice in the context of the Window function article.)  —Steven G. Johnson 22:19, 15 December 2005 (UTC)
replies: text: Yours is definitely a better treatment of the "grass".  All I can say in my defense is that in all my years of using window functions, no-one ever cared what the grass looks like below the peaks.  And your overlay is essential to compare the lobe widths.  I might have picked bolder colors, but good job! --Bob K 23:31, 15 December 2005 (UTC)
thread_title:  Frequency spectra 

message: Not surprisingly, the strength of Wikipedia is also its glaring weakness... it takes constant vigilance to prevent erosion.  Hopefully someday there will be a better way, but I don't know what it is.  Thoughts?  --Bob K 11:21, 7 May 2006 (UTC)
replies: text: Wikipedia:Stable versions is one proposal to address this.  Time will tell whether this works in practice.  —Steven G. Johnson 17:49, 7 May 2006 (UTC)
replies: text: Thanks.  It's a start, at least.  One thing I do not understand from that proposal is how one will know that a stable version exists?  --Bob K 13:57, 8 May 2006 (UTC)
thread_title:  "Off-by-one error" 

message: In the first line of the article, there is a reference to James Kaiser at Bell Laboratories. When I follow the link to James_Kaiser, I am redirected to the Kaiser_Burnout, an event in the american civil war. I don't think this is the correct James Kaiser reference. The link should be deleted. Simplimus (talk) 07:28, 27 November 2013 (UTC)
thread_title:  Kaiser Burnout 

message: Hello fellow Wikipedians,
I have just modified one external link on Kaiser window. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
*Added archive https://web.archive.org/web/20090327144432/http://ccrma.stanford.edu/courses/422/projects/kbd/ to http://ccrma.stanford.edu/courses/422/projects/kbd/
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
Cheers.—InternetArchiveBot (Report bug) 05:10, 5 December 2017 (UTC)
thread_title:  External links modified 

message: In doing some work based on the definition given for the FT of the window, I unified the two domains (|omega| <= omega_alpha and |omega| >= omega_alpha) into one expression: (2T/I_0(alpha))*sinc(alpha*i*sqrt(1-(omega/omega_alpha)^2)) .
Then I realised that I'd accidentally discarded the negative sign in the denominator of the expression for the |omega| <= omega_alpha domain. Although this is never explained in the article, omega_alpha appears to be the joining point where the main lobe meets the "ripples", and if you discard the 2T/I_0(alpha) coefficient, both expressions evaluate to unity at that point.
I therefore believe that this negative sign is wrong for these reasons:
* since the window is always nonnegative, its DC gain should be nonnegative
* the negative sign creates a discontinuity at omega_alpha rather than a smooth join; frequency-domain discontinuities imply infinite time-domain support, which is clearly inappropriate for a window function
Plotting the FT here:
http://www.mathsisfun.com/data/function-grapher.php?func1=sinh(4*a*sqrt(1-x*x))%2F(4*a*sqrt(1-x*x))&func2=sin(4*a*sqrt(x*x-1))%2F(4*a*sqrt(x*x-1))&xmin=-6.950&xmax=6.950&ymin=-4.296&ymax=4.296
...seems to confirm my thinking.
81.187.94.66 (talk) 10:44, 1 May 2018 (UTC)
replies: text: Perhaps I am misreading the equation in Kaiser's original paper?  The horizontal line does seem a bit long to be a negative sign, but I'm not sure what else to make of it.  I admit that other sources (example) for the equation online do not have the negative sign. --MindlessXD (talk) 04:19, 28 May 2018 (UTC)
thread_title:  Apparently erroneous sign of Fourier transform 

message: #include <stdio.h>
#include <math.h>
constexpr int fact(int N)
{
    return N ? N*fact(N-1) : 1;
}
constexpr double power(double x, int N)
{
    return N ? x*power(x, N-1) : 1.0;
}
constexpr double Pi = 3.1415926535897932384626433832795;
template <int n = 0>
constexpr double I(double x)
{
    double x2  = 0.5 * x;
    double x22 = x2 * x2;
    double S   = power (x2, n) / fact(n);
    double Sum = S;
    for (int i = 1; S; i++)
        Sum += (S *= x22 / i / (i + n));
    return Sum;
}
constexpr double KB (double alpha, double x)
{
    return I<0>(Pi*alpha*sqrt(1-power(x,2))) / I<0>(Pi*alpha);
}
constexpr double KB (double alpha, int n, double N)
{
    return KB(alpha, 2*n/N - 1);
}
double Sum(double x[], int N)
{
    double S = 0;
    for (int i = 0; i < N; i++)
        S += x[i];
    return S;
}
double KBD (double alpha, int n, int N)
{
    static double _Q [4096+1];
    static int    _N     = -1;
    static double _alpha = -1.0;
    if (alpha != _alpha || N != _N)
    {
        for (int i = 0; i <= N; i++)
            _Q[i] = KB (alpha, i, N);
        _alpha = alpha;
        _N     = N;
    }
    return sqrt (Sum(_Q,n+1) / Sum(_Q,N+1));
}
int main()
{
    for (int i = 0; i < 1024; i++)
        printf ("%4d %18.12f\n", i, KBD(4.0, i, 1024));
    printf ("\n");
    for (int i = 0; i < 128; i++)
        printf ("%4d %18.12f\n", i, KBD(6.0, i, 128));
    printf ("\n");
    return 0;
}
--2003:c3:671c:ac00:9951:83f4:72e:d01a
:Excerpt from https://commons.wikimedia.org/wiki/File:Kbd-window.svg:
for k= 1:length(betas)
    w = besseli(0,betas(k)*sqrt(1-(2*(0:N)/N -1).^2))/besseli(0,betas(k));
    d = zeros(1,2*N);	% length 2N
    for n=0:N-1
    d(1+n) = sum(w(1+(0:n)));
    end
    for n=N:2*N-1
    d(1+n) = sum(w(1+(0:2*N-1-n)));
    end
    d = sqrt(d/sum(w(1+(0:N))));
    plot(0:2*N-1, d, "color", colors(k,:), "linewidth", 2)
end
:--Bob K (talk) 14:20, 22 August 2021 (UTC)
thread_title:  Calculates KBD Windows of AAC