Overload List
| # | Signature | Description |
|---|---|---|
| 1 | TVec *Kaiser(TVec *Src, double Beta); | Kaiser window. |
| 2 | TVec *Kaiser(TVec *Src, double Beta, int Index, int Len); | Kaiser window. |
Overload 1: TVec *Kaiser(TVec *Src, double Beta);
Kaiser window.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TVec * | |
| 2 | Beta | double |
Multiplies Src in place by the Kaiser window. For a unit input and alpha = (N-1)/2 the i-th sample becomes
w[i] = (I_0(betasqrt(1-((i-alpha)/alpha)^2)))/I_0(beta), 0 <= i <= N-1
where I_0 is the zeroth-order modified Bessel function (see BesselI0) and beta (Beta) trades main-lobe width against side-lobe attenuation: larger beta gives more leakage suppression and lower frequency resolution. The endpoints (i=0 and ) make the radicand zero and are forced to 0. Domain: beta >= 0, N >= 1. For a required side-lobe attenuation use KaiserBetaWindow (spectrum analysis) or KaiserBetaFir (FIR design) to pick beta. The Index..Index+Len-1 range is validated against Src and an out-of-range request raises; finite input yields no NaN.
References:
[1] Discrete-time signal processing, Oppenheim and Schafer, Prentice-Hall, 1989.
Overload 2: TVec *Kaiser(TVec *Src, double Beta, int Index, int Len);
Kaiser window.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TVec * | |
| 2 | Beta | double | |
| 3 | Index | int | |
| 4 | Len | int |
Applies Kaiser window to Src vector from element at Index to element at Index + Len - 1.