function Kaiser(const Src: TVec; Beta: Double): TVec;
Kaiser window.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TVec | |
| 2 | Beta | Double | scalar |
Returns: TVec
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.
Indexed: function Kaiser(const Src: TVec; Beta: Double; Index: Integer; Len: Integer): TVec;
Kaiser window.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TVec | |
| 2 | Beta | Double | scalar |
| 3 | Index | Integer | start index |
| 4 | Len | Integer | element count |
Returns: TVec
Applies Kaiser window to Src vector from element at Index to element at Index + Len - 1.