Hilbert Transform
Use the 1D FFT > Hilbert Transform menu option (HILBERT GX) to perform a Hilbert transform on a channel using Fast Fourier Transform (FFT).
Hilbert Transform dialog
|
Channel to transform |
Name of the input channel. Script Parameter: HILBERT.IN |
|
Output channel |
Name of the channel for the transform result. Script Parameter: HILBERT.OUT |
|
[Options] |
Click to set de-trend, expansion, and re-trend parameters. |
Hilbert Transform Options dialog |
|
|
Type of trend line to remove |
Type of trend line to remove:
Script Parameter: HILBERT.DETRD |
|
Minimum expansion (%) |
Minimum data expansion before FFT. Default = 10%. Script Parameter: HILBERT.EXP |
Application Notes
The GX performs the Hilbert transform using FFT based on the following known relation:
F[H[f(x)] ] = -i sgn(ω) F[f(x)](equation 7 in the reference paper1)
Where:
F[f(x)]: Fourier transform of f(x),
H[f(x)]: Hilbert transform of f(x)
sgn(ω): ω / |ω| = +1 for ω >0, 0 for ω=0, -1 for ω <0.
Process
Firstly, the GX performs a forward FFT transform on the input channel. For non-array input channels, three output channels are created and stored in a newly created GDB named after the input channel with the extension "_Freq". These output channels share the input channel’s name but use the extensions "_r" and "_i" for the real and imaginary components of the transform, and "_ω" for the wavenumber in radians per fiducial.
The trend is removed before applying the FFT.
The output values represent the real and imaginary components of the positive frequencies of the transform. Since the input data is real-valued in the spatial domain, the negative part of the spectrum is simply the conjugate of the corresponding positive part, i.e., h(−f)=[h(f)]∗, and is therefore not included in the output.
-
Fiducial number: cycles per fiducial
-
Wavenumber channel: radians per fiducial
Next, the one-dimensional Hilbert transform operator, −i sgn(ω), is applied to the FFT-transformed data.
Finally, the GX performs an inverse FFT to obtain the Hilbert transform results in the output channel.
Best Practices for Real Data
-
Trend Removal: It is recommended to remove the trend line based on all data points (default) before the FFT process to avoid discontinuities at the data edges. The removed trend will be restored after the FFT in the same manner.
-
Data Expansion: To prevent edge discontinuities, it is also suggested to expand the data by about 10% before the FFT process. The GX first extends the data by the user-specified percentage, then further pads it to the next power of 2 for FFT.
Example: Original data = 60 points → expand by 10% (6 points) → total = 66 → padded to 128 points (next power of 2) for FFT.
The extended area is interpolated using the Maximum Entropy Prediction (MEP) method. MEP samples the original data points to determine their spectral content and then predicts a data function that will have the same spectral signature as the original data. As a result, the predicted data will not significantly alter the energy spectrum that would result from the original data alone.
However, for a particular synthetic data test, using the removing mean value trend removal option and 0% expansion may yield accurate results.
Reference
- [1] Misac N. Nabighian, "Toward a three-dimensional automatic interpretation of potential field data via generalized Hilbert transforms: Fundamental relations", Geophysics, vol. 49, no. 6 (1984), pp. 780-786.
Got a question? Visit the Seequent forums or Seequent support
Copyright (c) 2026 Bentley Systems, Incorporated. All rights reserved.
Privacy | Terms of Use
