Next: , Previous: , Up: Internal Routines   [Contents][Index]


15.5.310 hilbert

hilbert(data [, axes, direction, /back, /all, /avgkeep, /highkeep])

Returns a discrete Hilbert transform of the data along the indicated axes in the indicated direction. The Hilbert transform changes the phases of the Fourier components in the data by 90 degrees, replacing sines by cosines and cosines by sines (with appropriate signs). By default, the phases are shifted forward in the first dimension.

If direction (after transformation to an integer) is negative, then the phases are shifted back. If direction is zero or positive, then the phases are shifted forward. If direction is not specified, then /back implies the backward shift.

If axes is specified, then it is taken to contain the axes along which transformation is to be done. No axis may appear more than once. The axes need not be in any specific order. If axes is not specified, then if /all is specified, all axes are treated. If neither axes nor /all are specified, then the first axis is assumed.

By default, the forward and backward transforms are almost each other’s inverse: If you apply the one and the equivalent other in succession, then you get the original data back, except that the Hilbert transform sets averages to zero and also removes the very highest frequency from the data (which by definition always has its sine component equal to zero). However, keyword /avgkeep retains the average, and keyword /highkeep retains the highest frequency.

The power spectrum of the default Hilbert transform of x is equal to the power spectrum of x itself, except at zero frequency (corresponding to the average) and at the very highest frequency.

See also: fft, sc, scb


Next: , Previous: , Up: Internal Routines   [Contents][Index]