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

  • f(t)=1/pi * integral -inf to +inf f(x)/(t-x) dx

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

  • F(t) = 1/(pi*t) * f(t)

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:

  • sgn(x)={-1 if x<0, 0 if x=0, 1 if x>0}

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)


  • 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)]


  • 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.


  • 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.




Igor Pro 8

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More