[OpendTect_Developers] About Hilbert transform.

Nageswara Rao nageswara.rao at dgbes.com
Wed Sep 22 13:03:30 CEST 2010


Hi all,

This a small post about Hilbert transform.

Hilbert transform is a type of filtering that passes the amplitudes of
the spectral components unchanged,but alters the phases of the spectral
components by 90 degrees. To explain mathematically, a complex seismic
trace consisting of real part x(t) which is actual seismic trace, and an
imaginary part y(t), which is a mathematical function calculated from
real part by Hilbert transform. When the real and imaginary parts are
added in a vector scene the resultant is the complex trace. This is
shown in diagram.
                                     c(t) = x(t) + iy(t)                
y(t) is Hilbert transform of x(t).

>From this we can conclude that, the signal and its Hilbert transform are
orthogonal. Hilbert transform have identical energy because phase shift
do not change energy of the signal.

This transform is implemented in 'class HilbertTransform'
(Algo/hilberttransform.h) which is under /Algo in OD4.1. The values of
Hilbert filter are calculated in 'makeHilbWindow()' function which is in
same class HilbertTransform.The graphical representation of the filter
is shown in the diagram.

The steps to create a complex signal are as follows:

    * Select the signal
    * Check whether selected signal size is less than HilbertWindow size
      ( 61 samples ).
    * If our signal is having lesser samples than the HilbertWindow then
      zeros are added ( which is known as padding ) to the signal  till
      it is equal to HilbertWindow size. This is implemented in
      'computeData()' function which is in 'class Hilbert
      (/Attributes/hilbertattrib.h).
    * If the selected signal is having more samples than the
      HilbertWindow size, padding is not required.
    * The selected signal convolves with Hilbert filter to form a new
      signal which has 90 degree phase rotation with the selected
      signal. 'GenericConvolve() function involves in the creation of
      new signal.
    * While calculating complex signal,shift of the selected signal also
      needs to be calculated.If in case we consider a sub signal of
      selected signal having 'n' samples, and sub signal starts from
      sample 10 then shift becomes 10. This is shown in attached diagram.

   Any comments and suggestions are welcome.

with regards
Nageswara Rao
dGB Earth Sciences,
304, Gateway plaza,
Hiranandani gardens,Powai
Mumbai-400076.

Ph: +91 22 25704984
mail: nageswara.rao at dgbes.com



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opendtect.org/pipermail/developers/attachments/20100922/bb9653d8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hilbert-withSlides.ppt
Type: application/vnd.ms-powerpoint
Size: 179200 bytes
Desc: not available
URL: <http://lists.opendtect.org/pipermail/developers/attachments/20100922/bb9653d8/attachment.ppt>


More information about the Developers mailing list