function BlackmanExact(const Src: TVec; WindowMode: TSignalWindowMode): TVec;
Exact blackman window.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TVec | |
| 2 | WindowMode | TSignalWindowMode |
Returns: TVec
Remarks:
Applies exact Blackman window to Src. Window functions are applied to the signal prior to conversion to frequency domain with the FFT algorithm, to reduce the spectral leakage. Their side-effect is a lower frequency resolution.
w[n] := 0.42659071 - 0.49656062*cos(2*Pi*n/(n-1)) + 0.07684867*cos(4*Pi*n/(n-1))
0 <= n <= M - 1
Examples
uses MtxExpr, Math387, MtxVec, SignalUtils, MtxVecTee;
procedure TForm1.Button1Click(Sender: TObject);
var h,h1,Response,Response1: Vector;
begin
h := Math387.Sin(Ramp(256,mvDouble,0,2*Pi*0.1));
h1.Copy(h);
BlackmanExact(H,wmSymmetric); //window the sine
Drawit(h);
h := h*2.344168; //scale the signal to compensate for energy loss
FrequencyResponse(h,nil,Response,8);
FrequencyResponse(h1,nil,Response1,8);
DrawIt([Response1,Response],['Rectangular window','Exact blackman']);
end;
See Also: SignalUtils.Kaiser, SignalUtils.SignalWindow
Indexed: function BlackmanExact(const Src: TVec; WindowMode: TSignalWindowMode; Index: Integer; Len: Integer): TVec;
Exact Blackman window.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Src | TVec | |
| 2 | WindowMode | TSignalWindowMode | |
| 3 | Index | Integer | start index |
| 4 | Len | Integer | element count |
Returns: TVec
Remarks:
Applies Exact Blackman window to Src vector from element at Index to element at Index + Len - 1.