Complex trace attributes were introduced into geophysics by the paper
Taner, M. T., F. Koehler, and R. E. Sheriff, 1979,
Complex seismic trace analysis: Geophysics, 44, 1041-1063.
If

is the input seismic trace, then the analytical trace is defined as the complex-valued signal
where

is the
Hilbert transform of

:
The signal envelope is the positive signal
A phase-rotated seismic signal is
where

is the phase of rotation.
By default,
sfenvelope computes the signal envelope. It can also produce a phase-rotated signal if given
hilb=y and
phase=. If
phase=90 (the default value), the phase-rotated signal will be simply the Hilbert transform of the input.
The following figure from
book/rsf/rsf/sfenvelope illustrate an application of
sfenvelope:
Computing the discrete Hilbert transform is not a trivial task. In the Fourier domain, the continuous Hilbert transform is given by
where sgn is the sign function. The discontinuity of the sign function in the frequency domain at

is related to the slow

decay of the filter impulse response in the time domain. The discontinuity at the Nyquist frequency creates additional oscillations. Different practical implementations shorten the filter impulse response by effectively smoothing the Fourier-domain discontinuities.
The Madagascar
implementation of the discrete Hilbert transform follows the algorithm described in
Pei, S.-C., and P.-H. Wang, 2001,
Closed-form design of maximally flat FIR Hilbert transformers, differentiators, and fractional delayers by power series expansion: IEEE Trans. on Circuits and Systems, v. 48, No. 4, 389-398.
The accuracy/cost trade-off is controlled by two parameters:
order= and
ref=. The following figures from
book/rsf/rsf/sfenvelope illustrate the effect of the
order= parameter:
The
Seismic Unix implementation (
suhilb program) applies a
Hamming window in the time domain. For some reason, it has the filter polarity reversed:
A multidimensional analog of the Hilbert transform is the
Riesz transform. It is implemented in the
sfriesz program.