SignalUtils.BlackmanExact Method

function BlackmanExact(const Src: TVec; WindowMode: TSignalWindowMode): TVec;

Exact blackman window.

#NameTypeDescription
1SrcTVec
2WindowModeTSignalWindowMode

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.

#NameTypeDescription
1SrcTVec
2WindowModeTSignalWindowMode
3IndexIntegerstart index
4LenIntegerelement count

Returns: TVec

Remarks:

Applies Exact Blackman window to Src vector from element at Index to element at Index + Len - 1.