The Hilbert transform of a function f(x) is defined by:

• Theoretically, the integral is evaluated as a Cauchy principal value. Computationally one can write the Hilbert transform as the convolution:

• which by the convolution theorem of Fourier transforms, may be evaluated as the product of the transform of f(x) with -i*sgn(x), where:

• The Hilbert transform can be considered to be a filter which simply shifts phases of all frequency components of its input by -π/2 radians.

An "analytic" (complex time) signal Y(t) can be constructed from a real-valued input signal y(t):

• Y(t) = y(t) + j h(t)

where,

• Y(t) is the analytic signal constructed from y(t) and its Hilbert transform
• y(t) is the input signal
• h(t) is the Hilbert Transform of the input signal

The real and imaginary parts can be expressed in polar coordinates as:

• Y(t) = A(t) exp[jψ(t)]

where,

• A(t) is the "envelope" or amplitude of the analytic signal
• ψ is the phase of the analytic signal (the derivative of ψ is called the "instantaneous frequency")

These Igor commands compute a signal´s "envelope" using the HilbertTransform operation:

```	HilbertTransform inputSignal	// creates W_Hilbert
Rename W_Hilbert, envelope
envelope= real(r2polar(cmplx(inputSignal[p], envelope[p])))
```

Note that the Hilbert transform of a constant is zero. If you compute the Hilbert transform in more than one dimension and one of the dimensions does not vary (is a constant), the transform will be zero (or at least numerically close to zero).

Igor´s HilbertTransform operation computes the Hilbert transformation of real or complex (single or double precision) data of 1-3 dimensions.

### References

• Bracewell, R., The Fourier Transform and Its Applications, McGraw-Hill, 1965.
• Feldman, M., "Non-linear system vibration analysis using Hilbert Transform - I. Free Vibration Analysis Method 'FREEVIB'", Mechanical Systems and Signal Processing (1994) 8(2), 119-127. Forum Support Gallery