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.
Then:
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.