Computes the fast Hilbert transform of a sequence.
Input signal.
This input accepts a double-precision, floating-point number or a 1D array of double-precision, floating-point numbers.
Length of each set of data. The node performs computation for each set of data.
sample length must be greater than zero.
This input is available only if you wire a double-precision, floating-point number to x.
Default: 100
Error conditions that occur before this node runs.
The node responds to this input according to standard error behavior.
Standard Error Behavior
Many nodes provide an error in input and an error out output so that the node can respond to and communicate errors that occur while code is running. The value of error in specifies whether an error occurred before the node runs. Most nodes respond to values of error in in a standard, predictable way.
Default: No error
The fast Hilbert transform of the input sequence.
Error information.
The node produces this output according to standard error behavior.
Standard Error Behavior
Many nodes provide an error in input and an error out output so that the node can respond to and communicate errors that occur while code is running. The value of error in specifies whether an error occurred before the node runs. Most nodes respond to values of error in in a standard, predictable way.
The Hilbert transform of a function x(t) is defined as
Using Fourier identities, you can show the Fourier transform of the Hilbert transform of x(t) is
where $x\left(t\right)\iff X\left(f\right)$ is a Fourier transform pair and
This node performs the discrete implementation of the Hilbert transform with the aid of the FFT routines based upon the $h\left(t\right)\iff H\left(f\right)$ Fourier transform pair by taking the following steps:
Fourier transform the input sequence X.
Y = F{X}
Set the DC component to zero.
Y_{0} = 0.0
If the sequence Y is an even size, set the Nyquist component to zero.
Y_{Nyq} = 0
The output sequence Y = Inverse FFT [X] is complex and it is returned in one complex array: Y = (Yre,Yim).
Because this node sets the DC and Nyquist components to zero when the number of elements in the input sequence is even, you cannot always recover the original signal with an inverse Hilbert transform. The Hilbert transform works well with bandpass limited signals, which exclude the DC and the Nyquist components.
You can use the Hilbert transform to accomplish the following tasks:
Where This Node Can Run:
Desktop OS: Windows
FPGA: This product does not support FPGA devices
Web Server: Not supported in VIs that run in a web application