Hilbert Transform

Use the 1D FFT > Hilbert Transform menu option (HILBERT GX) to do Hilbert transform for a channel by means of FFT.

Hilbert Transform dialog

Channel to transform

Name of the channel to transform.

Script Parameter: HILBERT.IN

Output channel

Name of the channel of the transform result.

Script Parameter: HILBERT.OUT

[Options]

Click this button to set the options of de-trend, expansion and re-trend parameters.

Options

Type of trend line to remove

Trend line removal options:

3: remove mean value

2: remove trend line based on all data points (default)

1: remove trend line based on two edge points

0: do not remove trend

Script Parameter: HILBERT.DETRD

Minimum expansion (%)

Minimum data expansion (%) before FFT process

The default: 10%.

Script Parameter: HILBERT.EXP

Application Notes

The GX does the Hilbert Transform by the means of FFT based on the following known relation:

F[ H[f(x)] ] = -i sgn(w) F[f(x)] (equation 7 of the reference paper list below) 

Where:

F[f(x)] is the Fourier transform of f(x),  

H[f(x)] is the Hilbert transform of f(x), and 

Sgn(w) = w / |w| = +1 for w>0, = 0 for w=0, = -1 for w<0. 

Firstly, the GX does forward FFT transform of the input channel. Three output channels are created (this is only for the none-array input channel case) and are put in a new created GDB named the input channel adding extension "_Freq". These three output channels will have the same name as the input channel but extension "_r" and "_i" for real and imaginary components of the transform, and "_w" for the wavenumber in radians/fiducial. (Note that the trend has been removed before FFT.)

Note that the output values are the real and imaginary components of the positive frequencies of the transform. Since we are dealing with the real-valued space domain problem, the negative part of the spectrum is simply the conjugate of the corresponding positive part, i.e h(-f) = [h(f)]*, and is not included in the output.

The fiducial number will be in cycles/fiducial. The wavenumber channel will be in radians/fiducial.

Then, the one-dimensional Hilbert transform operator –i sgn(w) is applied to the FFT transformed data.

Finally, the GX does the inverse FFT transform to obtain the Hilbert transform results into the output channel.

For the real data practice, it is suggested to remove trend line based on all data points (the default) before FFT process to prevent the discontinuity from the data two edges. The removed trend will be replaced back in the same manner as it removed after FFT.

For the real data practice, it is also suggested to expand the data 10% before FFT process to prevent the discontinuity from the data two ends. The GX will first extend data by the user required % points, then further extend to the number of the power of 2 for the FFT process. For instance, if the original data contains 60 points, then the values will be padded with 10%, or 6 points at the end, giving 66 points. This will then be extended to the next power of 2, or 128 points, to do the FFT.

The extended area will be interpolated by Maximum Entropy Prediction (MEP) method. MEP samples the original data points to determine its spectral content. It 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, the set of "remove mean value" trend line removal option and 0% expansion may obtain accurate results.

Reference

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