Language Reference

TFHILBERT Function

TFHILBERT (x) ;

This function is supported by the IML procedure and the iml action.

The TFHILBERT function returns the analytic signal that corresponds to the input vector x. The analytic signal that corresponds to a continuous time series x left-parenthesis t right-parenthesis is the complex time series z left-parenthesis t right-parenthesis equals x left-parenthesis t right-parenthesis plus bold i ModifyingAbove x With caret left-parenthesis t right-parenthesis, where ModifyingAbove x With caret left-parenthesis t right-parenthesis is the Hilbert transform of x left-parenthesis t right-parenthesis and bold i equals StartRoot negative 1 EndRoot. In many applications, replacing the original time series by its analytic transform produces better results (Marple 1999).

If the input vector has n elements, then the output is an n times 2 matrix whose first column represents the real part of the analytic signal and whose second column represents the imaginary part of the analytic signal.

For a continuous time series x left-parenthesis t right-parenthesis with Fourier transform upper X left-parenthesis f right-parenthesis equals integral x left-parenthesis t right-parenthesis exp left-parenthesis minus 2 pi bold i f t right-parenthesis d t, the Hilbert transform is defined by inverting upper X left-parenthesis f right-parenthesis over the positive frequencies  (Cohen 1995, p. 30):

The spectrum of ModifyingAbove x With caret left-parenthesis t right-parenthesis is identical to the spectrum of x left-parenthesis t right-parenthesis for positive frequencies, and the spectrum of ModifyingAbove x With caret left-parenthesis t right-parenthesis is 0 for negative frequencies.

The Hilbert transform of a discrete time series is similarly constructed as a time series whose discrete Fourier transform coincides with that of the input time series for positive spectra and vanishes otherwise. The implementation here is based on the method described in  Marple (1999).

The following example demonstrates the TFHILBERT function:

x = 1:10;
s = tfhilbert(x);
print s;

Figure 471: Hilbert Transform

s
15.5055277
2-0.649839
3-0.649839
4-2.102924
5-2.102924
6-2.102924
7-2.102924
8-0.649839
9-0.649839
105.5055277


Last updated: April 16, 2021