The Fourier transform, slowly

Processing Prerequisites

Learning objectives

  • State the Fourier transform as a shopping-list decomposition: any signal equals a sum of sinusoids
  • Move between time domain and frequency domain and read magnitude and phase spectra
  • Apply the convolution theorem: convolution in time is multiplication in frequency
  • Explain why processing lives in the frequency domain, and what the DFT and FFT actually are

If one theorem changed seismic processing more than any other, this is it: every signal can be written as a sum of sinusoids, and the Fourier transform tells you the weights. That is the whole idea. The rest is bookkeeping.

1. The continuous Fourier transform

For a continuous-time signal x(t)x(t), the Fourier transform is

X(omega);=;int_−inftyinftyx(t),e−iomegat,dtX(\\omega) \\;=\\; \\int\_{-\\infty}^{\\infty} x(t)\\, e^{-i\\omega t}\\, dt

and the inverse transform is

x(t);=;frac12piint_−inftyinftyX(omega),eiomegat,domegax(t) \\;=\\; \\frac{1}{2\\pi}\\int\_{-\\infty}^{\\infty} X(\\omega)\\, e^{i\\omega t}\\, d\\omega

The inverse formula is the punchline. It says: to reconstruct x(t)x(t), take a complex sinusoid eiomegate^{i\\omega t} at every frequency, weight it by X(omega)X(\\omega), and add them all up. The signal is a weighted sum of rotating phasors; we proved in Section 0.2 that these are cosines when projected onto the real axis. Here omega=2pif\\omega = 2\\pi f, and the figure below works in hertz, ff.

2. Magnitude and phase

The transform X(omega)X(\\omega) is complex. Unpack it:

X(omega)=∣X(omega)∣,eiangleX(omega)X(\\omega) = |X(\\omega)|\\, e^{i\\angle X(\\omega)}

The magnitude ∣X(omega)∣|X(\\omega)| is how much of the sinusoid at frequency omega\\omega the signal contains. The phase angleX(omega)\\angle X(\\omega) is how that sinusoid is timed: where its peak lands. Both are needed to reconstruct x(t)x(t). In the figure below you build a signal from five cosines, read their amplitudes back off the transform, and then change only their timing.

Time domain → frequency domaintime10 Hz25 Hzfrequency050 HzFFT decomposes any signal into its constituent sinusoids

The stems in (c) read back the recipe exactly: with the square wave’s amplitudes they stand at 1.00, 0.33, 0.20, 0.14 and 0.11, and every other bin is empty. That is what ∣X(f)∣|X(f)| is, the shopping list. But the list does not fix the shape. The same five amplitudes peak at 1.32 with the mixed phases, at 0.92 as sines (the first five terms of a square wave, with a Gibbs overshoot beside each jump), and at 1.78 with every phase zero, when all five crests meet at one instant. Not one stem in (c) moves while the phases change. The transform records how much of each sinusoid there is and when each one peaks, and it takes both to rebuild x(t)x(t).

3. The discrete Fourier transform (DFT)

Real seismic is sampled, so we need the discrete version. For an NN-sample sequence x\[n\]:

X\[k\] \\;=\\; \\sum\_{n=0}^{N-1} x\[n\]\\, e^{-i 2\\pi k n / N},\\qquad k=0,1,\\dots,N-1

Each X\[k\] is the complex amplitude of the sinusoid at frequency f_k=kf_s/Nf\_k = k f\_s / N, where f_sf\_s is the sampling rate. The figure evaluates exactly this sum, with N=256N = 256 and f_s=256f\_s = 256 Hz, so the bins are 1 Hz apart, and plots 2|X\[k\]|/N, which equals a cosine’s amplitude when its frequency falls on a bin. Move the 10 Hz cosine to 10.5 Hz and that stops being true: 10.5 cycles do not fit the 1 s window, and a lone cosine of amplitude 1 with its phase at 0° reads 0.62 and 0.65 in bins 10 and 11 (the order swaps with the phase), with a skirt of leakage over the rest.

Done naively, the DFT takes O(N2)O(N^2) operations. For a 3D seismic volume with NN in the millions, that is prohibitive. The Fast Fourier Transform (FFT) reorganizes the same sum into O(NlogN)O(N \\log N) operations by recursively splitting even-indexed and odd-indexed samples. An FFT on a million samples takes milliseconds; a naive DFT would take minutes. Every processing system uses the FFT: the DFT equation is what gets evaluated, but it is evaluated the fast way.

4. The convolution theorem

(x∗h)(t)  ↔F  X(ω)⋅H(ω)(x \ast h)(t) \;\xleftrightarrow{\mathcal{F}}\; X(\omega)\cdot H(\omega)

Convolution in time is multiplication in frequency. This is the theorem that makes fast seismic processing possible.

Why does it matter? Filtering a seismic line of 10710^7 samples with a 1000-sample filter in the time domain costs about 101010^{10} multiply-accumulates. Transform both, multiply element-wise, transform back: the cost drops to O(NlogN)O(N \\log N), about 10910^9 operations, roughly ten times cheaper, and the advantage grows with the filter’s length. The crossover is a filter of a few tens of samples. Every f-k filter, every spectral whitening step and every FFT-based migration lives here.

Set every phase to −90° for the square wave, switch on the low-pass in the figure and set f_hf\_h to 8 Hz. Multiplying the spectrum by H(f)H(f) removes the 10, 14 and 18 Hz stems and leaves the 2 and 6 Hz ones; the sharp jumps of the square wave in (b) come out as slow ramps, the same result a convolution in time would give, and yy keeps 94 % of the power. The phases in (d) do not move, because this H(f)H(f) is real: a zero-phase filter.

5. Why processing lives in the frequency domain

  • Filtering is multiplication. A band-pass filter is a window in the frequency domain: set H(omega)H(\\omega) to 1 in the passband and 0 outside, with tapered edges so the output does not ring, then multiply.
  • Linear systems are diagonal in frequency. An LTI filter maps each frequency to itself (scaled). In time it is a full convolution; in frequency it is a scalar-per-frequency multiplication. This diagonalization is why frequency analysis is so clarifying.
  • Bandwidth sets resolution. Your ability to separate nearby reflectors is set by the bandwidth of the wavelet: more bandwidth means a shorter wavelet in time, and thinner beds resolved.
  • Noise and signal often differ in frequency content. Ground roll is low-frequency; swell noise is very-low-frequency; high-frequency ambient can be a broad hiss. Deciding in which band your signal lives is half of noise attenuation.

6. Three facts that look small and aren’t

  • Parseval: total energy in time equals total energy in frequency: \\sum\_n |x\[n\]|^2 = \\tfrac{1}{N}\\sum\_k |X\[k\]|^2. Energy is not created or destroyed by transforming.
  • Shift in time is a phase ramp in frequency: circularly shifting x\[n\] by n_0n\_0 samples multiplies X\[k\] by e−i2pikn_0/Ne^{-i 2\\pi k n\_0 / N}. The magnitude is unchanged; only the phase changes, linearly with frequency. Slide t_st\_s in the figure to +0.10 s: (c) stands still, (d) tilts by −36° per hertz, and the phases give the delay back as 0.100 s. Phase-shift migration uses the same idea to step a wavefield down in depth.
  • Real signals have conjugate-symmetric spectra: X\[-k\] = X^{\*}\[k\]. So for a real trace the negative-frequency half is redundant: the N/2+1N/2+1 bins from 0 to Nyquist carry all the information.
The one sentence to remember

The Fourier transform rewrites your signal as a weighted sum of sinusoids; the convolution theorem turns every time-domain filter into a pointwise frequency multiplication; the FFT makes both fast enough to run at production scale.

Where this goes next

Section 0.5 nails down a practical constraint: sampling. When we discretize a continuous signal we necessarily lose information, unless we sample fast enough. Everything you just learned about the frequency domain comes with a hard speed limit called the Nyquist frequency.

References

  • Bracewell, R. N. (1999). The Fourier Transform and Its Applications (3rd ed.). McGraw-Hill.
  • Oppenheim, A. V., Schafer, R. W. (2009). Discrete-Time Signal Processing (3rd ed.). Prentice Hall.
  • Claerbout, J. F. (1976). Fundamentals of Geophysical Data Processing. McGraw-Hill.
  • Yilmaz, Ö. (2001). Seismic Data Analysis (2 vols.). SEG.

This page is prerendered for SEO and accessibility. The interactive widgets above hydrate on JavaScript load.