Vector.Hilbert Method

function Hilbert(const Vec: TVec; method: THilbertMethod): TVec;

The fast hilbert transform (FFT based).

#NameTypeDescription
1VecTVec
2methodTHilbertMethod

Result: stored in self (calling object), returns self for chaining

Remarks:

The method forms the imaginary orthogonal part (90 degrees phase shifted version of the original) from the real series by using the fast hilbert transform (FFT based) and saves the complex result in the calling vector. No windowing is performed. Vec must be a real vector or an exception is raised. The Vector.Length and Vector.Complex properties of the calling vector are set implicitly to match Vec vector.

Examples
var a,b,Re,Im: Vector;
    azero: double;
begin
    a.SetIt(false,[1,2,3,4,5,6,7,8]);
    b.Hilbert(a);
    Re.RealPart(b);
    Im.ImagPart(b);
    azero := DotProd(Re,Im);
    // if Re is orthogonal to Im, azero becomes 0
end;
See Also: Vector.FFT, Vector.DCT