Back to SIOSEIS Examples.          Go to the list of seismic processes.          Go to SIOSEIS introduction.

Process XSTAR parameter MKREAL explained

         The Edgetech Xstar system's SGY output (pseudo SEG-Y) as complex numbers "in analytic form".   Reading Edgetech files and creating instantaneous amplitude (envelope) data are discussed elsewhere.   I don't understand this yet, so here are my notes.

         From Les Hatton's book "Seismic Data Processing", pg 25
Let U(z) be the Z-transform of time series u(t).
Let H(z) be the Z-transform of the Hilbert transformation filter.
Then the Hilbert transform is:
        V(z) = H(z) * U(z)
Define the analytic signal, or complex trace of U(z) as:
        A(z) = U(z) + iV(z)
Define the energy envelope as:
        Y(z) = SQRT( (conj(U(z)) * U(z)) + (conj(V(z)) * V(z)) )

Edgetech says their data are formed as
         Real(0), Imag(0), Real(1), Imag(1), ....., Real(1987, Imag(1987)
and the envelope as Sqrt(real*real + imag*imag)

         Normal seismic processes operate on REAL data, not COMPLEX data.   The initial solution to this problem was to simply decimate each trace by two which picks up the REALS and drops the IMAGINARIES.   Dan Lizaralde did this and then computed a new Hilbert transform and compared it to the imaginaries of the analytic trace.   They weren't the same.

         The Edgetech trace contains only the positive times from the FFT bringing the data from the frequency domain to the time domain.   Dan says:
Let A be the analytic signal, where A = (Ar,iAi)
     T be the real trace, where T = (Tr,iTi) = (Tr,0)
     F(A) is Fourier transform of A, which "has power only at real
           frequencies" because Edgetech threw the negatives away.
      F(A) = 2*F(Tr), f>0
      F(A)=F(Tr), f=0
      F(A) = 0, f<0
In order to get the true real trace:
      1) FFT back to the frequency domain. (2048 samples)
      2) Set: F(Tr) = .5 * F(Ar + i*Ai), for f>0
            F(T) = F(A), for F=0
           F(T) = .5*(FAr - i*FAi), for f<0
      3) FFT back to the time domain and only keep positive time.

Example 1 1500-7500Hz, 40ms pulse

Original envelope (instantaneous amplitude) plot
ping 2135, envelope, power density spectrum 0-5kHz plot       5-5kHz plot       5-3kHz plot
decimated ping 2135 (reals only) plot
decimated ping 2135, power density spectrum plot
Envelope of decimated data - plot      (See notes 1 and 2 below)
decimated ping 2135, envelope, power density spectrum 5-3kHz plot
ping 2135, mkreal yes plot
mkreal ping 2135, power density spectrum plot
Envelope of mkreal data - plot
mkreal ping 2135, envelope, power density spectrum plot


  1. The Edgetech trace scalar was applied.
  2. The trace was aliased by Edgetech. The sample interval of the reals in 100us (the SEG-Y sample interval is 50us), which means a Nyquist of 5000Hz. The data were recorded with a 40ms pulse which is a 1500-7500Hz. sweep frequency.


Example 2 - Dual transducer (xstar type 2), 1000-6000Hz, 50ms pulse

Plot of envelopes summed.
Plot of envelope of trace 1.
Plot of envelope of trace 2.
Plot of summed traces before envelope.