Reflection Processing Using Matlab PDF
Reflection Processing Using Matlab PDF
Series
Series
ISSN:
ISSN:
ISSN:
1932-1236
1932-1236
1932-1236
MM
MOUSA • AL-SHUHAIL
MOUSA •• AL-SHUHAIL
MOUSA
SSSYNTHESIS
YNTHESISL
YNTHESIS LLECTURES
ECTURES ONSSS
ECTURESON
ON IGNALPP
IGNAL
IGNAL PROCESSING
ROCESSING
ROCESSING
&C
& C Mor
Mor
Morgan
gan
gan&
&&Cl
Cl
Claypool
aypool
aypoolPublishers
Publishers
Publishers
AL-SHUHAIL
Series
Series
Series
Editor:
Editor:
Editor:
José
José
José
Moura,
Moura,
Moura,
Carnegie
Carnegie
Carnegie
Mellon
Mellon
Mellon
University
University
University
Processing
Processing
Processingof
of
ofSeismic
Seismic
SeismicReflection
Reflection
ReflectionData
Data
Data Processing
Processingof
ofSeismic
Seismic
Using
Using
UsingMATLAB™
MATLAB™
MATLAB™
Ref
Reflection
lectionData
Data
Using
UsingMATLAB™
MATLAB™
King
King
King
Fahd
Fahd
Fahd
University
University
University
ofofof
Petroleum
Petroleum
Petroleum
&&&
Minerals
Minerals
Minerals
This
This
Thisshort
short
short
book
book
bookisisfor
isfor
for
students,
students,
students, professors
professors
professors and
and
andprofessionals
professionals
professionalsinterested
interested
interestedininin
signal
signal
signal
processing
processing
processing ofofof
seismic
seismic
seismicdata
data
data
OF SEISMIC
using
using
usingMATLAB.
MATLAB.
MATLAB. TheThe
The step-by-step
step-by-step
step-by-step demo
demo
demo ofofof
the
the
the
full
full
full
reflection
reflection
reflection seismic
seismic
seismicdata
data
dataprocessing
processing
processing workflow
workflow
workflow using
using
using
a aa
SEISMIC REFLECTTION
complete
complete
complete real
real
real
seismic
seismic
seismic data
data
data
setset
set
places
places
places
itself
itself
itself
asasas
a avery
avery
veryuseful
useful
useful
feature
feature
featureofofof
thethe
the
book.
book.
book.This
This
This
isisespecially
isespecially
especially true
true
true
when
when
when
students
students
studentsare
are
are
performing
performing
performing their
their
their
projects,
projects,
projects,
andand
andwhen
when
when professors
professors
professorsandand
and
researchers
researchers
researchers areare
are
testing
testing
testing their
their
their
new
new
new developed
developed
developed
REFLECTTION DATA
algorithms
algorithms
algorithms ininMATLAB
inMATLAB
MATLAB forfor
for
processing
processing
processingseismic
seismic
seismicdata.
data.
data.
The
The
The
book
book
book provides
provides
providesthe
the
the
basic
basic
basic
seismic
seismic
seismic and
and
andsignal
signal
signalprocessing
processing
processing
theory
theory
theoryrequired
required
required for
for
foreach
each
each
chapter
chapter
chapterand
and
and
shows
shows
showshowhow
how tototo
process
process
process
thethe
the
data
data
data
from
from
from raw
raw
rawfield
field
field
records
records
recordstototo
a afinal
afinal
final
image
image
image
ofofof
thethe
the
subsurface
subsurface
subsurface allall
all
using
using
usingMATLAB.
MATLAB.
MATLAB. TheThe
TheMATLAB
MATLAB
MATLAB codes
codes
codesandand
and
seismic
seismic
seismic data
data
data
can
can
can
bebe
be
downloaded
downloaded
downloaded atatat
http://www.morganclaypool.com/page/mousa.
http://www.morganclaypool.com/page/mousa.
http://www.morganclaypool.com/page/mousa.
Wail
Wail
WailA.
A.
A.Mousa
Mousa
Mousa
DATA USING
Abdullatif
Abdullatif
AbdullatifA.
A.
A.Al-Shuhail
Al-Shuhail
Al-Shuhail
USING MATLAB™
MATLAB™
About
About
About
SYNTHESIs
SYNTHESIs
SYNTHESIs
This
This
Thisvolume
volume
volumeisisaisaprinted
aprinted
printed
version
version
version
ofofof
a awork
awork
workthat
that
that
appears
appears
appears
ininin
the
the
the
Synthesis
Synthesis
Synthesis
GAN &CL
topics,
topics,
topics,
published
published
published quickly,
quickly,
quickly,
inindigital
indigital
digital
and
and
and
print
print
print
formats.
formats.
formats.
For
For
For
more
more
moreinformation
information
information
visit
visit
visit
www.morganclaypool.com
www.morganclaypool.com
www.morganclaypool.com
&CL AYPOOL
ISBN:
ISBN:
ISBN:
978-1-60845-792-2
978-1-60845-792-2
978-1-60845-792-2 SSSYNTHESIS
YNTHESISL
YNTHESIS LLECTURES
ECTURES ONSSS
ECTURESON
ON IGNALPP
IGNAL
IGNAL PROCESSING
ROCESSING
ROCESSING
&&
&
AYPOOL
Mor
Mor
Morgan
gan
gan Cl
Cl
Claypool
aypool
aypoolPublishers
Publishers
Publishers 90000
90000
90000
wwwwww.wm
. .mm
o orogr rgaganancncl cal layaypypopoooolo.l cl. .cocom
omm
9 9781608
9781608
781608
457922
457922
457922
José
José
JoséMoura,
Moura,
Moura,Series
Series
Series
Editor
Editor
Editor
Processing of
Seismic Reflection Data
Using MATLAB™
Synthesis Lectures on Signal
Processing
Editor
José Moura, Carnegie Mellon University
Synthesis Lectures in Signal Processing will publish 50- to 100-page books on topics of interest to
signal processing engineers and researchers. The Lectures exploit in detail a focused topic. They
can be at different levels of exposition—from a basic introductory tutorial to an advanced
monograph—depending on the subject and the goals of the author. Over time, the Lectures will
provide a comprehensive treatment of signal processing. Because of its format, the Lectures will
also provide current coverage of signal processing, and existing Lectures will be updated by authors
when justified.
Lectures in Signal Processing are open to all relevant areas in signal processing. They will cover
theory and theoretical methods, algorithms, performance analysis, and applications. Some Lectures
will provide a new look at a well established area or problem, while others will venture into a brand
new topic in signal processing. By careful reviewing the manuscripts we will strive for quality both
in the Lectures’ contents and exposition.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in
any form or by any means—electronic, mechanical, photocopy, recording, or any other except for brief quotations in
printed reviews, without the prior permission of the publisher.
DOI 10.2200/S00384ED1V01Y201109SPR010
Lecture #10
Series Editor: José Moura, Carnegie Mellon University
Series ISSN
Synthesis Lectures on Signal Processing
Print 1932-1236 Electronic 1932-1694
Processing of
Seismic Reflection Data
Using MATLAB™
M
&C Morgan & cLaypool publishers
ABSTRACT
This short book is for students, professors and professionals interested in signal processing of seismic
data using MATLAB. The step-by-step demo of the full reflection seismic data processing workflow
using a complete real seismic data set places itself as a very useful feature of the book.This is especially
true when students are performing their projects, and when professors and researchers are testing
their new developed algorithms in MATLAB for processing seismic data. The book provides the
basic seismic and signal processing theory required for each chapter and shows how to process the
data from raw field records to a final image of the subsurface all using MATLAB. The MATLAB
codes and seismic data can be downloaded at http://www.morganclaypool.com/page/mousa.
KEYWORDS
seismic data, amplitude correction, seismic noise attenuation, spiking deconvolution,
static correction, migration
To my dearly beloved father, mother, wife, and children, W.M.
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
5 Seismic Deconvolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 The Seismic Convolutional Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3 Spiking Deconvolution as a Filtering Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.4 Spiking Deconvolution Using Wiener Optimum Filters . . . . . . . . . . . . . . . . . . . . . 32
5.5 The Trace-Wavelet Relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5.1 Amplitude Spectra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.5.2 Autocorrelations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.6 Spiking Deconvolution in Practice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.6.1 Autocorrelation Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.6.2 Filter Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.6.3 Percent Prewhitening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.6.4 Spiking Deconvolution of our Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.7 Computer Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.8 Useful MATLAB Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7 Static Corrections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.1 Elevation Static Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.2 Residual Static Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.2.1 Uphole Surveys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.2.2 Refraction Statics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.2.3 Surface-Consistent Residual Static Correction Method . . . . . . . . . . . . . . . 57
7.3 Useful MATLAB Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
xi
8 Seismic Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2 Huygens’ Principle and Basic Migration Principles . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.3 Migration Kinds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.4 Migration Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.4.1 Post-stack Time Migration Using the Stolt f − k Migration . . . . . . . . . . 67
8.5 Useful MATLAB Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Authors’ Biographies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Preface
This book aims to provide students and interested experts from the DSP community with the
necessary industrial background of seismic data processing using MATLAB, starting from loading
the data, displaying, quality control of the data until obtaining a seismic image. We decided to
write it after offering and teaching various related courses, for several years, in both the Electrical
Engineering and Earth Sciences Departments at King Fahd University of Petroleum & Minerals
(KFUPM). We hope that the book will motivate students to conduct research in multidisciplinary
areas and assist DSP experts in further developing advanced algorithms for processing seismic data.
We have written most of the book MATLAB’s functions and m-files and used few MATLAB
functions from the available GNU seismic MATLAB codes provided by the Signal Analysis and
Imaging Group, Department of Physics, University of Alberta, Canada. Although this book is written
to be self contained, there exist many useful MATLAB tutorials on the internet in addition to the
Mathworks documentation for MATLAB, which will benefit the interested reader in understanding
the written m-files and M-functions. Nevertheless, as far as this book is concerned, it is sufficient
for the reader to know the basics of using and programming in MATLAB. The readers may enjoy
the seismic data and the book MATLAB codes by downloading them following the link http://
www.morganclaypool.com/page/mousa.
In Chapter 1, we provide the reader with an overview of seismic data processing. Then, in
Chapter 2, we examine the two-dimensional (2-D) real seismic data set and extract various useful
processing information and data for the proceeding chapters. Chapter 3, some commonly used
quality control techniques in order to correct for amplitude losses in real seismic data sets. Chapter 4
explains what the main signals are that we are looking for and how to analyze the data in the
spectrum domain. Frequency filtering to attenuate ground roll noise contaminating our real data is
also explained in the same chapter. In Chapter 5, we present the seismic convolution model and how
we can apply deconvolution to enhance the vertical resolution of the data. After that, in Chapter 6,
we carry the seismic data processing forward by sorting the data from shot gathers into common
mid-point gathers, picking seismic stacking velocities, applying normal moveout (NMO) correction
and, finally, stacking the data. To further enhance the seismic data, we then apply in Chapter 7
residual static correction to the NMO-corrected data and we stack the data again. We then apply
seismic migration to enhance the horizontal resolution of our data in Chapter 8. Finally, we close
with some concluding remarks in Chapter 9.
CHAPTER 1
Seismic signals are generated by a source (transmitter), such as an explosion, which then
propagate through earth layers. Some of these signals will be reflected, refracted and lost due to
attenuation). At the surface, the reflected signals are then recorded by a receiver. The strength of
the reflected signal depends on the impedance contrast between adjacent layers. In summary, a
seismic survey analysis scenario involves collection of data by an array of receivers (geophones for
land and hydrophones for marine), transmission over a narrow band channel, and storage of data
for processing, and interpretation [1, 2, 4].
A seismic trace represents a combined response of a layered ground and a recording system
to a seismic source wavelet. Any display of a collection of one or more seismic traces is termed a
seismogram. Assuming that the pulse shape remains unchanged as it propagates through such a layered
ground, the resultant seismic trace may be regarded as the convolution of the input impulse with a
time series known as a reflectivity function, which is composed of spikes (delta functions). Each spike
has an amplitude related to the reflection coefficient at a layer boundary and a traveltime1 equivalent
to the two-way reflection time from the surface to that boundary. Furthermore, the reflection time
series represents the impulse response of the layered ground, which is basically the output for a
spike input. Since the source wavelet has a finite length, individual reflections from closely-spaced
1Traveltime is the time difference between zero time and the arrival time of a seismic event. It can be a one-way time such as for
direct waves or two-way time such as for reflected waves.
2 1. SEISMIC DATA PROCESSING: A QUICK OVERVIEW
Reflectivity Geological
function section
Noise
A noisy seismogram
Input source A seismogram
wavelet or pulse or
a seismic trace
Figure 1.1: Convolution seismic data model. A seismic pulse is convolved with the reflection coefficient
log (reflectivity function) to get a seismic trace. The reflection coefficient log is related to the geological
section of the subsurface through the reflection coefficient of each geological boundary and the two-way
travel time.
boundaries may overlap in time on the resultant seismogram (seismic section). Figure 1.1 represents
a typical seismic convolution model [1].
Due to many factors, unwanted waves such as surface waves, corrupt the seismic records
with noise (unwanted energy). This unwanted energy includes random or incoherent noise such
as instrument signals and coherent noise like the ground roll noise. A typical example for a noisy
seismic section is shown in Figure 1.2. As a consequence, of the above effects, seismic traces generally
have a complex appearance and reflection events are often not recognized without the application
of suitable processing techniques. The purpose of processing such data can, in general, be viewed
as the process of attenuating noise and then determining the input pulse and removing that to give
the reflectivity function, which ultimately allows the determination of the acoustic impedances (or
related properties) of the subsurface layers.
Figure 1.2: A typical example for a seismic section (http://cwp.mines.edu). The horizontal axis
represents the offset of each seismic receiver (recorder) from the source where each records a trace with
respect to the two-way travel time (vertical axis). Clearly, this section contains various noise types.
the same CMP define a CMP gather. The CMP gather is important for seismic data processing
because the subsurface velocity can be derived using it. In general, the reflection seismic energy
is very weak and it is essential to increase the signal-to-noise ratio (SNR) of most data. Once
the velocity is known, the traces in CMP gathers can be corrected for NMO, which is basically a
way of correcting for time differences which occur due to offset2 in a CMP gather, i.e., to get the
equivalent of a zero-offset trace. This implies that all traces will have the same reflected pulses at the
same time, but with different random and coherent noise. So combining all the traces in a CMP
gather will average out noise and the SNR increases. This process is known as stacking.
In general, the main objectives of seismic data processing are to improve the seismic resolution
and increase the SNR of the data. These objectives are achieved through three primary stages. In
their usual order of application, they are:
In addition to these primary stages, secondary processes may be implemented at certain stages
to condition the data and improve the performance of these three processes. Figure 1.3 shows a
conventional seismic data processing flow [2]. In the following section, we elaborate on the processing
steps in this figure.
Preprocessing
Demultiplexing
Reformating
Editing
Geometrical spreading correction
Setup of field geometry
Application of field statics
Filtering
Deconvolution
Common Midpoint Sorting
Velocity analysis
Loop
Residual statics
Normal move-out correction
Stacking
Post-stack processing
Migration
1. Preprocessing: This process involves a series of steps to condition the data and prepare it for
further quality control and processing including:
• demultiplexing
• reformatting
• trace editing
• gain application
• setup of field geometry
1.2. SEISMIC DATA PROCESSING 5
• application of field statics
2. Filtering is used to attenuate components of the seismic signals based on some measurable
property. It is an important step in order to proceed further with the other seismic data
processing steps that will help geophysicists to better analyze and interpret the acquired data.
3. Deconvolution is performed along the time axis to increase vertical resolution by compressing
the source wavelet to approximately a spike and attenuating noise and unwanted coherent
energy such as multi-path signals.
4. CMP sorting transforms the data from shot-receiver (shot gather) to midpoint-offset (CMP
gather) coordinates using the field geometry information.
5. Velocity analysis is performed on selected CMP gathers to estimate the stacking, root-mean
squared (RMS), or NMO velocities to each reflector. Velocities are interpolated between the
analyzed CMPs.
6. Residual static correction is usually needed for most land data. It corrects for lateral variations
in the velocity and thickness of the weathering layer.
7. NMO correction and muting: The stacking velocities are used to flatten the reflections in each
CMP gather (NMO correction). Muting zeros out the parts of NMO-corrected traces that
have been excessively stretched due to NMO correction.
8. Stacking: The NMO-corrected and muted traces in each CMP gather are summed over the
offset (stacked)
√to produce a single trace. Stacking M traces in a CMP increases the SNR of
this CMP by M.
9. Poststack processing includes time-variant band-pass filtering, dip filtering, and other processes
to enhance the stacked section.
10. Migration: Dipping reflections are moved to their true subsurface positions and diffractions
are collapsed by migrating the stacked section.
In the remaining parts of this book, we are going to practically explore most of the above processing
steps along with application to a typical real seismic data set. Note that the above steps are general and
depending on the data type, land or marine, the accompanying noise types, and/or the acquisition
conditions, the above processing steps may vary as well.
7
CHAPTER 2
• Geometry has already been set up and recorded in the trace headers.
• Uphole times at shot locations have been recorded in the trace headers.
• An 8-64-Hz bandpass filter has been applied to the data in the field.
1 >> load B o o k _ S e i s m i c _ D a t a . m a t
2 >> whos
3 Name Size Bytes Class Attributes
4
5 D 1501 x594 7132752 double
6 H 1 x594 3303008 struct
1 >> o f f s e t =[ H . o f f s e t ];
2 >> whos
3 Name Size Bytes Class Attributes
4
5 D 1501 x594 7132752 double
6 H 1 x594 3303008 struct
7 offset 1 x594 4752 double
The reader can explore more fields in a similar way. We have written a MATLAB function called
extracting_geometry.m which can be used to get useful geometrical information such as the
source coordinates sx and sy , the receiver coordinates gx and gy , the source elevations gz , etc. The
2.3. EXAMINING THE DATA SET 9
following MATLAB code shows an example of how one can extract certain geometrical acquisition
parameters:
These are different geometrical variables obtained from the seismic header structure H. We then can
use such variables in the following code:
1 figure , stem ( s h o t _ g a t h e r s , n u m _ t r a c e _ p e r _ s g )
2 x l a b e l ( ' S h o t g a t h e r n u m b e r s ' , ' F o n t S i z e ' ,14)
3 y l a b e l ( ' N u m b e r of t r a c e s / s h o t g a t h e r ' , ' F o n t S i z e ' ,14)
4 axis ([0 , max ( s h o t _ g a t h e r s ) +1 ,0 , max ( n u m _ t r a c e _ p e r _ s g ) +2])
5 set ( gca , ' Y M i n o r G r i d ' , ' on ' )
Figure 2.1 shows different useful plots all of which are obtained from the seismic header
variable H. A final example is plotting the so-called seismic stacking chart (see Figure 2.2) using
the MATLAB function stack_chart.m where the vertical axis shows the shot number and the
horizontal axis shows the shot and receiver x-coordinate (we will discuss stacking charts in more
details in chapter 6):
The reader may enjoy more plots when running the m-files written for this chapter.
30
20
15
10
0
0 2 4 6 8 10 12 14 16 18
Shot gather numbers
(a)
6 6
x 10 x 10
2.85 2.85
2.8 2.8
2.75
2.75
2.7
Receivers elevation (ft)
Sources elevation (ft)
2.7
2.65
2.65
2.6
2.6
2.55
2.55
2.5
2.5
2.45
2.45 2.4
2.4 2.35
0 100 200 300 400 500 600 0 100 200 300 400 500 600
Number of traces Number of traces
(b) (c)
Figure 2.1: Various geometrical information plots: (a) the number of traces per shot, (b) the source
elevation profile for each trace and (c) the receiver elevation per seismic trace.
2. The variable area display: shades the area under the wiggle trace to make coherent seismic
events1 evident.
3. The variable density display: represents amplitude values by the intensity of shades of gray
(and sometimes in colors).
1 A seismic event is the arrival of a new seismic wave, usually indicated by a phase change and an increase in amplitude on a seismic
record. It may be a reflection, refraction, diffraction, surface wave, or random noise.
2.3. EXAMINING THE DATA SET 11
6RXUFHV
5HFHLYHUV
/LQHQXPEHU
9
8
7
6
5
4
3
2
ï
[ïD[LVORFDWLRQVIW
The following MATLAB script uses the written function extracting_shots.m to extract, for
example, shot gather number 8. Then this shot gather is displayed using, respectively, the variable
area display scheme and variable density display scheme in both gray and colors (see Figure 2.3):
1 load B o o k _ S e i s m i c _ D a t a . m a t
2 s h o t _ n u m =8;
3 p =0;
4 [ Dshot , dt , dx , t , o f f s e t ]= e x t r a c t i n g _ s h o t s ( D , H , shot_num , p ) ;
5 s c a l e =1;
6 m w i g b ( Dshot , scale , offset , t )
7 x l a b e l ( ' O f f s e t ( ft ) ' , ' F o n t S i z e ' ,14)
8 y l a b e l ( ' T i m e ( s ) ' , ' F o n t S i z e ' ,14)
9 figure , s i m a g e _ d i s p l a y ( Dshot , offset , t ,0)
10 x l a b e l ( ' O f f s e t ( ft ) ' , ' F o n t S i z e ' ,14)
11 y l a b e l ( ' T i m e ( s ) ' , ' F o n t S i z e ' ,14)
12 figure , s i m a g e _ d i s p l a y ( Dshot , offset , t ,1)
13 x l a b e l ( ' O f f s e t ( ft ) ' , ' F o n t S i z e ' ,14)
14 y l a b e l ( ' T i m e ( s ) ' , ' F o n t S i z e ' ,14)
Also, if we display shot gather number 16 (see Figure 2.4), we notice that trace number 31
amplitudes are increasing as time increases. This may require editing by muting this trace since it
will affect the subsequent processing steps. In chapter 3, we shed more light on this issue. The reader
may as well be interested in displaying a group of seismic shot gathers concatenated together using
the same function extracting_shots.m. For example, one can extract shot gathers number 4-6
12 2. EXAMINATION OF A REAL SEISMIC DATA SET
Figure 2.3: Various displays for seismic data shot gather number 8: (a) variable area display, (b) gray-
scaled variable density display and (c) colored variable density display. The color bars in (b) and (c) refers
to the amplitude dynamic range of the data.
where he/she must provide shot_num=4:6; in line 6 of the above script. Figure 2.5 shows these
extracted shot gathers in their variable area display. The provided m-files illustrates more examples.
Figure 2.4: Various displays for seismic data similar to those in Figure 2.3 but for shot gather number
16. Clearly, trace number 31 (at offset 0) requires muting (replacing it by zeros) as will be discussed later
in chapter 3.
8. Stacking
2. Examine the seismic data header information and obtain the following information: common-
depth-point (CDP) values, number of time samples nt, spatial sampling interval dx and time
sampling interval dt.
3. Display shot gathers 12–15 (as the case in Figure 2.5) using the wiggle plotting, gray-scaled
image plotting, colored image plotting, and wiggle on top of colored plotting. Comment on
the shot gather amplitudes. What do you notice from a trace to another?
14 2. EXAMINATION OF A REAL SEISMIC DATA SET
CHAPTER 3
1. Demultiplexing: The data is transposed from the recording mode, where each record contains
the same time sample from all receivers, to the trace mode where each record contains all time
samples from one receiver. This is usually done in the field.
2. Reformatting: The data is converted from one seismic digital format (e.g., SEG-Y ) to another
format that is convenient to the processing software and used throughout the processing flow
(e.g., MATLAB).
3. Setup of field geometry: The geometry of the field is written into the data (trace headers) in
order to associate each trace with its respective shot, offset, channel, and CMP.
4. Trace editing: During this step, bad traces, or parts of traces, are muted (zeroed) or killed
(deleted) from the data and polarity problems are fixed.
5. Gain application: Amplitude corrections are applied to account for amplitude losses due to
spherical divergence and absorption.
6. Application of field statics: In land surveys, elevation statics are applied to bring the sources
and receivers to a common datum level. This step can be delayed until the static correction
process where better near-surface velocities might be available.
Steps 1-3 have already been taken care of for our data set while we are going to work on step 6 later
on in Chapter 7. In the rest of this chapter, we will perform a simple trace editing step on the data
set and then focus the discussion on gain application to our seismic data.
16 3. QUALITY CONTROL OF REAL SEISMIC DATA
(a) (b)
Figure 3.1: Seismic data shot gather number 16: (a) before and (b) after trace editing by muting.
where f (t) is the seismic trace amplitude to be corrected, t is the time independent variable, and α
is the power of time which controls the change in the amplitude of f (t). Another commonly used
function is the exponential gain function correction:
where β is the parameter which controls the exponential function. The following MATLAB m-file
uses the written function iac.m to apply independent amplitude correction using Equation 3.1 (the
reader can also select to use the option T=1 for applying Equation 3.2) on shot gather 8:
1 s h o t _ n u m =8;
2 p =0;
3 [ Dshot , dt , dx , t , o f f s e t ]= e x t r a c t i n g _ s h o t s ( D , H , shot_num , p ) ;
4 pow =2;
5 T =0;
6 Dg = iac ( Dshot , t , pow , T ) ;
We can clearly see the amplitudes enhancements gained on this shot gather in Figure 3.2(b).
We can further analyze the gain increase after the corrections by plotting the average trace amplitudes
envelope in dB for the both shot gathers of Figure 3.2. Figure 3.2 shows such plots not only for
the average trace (a) but also for trace number 33, both are generated using our written MATLAB
function seis_env_dB.m as follows:
18 3. QUALITY CONTROL OF REAL SEISMIC DATA
(a) (b)
Figure 3.2: Seismic data shot gather number 8: (a) before and (b) after applying amplitude correction
gain method of Equation 3.1.
1 tnum =33;
2 s e i s _ e n v _ d B ( Dshot , Dg , t , tnum )
3 s e i s _ e n v _ d B ( Dshot , Dg , t )
The data-dependent scheme, on the other hand, relies on multiplying each time sample by a
scalar derived from a window of data around the sample. Such a technique is known as automatic
gain control (AGC). Some of the famous AGC techniques include:
• RMS amplitude AGC: This method requires segmenting each trace into fixed time gates and
then:
0
0
Envelope (dB) of the average trace
ï
ï
ï
ï
ï
ï
ï
ï
Figure 3.3: The amplitude envelope gain in dB for (a) the average trace and (b) trace 33 both of Figure 3.2.
We use the MATLAB function AGCgain.m to apply AGC on shot gather 8 using the RMS AGC
(Figure 3.4(a)) and the instantaneous AGC (Figure 3.4(b)). We generated these results via the
following MATLAB scripts:
1 a g c _ g a t e =0 .5 ;
2 T =1;
3 Dg = A G C g a i n ( Dshot , dt , agc_gate , T ) ;
1 a g c _ g a t e =0 .5 ;
2 T =2;
3 Dg = A G C g a i n ( Dshot , dt , agc_gate , T ) ;
Note the amplitude envelope gain plots for the AGC’ed data in Figure 3.5. A question
that may come into the readers’ mind is: why do the AGC amplitude correction results show the
triangular shapes of high amplitudes and amplitude gaps at the top of the figures? The answer
is that these high-amplitude triangles are the result of noise that fills the whole AGC window
(0.5 s in this case) before the arrival of seismic signals and dividing by their RMS value or
absolute mean amplifies this low-amplitude noise. The amplitude gaps are due to the fact that the
20 3. QUALITY CONTROL OF REAL SEISMIC DATA
(a) (b)
Figure 3.4: Seismic data shot gather number 8 after applying the AGC using the (a) RMS and (b) in-
stantaneous based methods.
AGC window at these time shifts contains both low-amplitude noise and high-amplitude seismic
signal and dividing by their RMS value or absolute mean amplifies the signal and attenuates the noise.
A final word of caution is that we must be careful when applying amplitude corrections
techniques since they may destroy the signals character. At this preprocessing stage, Equation 3.1
with α = 2, which is known as the t 2 -correction, is used for geometrical spreading correction [6].
2. With α, β = 1.8, 2.2 and 3.4, use both the multiplication by a power of time and the expo-
nential gain function corrections on the selected shot gathers. Similarly, use the RMS AGC
and the instantaneous AGC methods on the same shot gathers. Display and compare your re-
sults with the data before applying the required amplitude corrections. In your opinion, which
method results in the best amplitude correction? Why?
3.5. USEFUL MATLAB FUNCTIONS 21
20 20
0
0
Envelope (dB) of the average trace
ï
ï
ï
ï
ï
ï
ï
(a) (b)
20 20
0
0
Envelope (dB) of the average trace
ï
ï
ï
ï
ï
ï
ï
(c) (d)
Figure 3.5: The amplitude envelope gain in dB for (a) the average trace and (b) trace 33 both of
Figure 3.4(a). Similarly, the amplitude envelope gain in dB for (a) the average trace and (b) trace 33 both
of Figure 3.4(b).
3. Mute the bad traces of shot gather 16 as in Section 3.2.Then apply the method of multiplication
by a power of time with α = 2.0 and all shot gathers and save the processed data with its header
information as Book_Seismic_Data_gain.mat to be used later on.
CHAPTER 4
Figure 4.1: (a) Seismic data shot gather number 8 containing ground roll noise (red lines indicate ground
roll noise). (b) Its f − x and (c) its f − k magnitude spectra. The color bars in (b) and (c) indicate the
magnitude values in dB.
MATLAB. There exist different means for such useful analysis: the frequency (or wavenumber)
content of one-dimensional (1 − D) time (or space) signals, two-dimensional (2 − D) like the
frequency-space (f − x) or the frequency-wavenumber (f − k) spectra; each of which can be used
to obtain meaningful interpretation and, therefore, apply a suitable filtering technique. These plots
and their corresponding analysis and interpretations are very useful, particularly, when applying
linear filtering to 1 − D and/or 2 − D seismic data sets.
Now, we can use the following MATLAB m-file containing the written M-functions fx.m
and fk.m to, respectively, obtain the f − x and f − k magnitude spectra in dB as seen Figure 4.1(b)
and (c):
Now, we design an Finite Impulse Response (FIR) BPF digital filter and apply it to each
seismic trace in the shot gather number 8 using the written M-function bpf_fir.m as follows (with
the given filter specifications):
1 N =100;
2 c u t _ o f f = [ 1 5 ,60];
3 [ Dbpf , D b p f _ f ]= b p f _ f i r ( Dshot , dt , N , c u t _ o f f ) ;
Figure 4.2 represents shot gather 8 before and after applying the above mentioned BPF on
each trace along with the difference between both of them where clearly a great amount of the ground
roll noise has been filtered. The f − x magnitude spectra of Figure 4.2 is also seen in Figure 4.3
where the spectrum was banded between 15 and 60 Hz and the remaining was left out. A final word
of caution is that although frequency filtering like BFP has improved the data SNR by attenuating
the ground roll noise, it has also lowered the vertical resolution of the seismic data. This is common
in seismic data processing and will be taken care of by applying deconvolution as we will explore in
the next chapter.
4.4. COMPUTER ASSIGNMENTS 27
Figure 4.2: Seismic data shot gather number 8 containing ground roll noise (a) before and (b) after BPF
filtering. (c) The difference between (a) and (b).
2. For the same shot gather, plot the magnitude and phase spectra of its f − x and f − k data
representation. Use both linear and dB magnitudes. Comment on your results. In your opinion,
what are the main differences in terms of interpretation between both the f − x and the f − k?
3. Use the MATLAB’s signal processing toolbox to design and apply the following filters:
a. An FIR Low-pass filter (LPF) using any windowing method with a filter order of 50 and
a cut-off of 15 Hz. Select any trace and apply your designed filter to it and display both
the original trace and its LPF version. Comment on both traces by considering their time
and frequency domain representations.
b. Repeat (a) but with an Infinite Impulse Response (IIR) filter with an order of 5. Design
the IIR filter using the bilinear transformation method.
28 4. SEISMIC NOISE ATTENUATION
Figure 4.3: The f − x magnitude spectra of the seismic data shot gather number 8 containing ground
roll noise: (a) before and (b) after BPF filtering as well as for (c) the difference.
c. Apply the FIR and IIR LPFs from parts (a) and (b), respectively, on each trace of shot
gather 2. Display the original shot gather and the processed shot gathers. What can you
notice from your results?
Note: here and in the next parts of this assignment, make sure that you use the same wiggle
display scale of your filtered shot gathers in order to run fair comparisons.
4. Repeat Part 2 but with a high-pass filter (HPF) with a cut-off 60 Hz. In your opinion, which
is better the LP filtered or HP filtered data results?
5. Apply band-pass filtering with cut-off values of 15 and 60 Hz using the M-function
bpf_fir.m to all the shot gathers and save the resultant data set (with its header) as
Book_Seismic_Data_gain_bpf.mat to be used in the coming chapters.
CHAPTER 5
Seismic Deconvolution
5.1 INTRODUCTION
After we have performed frequency filtering on seismic data via BPFs, the seismic data is smoothed
and, hence, its vertical resolution is affected due to the loss of some of its original wider frequency
band. One of the main aims of seismic deconvolution is to increase the vertical resolution of the
data by compressing the source wavelet (to a zero-phase spike, if possible). This is known as spiking
deconvolution. Seismic deconvolution, however, is not limited to this application where we can use it
as well for noise attenuation such as multiples. Since our land seismic data set requires at this stage
enhancement of its vertical resolution, we are going to elaborate here on spiking deconvolution and
its application to our data set. However, before we get to deconvolution, we must define the seismic
convolutional model.
• The system’s output is o(t) = s(t), where s(t) is the recorded seismic trace.
• The system’s input i(t) = w(t), where w(t) is the wavelet generated by the seismic source.
• The system’s response r(t) = e(t), where e(t) is a series of impulses corresponding, in time
and amplitude, to the reflection coefficients at layers boundaries. e(t) is also known as the
reflectivity (series). Therefore, according to this model, the seismic trace s(t) is given by:
A random noise component γ (t), if present, is additive; hence, the noisy seismic trace becomes:
The forward seismic convolutional model is used to compute synthetic seismograms s(t) given the
source wavelet w(t) and earth’s reflectivity e(t) (Equations 5.1 and 5.2). The deconvolution (inverse
seismic convolutional model) is used to:
30 5. SEISMIC DECONVOLUTION
1. Compute the earth’s reflectivity e(t) given the seismic trace s(t) and the source wavelet w(t).
This is the most common objective of deconvolution. If the source wavelet is known, the
deconvolution becomes deterministic. Whereas, if the source wavelet is not known, the de-
convolution becomes statistical.
2. Compute the source wavelet w(t) given the seismic trace s(t) and the earth’s reflectivity e(t).
This is used if a seismic trace is recorded near a borehole.
The seismic convolutional model is widely accepted because it agrees well with the observed seismic
traces. The seismic convolutional model commonly assumes the following [2].
1. The earth is made up of horizontal layers of constant velocity.
2. The source generates only a primary wave, which is reflected on layer boundaries at normal
incidence.
3. The source wavelet is stationary. That is, it does not change its shape as it travels in the
subsurface.
4. The noise component γ (t) is zero.
5. The Earth’s reflectivity e(t) is a white random series of impulses.
6. The seismic wavelet is a minimum-phase wavelet, which means that the wavelet has its energy
concentrated at its start time.
Often, one or more of these assumptions might not be satisfied; in which case, advanced techniques
of deconvolution have to be implemented.
which implies that |H (f )| = 1/|W (f )|, and φh (f ) = −φw (f ). Note that |W (f )| and φw (f ) are
the amplitude and phase spectra of w(t) and |H (f )| and φh (f ) are the amplitude and phase spectra
of h(t). Therefore, the amplitude spectrum of the inverse filter is the reciprocal of that of the source
wavelet whereas its phase spectrum is the negative of that of the wavelet. Taking the inverse Fourier
transform of the H (f ), we get the desired inverse filter h(t). Finally, spiking deconvolution is
accomplished then by convolving the inverse filter h(t) with the seismic trace s(t):
h(t) ∗ s(t) = h(t) ∗ [w(t) ∗ e(t)] = [h(t) ∗ w(t)] ∗ e(t) = δ(t) ∗ e(t) = e(t), (5.5)
which is the earth’s response that we want to extract from the seismic trace.
In practice, the data is uniformly sampled and, therefore, we can assume that all the signals
in Equation 5.2 are sampled and we can then rewrite it as:
where n represents the time index. Hence, we can also use the z-transform in Equation 5.4, which
results in H (z) = 1/W (z). H (z) is an infinite polynomial of z that is convergent only if w(n) is
a minimum-phase wavelet. For practical reasons, the infinite polynomial H (z) has to be truncated
to N terms (i.e., FN (z)). Truncation generates less error if w(n) is a minimum-phase wavelet and
we include more terms of HN (z). The truncated filter hN (n) is calculated by taking the inverse
z-transform of HN (z). Because of truncation, convolution of the truncated filter hN (n) with the
wavelet will not give the desired output d(n) = δ(n) ≡ (1, 0, 0, …). The actual output y(n) is given
by:
y(n) = hN (n) ∗ w(n). (5.7)
Apparently, y(n) = d(n) and there will be a truncation error E defined as:
E= [d(n) − y(n)]2 . (5.8)
n
32 5. SEISMIC DECONVOLUTION
5.4 SPIKING DECONVOLUTION USING WIENER
OPTIMUM FILTERS
Wiener optimum filtering involves designing a filter h(n) so that the error E in Equation 5.8 between
the desired output d(n) and the actual output y(n) is minimum (refer to Figure 5.1). The actual
output y(n) is given as:
y(n) = h(n) ∗ x(n), (5.9)
where x(n) is the input. Substituting equation 5.9 into 5.8:
E= [d(n) − {h(n) ∗ x(n)}]2 . (5.10)
n
The goal is to compute the filter coefficients (h(0), h(1), . . . , h(N − 1)) so that the error E
is minimum, where the filter length, N , must be predefined. This is a typical least-squares problem,
and the minimum error is attained by setting the partial derivative of E with respect to h(j ) to zero:
∂E/∂h(j ) = 0, (5.11)
where j = 0, 1, 2, . . . , (N − 1). Applying Equation 5.11 on 5.10 and simplifying, the result can be
expressed as:
N−1
r(j − n)h(n) = g(j ) (5.12)
n=0
for j = 0, 1, 2, ..., (N − 1). In matrix format, Equation 5.12 can be written as:
⎡ ⎤⎡ ⎤ ⎡ ⎤
r(0) r(1) · · · r(N − 1)
r(2) h(0) g(0)
⎢ r(1) r(0) · · · r(N − 2)
r(1) ⎥⎢ h(1) ⎥ ⎢ g(1) ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ .. .. ..
.. .. ⎥⎢ .. ⎥=⎢ .. ⎥
⎣ . . . . . ⎦⎣ . ⎦ ⎣ . ⎦
r(N − 1) r(N − 2) r(N − 3) · · · r(0) h(N − 1) g(N − 1)
(5.13)
In Equations 5.12 and 5.13, g(j ) is the j th term of the crosscorrelation between d(n) and x(n):
Note that g(n) = d(n) ⊗ x(n) = x(n) ⊗ d(n) and that we only need lags 0, 1, . . . , (N − 1). rj −i
is the j th term of the autocorrelation of x(n):
Note that r(n) = x(n) ⊗ x(n) = r(−n) and we only need lags 0, 1, . . . , (N − 1). If g(j ) and
r(j − τ ) are known, Equation 5.13 can be solved uniquely to find the filter h(n). Equations 5.12
and 5.13 are known as the normal equations. The autocorrelation (r(j )) matrix of Equation 5.13 is
5.5. THE TRACE-WAVELET RELATION 33
a Toeplitz matrix that can be inverted efficiently using the Levinson recursion procedure.
As an application of the normal equations, we will use them to design the inverse fil-
ter of the source wavelet such that the desired output is a zero-lag spike . The input x(n) is
the source wavelet w(n) = (w(0), w(1), . . . , w(N − 1)) of length N , the desired output d(n)
is a zero-lag impulse function δ(n) = (1, 0, ..., 0) of length 2N − 1, and the inverse filter is
h(n) = (h(0), h(1), . . . , h(N − 1)) of length N. Therefore, the input autocorrelations are:
g(0) = w(0)
g(1) = 0
...
g(N − 1) = 0.
The actual application of this theory to the exploration of subterranean layers, such as spiking
and prediction deconvolution, began with the work of the Geophysical Analysis Group at the
Massachusetts Institute of Technology (MIT) between 1960 and 1965, where it was a significant
milestone in the history of seismic data processing [4, 23, 24].
|E(f )| ⇐⇒ E0 . (5.17)
Using Equation 5.1 to find the trace amplitude spectrum and substituting Equation 5.17 yields:
Equation 5.17 means that the amplitude spectrum of the seismic trace is a scaled version of the
amplitude spectrum of the source wavelet.
5.5.2 AUTOCORRELATIONS
Because of the random nature of e(n), its autocorrelation re (n) is generally zero everywhere except
at n = 0, where it is equal to the energy in e(n) given by:
re0 = e2 (n) = e2 (0) + e2 (1) + . . . (5.19)
n
Using this fact about re (n), we can derive a relation between the trace and wavelet autocorrelations
(rs (n) and rw (n)) as follows:
Equation 5.21 means that the autocorrelation of the seismic trace is a scaled version of the autocor-
relation of the source wavelet. The benefit of Equations 5.19 and 5.21 is that we can use |S(f )| or
rs (n) whenever |W (f )| or rw (n) are needed in deconvolution or filtering. Provided the randomness
and whiteness assumptions about e(n) are satisfied, all we miss by using |S(f )| or rs (n) instead of
|W (f )| or rw (n) is a scaling factor.
• Filter length (N ): This sets up the length of the spiking filter h(n).
• Percent prewhitening (ε): This sets up the amount of white random noise we want to include
into our autocorrelation matrix to stabilize the solution of the normal equations.
Prewhitening is achieved by adding a white random noise, with a very small variance (ε), to
the trace amplitudes at every time sample. This is equivalent to adding a very small positive constant
to the zero-lag autocorrelation (r(0) in Equation 5.17) of the trace [2]. It is also equivalent to adding
a very small positive constant to the amplitude spectrum of the trace at every frequency component.
The magnitude of prewhitening is measured as a percentage of the zero-lag autocorrelation value
36 5. SEISMIC DECONVOLUTION
r(0). In practice, typically 0.1% to 0.3% (i.e., 0.001r(0) to 0.003r(0)) prewhitening is standard in
processing.
1 load B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f . m a t
2
3 shot_num =4:6;
4 p =1;
5 [ Dshot , dt , dx , t , o f f s e t ]= e x t r a c t i n g _ s h o t s ( Dbpf , H , shot_num , p ) ;
6 [ nt , nx ]= size ( Dshot ) ;
7
8 s c a l e =5;
9 m w i g b ( Dshot , scale , offset , t )
10 x l a b e l ( ' T r a c e n u m b e r ' , ' F o n t S i z e ' ,14)
11 y l a b e l ( ' T i m e ( s ) ' , ' F o n t S i z e ' ,14)
12
13 m a x _ l a g =0 .2 ;
14 [ Dauto , lags ]= a u t o _ c o r r e l a t i o n _ m a p ( Dshot , max_lag , dt ) ;
15 s c a l e =5;
16 m w i g b ( Dauto , scale , offset , lags )
17 x l a b e l ( ' T r a c e n u m b e r ' , ' F o n t S i z e ' ,14)
18 y l a b e l ( ' T i m e lag ( s ) ' , ' F o n t S i z e ' ,14)
19
20 mu =0 .1 ;
21 Ds = s p i k i n g _ d e c o n ( Dshot , max_lag , mu , dt ) ;
22 s c a l e =5;
23 m w i g b ( Dt , scale , offset , t )
24 x l a b e l ( ' T r a c e n u m b e r ' , ' F o n t S i z e ' ,14)
25 y l a b e l ( ' T i m e ( s ) ' , ' F o n t S i z e ' ,14)
Figure 5.2 shows the first three shot gathers of the data before applying spiking deconvolution.
Their autocorrelograms are shown in Figure 5.3, while Figure 5.4 shows them after applying spiking
deconvolution. We notice that the data became more spiky and we can further analyze this in the
spectrum domain via the power spectral density of the average traces as we see in Figure 5.5. This
figure was generated using the following commands:
0.5
2.5
Trace number
0 10 20 30 40 50 60 70 80 90 100
0
0.02
0.04
0.06
Time lag (s)
0.08
0.1
0.12
0.14
0.16
0.18
0.2
9 D a v g _ a f t e r = D a v g _ a f t e r / max ( D a v g _ a f t e r ) ;
10 D a v g _ a f t e r = 2 0 ∗ l o g 1 0 ( abs ( D a v g _ a f t e r ) ) ;
11
12 f = l i n s p a c e (−0.5 ,0 .5 , 2 ∗ nt ) / dt ;
13 figure , plot ( f , D a v g _ b e f o r e , f , D a v g _ a f t e r , ' r−−' )
14 x l a b e l ( ' F r e q u e n c y ( Hz ) ' , ' F o n t S i z e ' ,14)
15 y l a b e l ( ' N o r m a l i z e d PSD ' , ' F o n t S i z e ' ,14)
16 grid
17 legend (' Before decon ' ,' After decon ')
38 5. SEISMIC DECONVOLUTION
Trace number
0 10 20 30 40 50 60 70 80 90 100
0
0.5
Time (s)
1.5
2.5
0
Before decon
After decon
ï
ï
Normalized PSD
ï
ï
ï
ï
ï
ï
0 50 100 150 200 250
Frequency (Hz)
Figure 5.5: PSD of the average trace of shot gathers: 4, 5 and 6 before and after spiking deconvolution.
Finally, to further enhance the results before we sort the data in the next chapter, we have
applied instantaneous AGC with window length of 0.5 s to the deconvolved data as seen in Figure 5.6.
We applied AGC to compensate for the lost amplitudes after deconvolution.
0.5
Time (s)
1.5
2.5
Figure 5.6: Shot gathers: 4, 5 and 6 after applying spiking deconvolution and instantaneous AGC.
CHAPTER 6
Seismic data is acquired in the shot gather mode while most seismic data processing is per-
formed in the CMP-offset mode. Therefore, we need to sort the traces between these modes.
Generally, we need a way to sort the traces into other modes as well. For this purpose, we use stack-
ing charts. A stacking chart is a chart in which the x-axis indicates the geophone location and the
y-axis indicates the source location. It is used to sort the traces into various modes or gathers such as
shot, receiver, offset, or CMP. On a stacking chart (refer to Figure 6.3 which shows the data stacking
chart):
42 6. CARRYING THE PROCESSING FORWARD
Figure 6.1: Two-sided common shot gather configuration where five receivers from each side of the shot
record.
Figure 6.2: Common mid-point gather (CMP) configuration. We see that each of the shot-receiver
combinations is centered around the same mid-point.
• Points along one diagonal have a common midpoint (the gather is called a common midpoint
(CMP) gather).
• Points along the other diagonal have a common offset (the gather is called a common offset
gather (COG)).
• Points along a horizontal line have a common source (the gather is called a common source
gather).
• Points along a vertical line have a common receiver (the gather is called a common receiver
gather (CRG)).
In order to sort the our seismic data set, we can use the M-function ssort.m as follows:
1 load B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n . m a t
6.2. COMMON MIDPOINT SORTING 43
2 [ Dsort , H s o r t ] = s s o r t ( Ds_gain , H ) ;
3 save B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d . m a t D s o r t H s o r t
Note that we have saved the sorted file so it will be easily accessible later on. Furthermore, if we run
the following script:
1 [ cmps , f o l d _ c m p ]= e x t r a c t i n g _ c m p _ f o l d _ n u m ( Dsort , H s o r t ) ;
2 figure , stem ( cmps , fold_cmp , '−' )
3 x l a b e l ( ' CMP n u m b e r s ' , ' F o n t S i z e ' ,14)
4 y l a b e l ( ' F o l d ' ,' F o n t S i z e ' ,14)
5 set ( gca , ' Y M i n o r G r i d ' , ' on ' )
we obtain the fold or number of traces per CMP as shown in Figure 6.4 based on the M-function
extracting_cmp_fold_num.m. From this figure, we see that the data starts at CMP 203 with
a single trace then it increases until it reaches the maximum fold of 18 at CMP number 235 and
then ends at CMP 266 with one trace. This is also confirmed by the stacking chart in Figure 6.3.
Figure 6.5 shows several CMP gathers extracted from the sorted data and its header displayed using
the following script:
44 6. CARRYING THE PROCESSING FORWARD
18
16
14
12
10
Fold
8
0
200 210 220 230 240 250 260 270
CMP numbers
Figure 6.4: The fold (number of traces per CMP) versus the CMP numbers.
1 cmp_num =208;
2 [ Dcmp , t , cdp ]= e x t r a c t i n g _ c m p ( Dsort , Hsort , c m p _ n u m ) ;
3 s c a l e =2;
4 m w i g b ( Dcmp , scale , cdp , t )
5 x l a b e l ([ ' CMP : ' , n u m 2 s t r ( c m p _ n u m ) , ' ' ] , ' F o n t S i z e ' ,14)
6 y l a b e l ( ' T i m e ( s ) ' , ' F o n t S i z e ' ,14)
Note the number of traces per CMP gather varies from a CMP gather to another and is consistent
with Figure 6.4.
We can obtain or, to be more precise, pick stacking velocities by running a velocity analysis
on a given CMP gather, where we aim to obtain velocities that flatten out hyperbolas (which mainly
6.3. VELOCITY ANALYSIS 45
Figure 6.5: CMP gathers number (a) 208, (b) 234, and (c) 250 of our CMP-sorted seismic data.
represent reflections) on CMP gathers. This will increase the energy contained in a seismic event
after adding all the traces of that particular CMP together, i.e., we increase the power of the overall
stack.
There exist many means that we can use to compute the stacking velocities such as the the
velocity spectrum and the constant velocity stack techniques. Both are commonly used and we will select
the velocity spectrum technique to obtain the stacking velocities of our data.
1. Select a CMP gather that has a relatively high SNR ratio. The CMP gather should be sorted
in offset.
2. Determine the minimum (usually equals 0) and maximum (usually equals to the record length)
t0 that you want to analyze.
7. The amplitudes in a gate of width w centered about t (x) calculated from step (6) are selected
from all the traces in the gather. We will call the amplitude of a time sample within this gate
Aij , where 1 ≤ i ≤ N, 1 ≤ j ≤ M, N is the number of samples in the gate w, and M is the
number of traces in the CMP gather.
8. The sum of the amplitudes corresponding to the first time sample of the gate on all traces in
11. Now, sum up the squared amplitudes of the first sample on every trace .
12. Repeat step (11) for all the other samples in the gate.
N
M
13. The sums of the squares are added together to give the prestack energy Eu = i=1
2
j =1 Aij .
14. Calculate the semblance NE = (1/M)(Es/Eu). Note that: 0 ≤ NE ≤ 1, and that it is larger
if the amplitudes in the gate are aligned following a hyperbola whose t0 and vs are equal to
those of the hyperbola you are currently fitting.
15. Now you have one point on the velocity-spectrum plane, namely (minimum t0 , minimum vs ,
N E).
16. While fixing t0 , increment V s and repeat steps (6)-(14) until you reach the maximum vs .
17. Increment t0 by L = N/2 samples and repeat steps (5)-(16) until you reach the maximum t0 .
18. For a reflection that has a zero-offset two-way traveltime1 equal to t0 , its correct vs is the one
that is associated with the maximum semblance occurring at that t0 .
The parameters Es, Eu, and NE are measures of coherency (similarity) of the signal along
a hyperbolic curve [25]. The coherency measure is usually displayed as a contour plot. Other
important parameters to consider when using the velocity spectrum method are the minimum,
maximum, and increment vs . The velocity spectrum method is more suited for noise-contaminated
data sets.
The following script uses the M-function vel_picking.m that will interact with its user
through the semblance plot and the computer mouse. The user will pick possible velocities by
pointing and clicking the pointer on the semblance plot. It will also display the selected CMP
gathers along with their semblance as shown, for example, in Figure 6.6(a):
1 load B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d . m a t
2
3 c m p _ s t e p =5;
4 cmp_start =205;
5 cmp_end =255;
6 vmin = 5000;
7 dv = 2 0 0 ;
8 nv = 51;
9 n _ p t s =8;
10
11 [ v_stack , t _ s t a c k ]= v e l _ p i c k i n g ( Dsort , Hsort , vmin , dv , nv , cmp_start , ...
12 cmp_end , cmp_step , n_pts ) ;
13
14 save B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d _ v e l o c i t i e s . m a t
15 v_stack t_stack cmp_step cmp_start cmp_end
The output of the M-function vel_picking.m is composed of two vectors: one containing the
stacking times and the other containing the stacking velocities, where we are going to use them for
NMO correction in the coming section.
In the case of a single horizontal layer with constant velocity, the time-distance (t − x) curve is
exactly a hyperbola given by:
t 2 (x) = t02 + x 2 /v 2 , (6.2)
where v is the layer velocity. We can show that the NMO-correction, in this case, is given by:
x2
tN MO (x) ≈ , (6.3)
2t0 v 2
where the approximation is better for small offsets or where the maximum offset over the reflector
depth is less than 2. For NMO correction,
tN MO (x) is subtracted from t (x) such that the two-way
traveltime at offset x after NMO correction, tN MO (x), is approximately equal to t0 :
tN MO (x) = t (x) −
tN MO (x) ≈ t0 . (6.4)
• If the correct NMO velocity is used for NMO correction, the event will be horizontally aligned
at t = t0 .
• If a higher velocity is used for NMO correction, then the event will be undercorrected (i.e.,
concave down).
• If a lower velocity is used for NMO correction, then the event will be overcorrected (i.e.,
concave up).
For multiple horizontal constant-velocity layers, the t − x curve is not a hyperbola, but we approx-
imate it by a hyperbola. This approximation is better for small offsets. Therefore, we replace the
multiple layers with one layer with an average velocity that will produce the closest t − x curve to a
hyperbola. This average velocity is called the stacking or NMO velocity. For a dipping layer, or a set
of dipping layers, the NMO velocity to any dipping reflector increases with its dip angle. However,
for small dip angles (< 15), the effect of dip on the NMO velocity is negligible. Therefore, for mul-
tiple horizontal and gently dipping layers (as the case of our data), we use equation 6.4 for NMO
correction. For highly dipping layers, we must correct for the effect of dip on velocity. We do this by
first Dip Moveout (DMO) processing then we perform the NMO correction. We recommend the
reader to look into [2] for more DMO details.
6.4. NORMAL MOVEOUT (NMO) CORRECTION 49
Figure 6.6: (a) CMP gather 220 of our sorted seismic before NMO correction. (b) Its semblance and
(c) after correction.
Figure 6.7: (a) CMP gather 230 of our sorted seismic before NMO correction. (b) Its semblance and
(c) after correction.
loss of data, while selecting a large threshold value avoids loss of data but might introduce excessive
stretching of the data.
The following MATLAB script uses the M-function called nmo_correction.m to perform
NMO correction on seismic data CMP gathers based on the estimated stacking velocities from the
previous section:
1 load B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d . m a t
2 load B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d _ v e l o c i t i e s . m a t
3 m a x _ s t r e t c h =10;
4 [ Dsort , H s o r t ]= n m o _ c o r r e c t i o n ( Dsort , Hsort , v_stack , t_stack , ...
5 cmp_start , cmp_end , cmp_step , m a x _ s t r e t c h ) ;
6 save B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d _ n m o _ c o r r e c t e d
7 Dsort Hsort
Figures 6.6(c), 6.7(c), and 6.8(c) show various NMO-corrected CMP gathers. We can notice that
the hyperbolic seismic events have become more flat for different layers. Now, we are ready to obtain
our first approximation of the subsurface image using stacking. Note that the maximum stretch value
6.5. STACKING 51
Figure 6.8: (a) CMP gather 250 of our sorted seismic before NMO correction. (b) Its semblance and
(c) after correction.
we used in our NMO M-function is equal to 50. A very good exercise for the user is to vary the
maximum stretch value and see how it will affect the results.
6.5 STACKING
The purpose of stacking is to enhance the SNR ratio by eliminating coherent and incoherent noise
in the data and to reveal a first subsurface image approximation. The traces in the NMO-corrected
CMP gather are stacked (summed up) to produce one stacked trace that represents that CMP.
The amplitude of the stacked trace can be the sum or average of the amplitudes of traces √ in the
CMP gather. As we mentioned before, stacking M traces enhances the SNR ratio by M. The
stacked section is displayed with the CMP number along the horizontal direction, and t0 along the
vertical direction as we see in Figure 6.9 based on the following script which stack the data using
the M-function sstack.m:
1 load B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d _ n m o _ c o r r e c t e d
2 [ Dstacked ,t , c m p _ n u m ]= s s t a c k ( Dsort , H s o r t ) ;
3 save
4 Book_Seismic_Data_gain_bpf_sdecon_gain_sorted_nmo_corrected_stacked
52 6. CARRYING THE PROCESSING FORWARD
Figure 6.9: The stacked section of our seismic data in various displays: (a) variable area-wiggle, (b)
variable density in gray and (c) variable density in colors. Recall that the color bars in (b) and (c) refers
to the amplitude dynamic range of the data.
5 cmp_num t Dstacked
Clearly, we can see the continuity of "geological" layers but yet this stacked section requires us to
improve its horizontal (spatial) resolution. We are going to perform one more seismic data processing
step, namely, migration, to do that in the next chapter.
2. Select CMP gather number 250 along with its stacking time and velocities and then:
• Add 1500 ft/s to the velocity values and perform NMO correction.
• Subtract 1500 ft/s to the velocity values and perform NMO correction.
What can you realize from both NMO corrected CMP gathers? Explain.
6.7. USEFUL MATLAB CODES 53
6.7 USEFUL MATLAB CODES
ssort.m, extracting_cmp.m, extracting_cmp_fold_num.m, vel_picking.m,
nmo_correction.m, and sstack.m.
55
CHAPTER 7
Static Corrections
Static corrections are applied to seismic data in order to compensate for various effects on the data
such as those related to near surface, variations in elevations, weathering and reference to a datum [2].
By applying static corrections, we aim to determine the reflection time assuming the existence of a
flat surface plane with no weathering layer. These corrections include:
• Elevation static correction, which accounts for variable elevations of the sources and receivers.
• Residual static correction, which accounts for lateral variations in the velocity and thickness
of the weathering layer (WL).
The WL is the shallowest low-velocity layer. It is composed of unconsolidated and loosely consoli-
dated sediments. Common WLs in arid areas include: sand dunes, sabkhas, gravel plains, karsts, and
valley fills. The WL velocity is usually much less than those of the underlying sub-WL (bedrock)
and deeper layers. Therefore, the WL produces a large contribution to the overall traveltime of rays.
2. refraction statics
3. surface-consistent statics
1. Delay-time Method: It uses the slopes of the direct and head waves as well as the head wave’s
intercept time of many shot records along the profile to estimate the WL velocity and thickness
under each receiver.This method requires picking first breaks, which is difficult. It also requires
reversed raypath1 geometries, which might not be available.
2. Generalized reciprocal Method (GRM): It uses reversed refraction profiles to estimate the
optimum WL thickness under each receiver. This method requires picking first breaks, which
is difficult. It also requires reversed raypath geometries, which might not be available.
3. Least-squares Method: It uses least square analysis to find the best-fit WL velocity-thickness
model to the first arrivals (i.e., direct and head waves). This method employs similar concepts
to those used for the surface-consistent method (that we will discuss in the coming subsection),
but uses refraction rather than reflection data.
1 A raypath is a line that is perpendicular to the wavefront in isotropic media.
7.2. RESIDUAL STATIC CORRECTION 57
7.2.3 SURFACE-CONSISTENT RESIDUAL STATIC CORRECTION METHOD
This method is especially effective in estimating short-wavelength statics. The basic assumption
of this method is that the static shifts are time delays that depend only on the source and
receiver locations on the surface, not on raypaths in the subsurface. This assumption is valid
only if all raypaths, regardless of source-receiver offset, are vertical in the near surface. The
surface-consistent assumption is generally good because the WL usually has a much lower ve-
locity than the sub-WL and refraction towards the normal at its base tends to make raypaths vertical.
The total residual static time shift on any trace can be expressed as:
Tij k = Ri + Sj + Gk + Mk Xij
2
, (7.2)
where Ri is the residual static time shift associated with the i th receiver position (i = 1, . . . , I , where
I is the number of receivers used in the survey), Sj is the residual static time shift associated with
the j th source position (j = 1, . . . , J , where J is the number of sources used in the survey), Gk is
the difference in two-way traveltime (due to structure) at a reference CMP and the traveltime at the
k th CMP (k = 1, . . . , K, where K is number of CMPs covered in the survey), and Mk Xij 2 is the
residual NMO associated with the trace generated by the j th source and recorded by the i th receiver
and it accounts for possible imperfect NMO correction due to using imperfect NMO velocities for
the k th CMP. Generally, we have more equations than unknowns for typical seismic surveys. This is
a typical least-squares problem. Our objective is to find those Ri , Sj , Gk , and Mk that will minimize
the error energy between the observed and calculated Tij k using model parameters in Equation 7.2:
I
J
K
E= [Ri + Sj + Gk + Mk Xij
2
− Tij k ]2 . (7.3)
i=1 j =1 k=1
1. A CMP with good SNR ratio is gained and NMO-corrected using a preliminary velocity
function.
3. Each individual trace in this CMP gather is crosscorrelated with the first pilot trace.
4. Time shifts Tij k , which correspond to maximum crosscorrelations, are picked.
5. Shift each original trace by its corresponding time shift Tij k .
6. A second pilot trace is constructed by stacking the shifted traces in the gather.
58 7. STATIC CORRECTIONS
7. The second pilot trace is, in turn, crosscorrelated with the original traces in the gather and
new time shifts Tij k are computed.
8. Shift each original trace by its corresponding new time shift Tij k .
9. The process is performed this way on all CMP gathers moving to left and/or right from the
starting (reference) CMP gather.
The following parameters are important when picking the time shifts in practice:
(a) Maximum allowable shift: which is the maximum shift allowed for crosscorrelations where a
value between 30 and 40 ms is reasonable.
(b) Correlation window: where it should be chosen in an interval with the highest possible SNR
ratio.
The following MATLAB script uses the M-function scr_static.m that implements the above
steps and apply them to our CMP NMO corrected data, followed by stacking those statically
corrected CMP gathers:
1 cmp_start =205;
2 cmp_end =255;
3 lags =20;
4 D s o r t _ s t a t i c = s c r _ s t a t i c ( Dsort , Hsort , cmp_start , cmp_end , lags ) ;
5 [ D s t a c k e d _ s t a t i c , t , c m p _ n u m ]= s s t a c k ( D s o r t _ s t a t i c , H s o r t ) ;
6 save
7 B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d _ n m o _ c o r r e c t e d _ s t a t i c ...
8 Dsort Dsort_static Hsort Dstacked_static cmp_num t
Note that we selected 40 ms (equivalent to 20 samples) for our data set as seen in the above MATLAB
script. Also, we selected the whole trace (0-3s), which is the default in our code, for our data set.
Figure 7.1 shows both the stacked data before and after applying the surface-consistent residual
static correction method. Clearly, the data quality has improved after applying the correction where
we notice the extension of the continuity to many of the layers.
(a)
(b)
Figure 7.1: The stacked section of the east Texas seismic data set: (a) before applying residual static
correction and (b) after applying residual static correction.
61
CHAPTER 8
Seismic Migration
8.1 INTRODUCTION
After performing the necessary processing on the data and obtaining the stacked section, it can be very
misleading to think of such data as a true image of the subsurface.This is because the actual reflection
points are unknown. We need to take wave propagation effects into account to correctly determine the
reflection points of the subsurface structure [26]. Improper correction of such undesirable geometrical
effects leads to false interpretation and, therefore, oil/gas wells may be damaged or even misplaced.
This is done using a process known as Seismic Migration. Hence, we can define migration as the
process of reconstructing a seismic section so that the reflection events are repositioned under their
correct surface locations at their correct vertical reflection time or depth location [1, 2]. Basically,
migration removes the distorting effects of dipping reflectors from seismic sections. It also removes
the diffracted arrivals resulting from sharp lateral discontinuities [27, 28, 29, 30]. There exist various
migration techniques which are dependent upon the type of migration that suites our data or that
we want to perform. In this chapter, we are going to perform post-stack time migration since our
data mainly contains flat to gently-dipping layers as seen in its stacked section (Figure 7.1).
We can apply this principle to reflection seismology by imagining that each point on a reflector
(geological interface) generates a secondary source in response to the incident wavefield. This is
known as the exploding reflector model [31]. Consider a single point scatterer in a medium as shown
62 8. SEISMIC MIGRATION
Figure 8.1: The beach example for illustrating Huygens’ principle. The ocean causes a plane wave to hit
the storm barrier where a different wavefront moving towards the beach is noticed after the storm barrier
due to the barrier gap (modified after [2]).
Figure 8.2: This figure shows how the approaching waves with semi-circular wavefronts generated by
Huygens’ secondary source from the beach example (Figure 8.1) are recorded as hyperbolas in time.
(a)
(b)
Figure 8.3: (a) A point scatterer (acting as Huygens’ secondary source), and (b) a curved reflector which
is produced based on the point scatterer.
t (x)2 4x 2
− = 1. (8.3)
t02 c2 t02
This shows us that the travel time curve for the scattered arrival has the form of a hyperbola with
the apex directly above the scattering point (our secondary source) as seen in Figure 8.3(b).
Now, consider a horizontal reflector (Figure 8.4(a)) that is composed of a series of point
scatterers (gaps), each one of which generates a diffraction hyperbola in a zero-offset section as
64 8. SEISMIC MIGRATION
in Figure 8.4(b). Following Huygens’ principle, these hyperbolas sum coherently only at the time
of the reflection while the later contributions cancel out (Figure 8.4(b)). However, if the reflector
vanishes at some point, then there will be a diffracted arrival from the endpoint that will show up in
zero-offset data. This creates an artifact in the section that might be falsely interpreted as structure.
We need to migrate such sections in order to remove such artifacts.
Another principle goal of migration is to map the apparent dip that is seen on the zero-offset
sections into true dip [2, 26, 31, 33]. True dip angle is always greater than apparent dip angle.
Consider a reflector dipping at an angle of θ in the true earth as in Figure 8.5. The zero-offset travel
time for a wavefield propagating from distance x down to the reflector and back up again is given
by t = 2r/c where r is the wavefield path length and is equal to r = x sin θ. Now, to compare the
apparent and true dip angles, the travel time must be converted to depth via Equation (8.1) and,
therefore, in the unmigrated depth section z = x sin θ. By definition, the slope of this event is the
tangent of the apparent dip angle, say β. Therefore, we have:
Equation (8.4) shows clearly that the apparent dip angle is always less than true dip angle. Again in
Figure 8.5 the events associated with the two zero-offset wavefields drawn from the dipping reflector
to the two receivers will appear on the unmigrated section at the position locations associated with
the two receivers [2]. Therefore, migration moves the energy up dip. In addition, from the same
figure, the length of the reflector in the geological section is shorter than in the time section. Thus,
migration also shortens reflectors. In summary, migration focuses energy by collapsing diffractions
as well as it correctly steepens, shortens, and moves reflectors up-dip.
Migration can be classified as Pre-stack migration or Post-stack migration. For the former,
migration is performed on pre-stacked data either on shot gathers or on CMPs. For large surveys,
it will require massive computer storage and days, maybe even weeks, of CPU time on a super
computer [34]. For the latter case, the migration is applied on the stacked CMP data. It is much less
expensive than pre-stack migration but it is also less accurate in complicated areas of the subsurface.
Finally, it can be accomplished on workstation class machines.
8.3. MIGRATION KINDS 65
Model =HURïRIIVHWVHFWLRQ
3
Depth (m)
Time (s)
5
7
ï ï ï ï ï ï ï ï ï ï
Lateral position (m) Lateral position (m)
(a) (b)
Figure 8.4: (a) An array of point scatterers positioned at different locations, and (b) its resultant curved
reflectors interfering with each other.
Figure 8.5: Migration principles. The apparent reflector with a dip angle β in the time section when
migrated is moved up-dip, steepened (to an angle θ), shortened, and mapped on its true subsurface
location.
Moreover, migration can be classified in terms of how much physics we put into the algorithm,
specifically for handling velocity variations. This type of classification is based on time migration
66 8. SEISMIC MIGRATION
versus depth migration (see Figure 8.6). Note that any migration (pre-stack or post-stack) can be
output in time or depth. In areas of strong velocity variations, depth migration is used and the output
is given as a depth section. Geological examples of strong lateral velocity variations include salt over-
hangs, sub-salt areas, or combinations of such features [34]. The main difference between time and
depth migration is mostly for ease of interpretation afterwards where one can make more simplifica-
tions in time migration than for depth migration. Time migration is valid only when lateral velocity
variations are mild (10%) to moderate (30%). When this assumption fails, we have to use depth
migration. Figure 8.7 illustrates schematically were pre/post stack time/depth migration is employed.
Finally, we also can classify migration into two-dimensional (2-D) and three-dimensional
(3-D). In 2-D migration, we migrate the data once along the profile. This might generate miss-ties
on intersecting profiles. In addition, 2-D migration is prone to sideswipe effects. Sideswipes are
reflections from out of the plane of the profile. In contrast, 3-D migration first migrates the data in
the inline direction then takes that migrated data and migrates it again in the crossline direction.
This is the two-pass 3-D migration. A one-pass 3-D migration can also be done using a downward
continuation approach. Therefore, considering 2-D versus 3-D, pre-stack versus post-stack, and
time versus depth, we can have the following types of migrations (ordered from fastest but least
accurate to slowest but most accurate) [35]:
Since our data set is 2-D and contains mainly flat layers, we, therefore, choose to perform post-stack
time migration.
1. Kirchhoff migration.
8.4. MIGRATION ALGORITHMS 67
Figure 8.6: This is another migration classification which depends on how much physics one puts into
the migration algorithm.
2. Frequency-wavenumber-(f − k) migration.
1. Take the 2-D Fourier transform of u(t, x) to obtain U (ω, kx ), where ω is the angular frequency
and kx is spatial wavenumber.
68 8. SEISMIC MIGRATION
Figure 8.7: Migration types as a function of computational complexity and lateral velocity variations
(after [34]). The most accurate and most expensive migration kind is the pre-stack depth migration.
2. Apply the following mapping to the ω variable to become the depth wavenumber kz where
we map U (ω, kx ) to become U (kz , kx ):
2ω 2
kz = ( ) − kx2 .
v
v kz
S=
2 k2 + k2
z x
4. Finally, take the 2-D inverse Fourier transform of the result and this will be our migrated
section.
The following script uses the M-function stolt_mig.m to perform post-stack time migration based
on Stolt’s f − k migration algorithm [36]:
8.5. USEFUL MATLAB FUNCTIONS 69
1
2 load
3 B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d _ n m o _ c o r r e c t e d _ s t a t i c ...
4 load B o o k _ S e i s m i c _ D a t a _ g a i n _ b p f _ s d e c o n _ g a i n _ s o r t e d _ v e l o c i t i e s . m a t
5
6 dx = 1 1 0 ;
7 dt =0 .002 ;
8 v = mean ( mean ( v _ s t a c k ) ) ;
9 D s t a c k e d _ s t a t i c = D s t a c k e d _ s t a t i c (: ,1:60) ;
10 cmp_num = cmp_num (1:60)
11
12 D m i g r a t e d = s t o l t _ m i g ( Dstacked ,v , dt , dx ) ;
13
14 figure , s i m a g e _ d i s p l a y ( D s t a c k e d _ s t a t i c , cmp_num , t ,0) ;
15 x l a b e l ( ' CMP ' ,' F o n t S i z e ' ,14)
16 y l a b e l ( ' T i m e ( s ) ' , ' F o n t S i z e ' ,14)
17 t i t l e ( ' S t a c k e d s e c t i o n ' , ' F o n t S i z e ' ,14)
18
19 figure , s i m a g e _ d i s p l a y ( Dmigrated , cmp_num , t ,0) ;
20 x l a b e l ( ' CMP ' ,' F o n t S i z e ' ,14)
21 y l a b e l ( ' T i m e ( s ) ' , ' F o n t S i z e ' ,14)
22 t i t l e ( ' M i g r a t e d s e c t i o n ' , ' F o n t S i z e ' ,14)
Note that when migrating the data we have used the first 60 traces (out of 65) of our stacked data
since trace 61 is equal to zero (refer to Figure 7.1. Figure 8.8 shows the comparison between the
stacked and post-stack time migrated section based on Stolt’s f − k algorithm. The horizontal
resolution was improved after we applied the post-stack time migration algorithm to our stacked
section as we can see, for example, at time equal to 2, 2.5 and 2.75 s. That is, we have improved
the continuity of the layers. Of course, the migration result will be improved if we apply post-stack
depth migration but this requires estimating the velocity model for this geological section and then
performing the post-stack depth migration in the f − k domain as described in [2].
(a)
(b)
Figure 8.8: The east Texas seismic data set: (a) its stacked section and (b) its post-stack migrated section
using Stolt’s f − k migration algorithm.
71
CHAPTER 9
Concluding Remarks
In this book, we introduced the basic concepts encountered in a typical seismic data processing flow.
The concepts were then applied on a real 2-D data set from east Texas, USA. The processes applied
to the data set included:
5. CMP sorting
9. Stacking
MATLAB codes were used to perform each of these processes. Most of these codes were written
by the authors while few others were borrowed from public-domain resources. We made genuine
attempts to make these codes as simple as possible with plenty of comments to encourage interested
readers to modify them to fit their own data sets. Nevertheless, we greatly appreciate feedback from
our readers.
73
Bibliography
[1] P. Kearey, M. Brooks, and I. Hill. An Introduction to Geophysical Exploration. Blackwell Science,
3rd edition, 2002. Cited on page(s) 1, 2, 24, 61
[2] Öz. Yilmaz, editor. Seismic Data Analysis: Processing, Inversion, and Interpretation of Seismic
Data. Society of Exploration Geophysicists, 2nd edition, 2001. Cited on page(s) 1, 4, 7, 17,
23, 24, 30, 34, 35, 39, 48, 55, 57, 61, 62, 64, 67, 69
[3] A. S. Spanias, S. B. Jonsson, and S. D. Stearns. Transform methods for seismic data compression.
IEEE Tran. on Geosciences and Remote Sensing, 29(3):407–416, May 1991.
DOI: 10.1109/36.79431 Cited on page(s) 1, 23
[4] B. Buttkus. Spectral Analysis and Filter Theory in Applied Geophysics. Springer, 2000. Cited on
page(s) 1, 24, 33
[5] D. Forel, T. Benz, and W. D. Pennington. Seismic Data Processing with Seismic Un*x: A 2-D
Seismic Data Processing Primer. Society of Exploration Geophysicists (SEG), 2005. Cited on
page(s) 7
[6] J. F. Clearbout. Imaging the Earth’s interior. Blackwell Scientific Publications, 1985. Cited on
page(s) 20
[7] X. Miao and S. Cheadle. Noise attenuation with wavelet transform. SEG 1998 Expanded
Abstracts, 1998. DOI: 10.1190/1.1820071 Cited on page(s) 23
[8] T. J. Ulrych, M. D. Sacchi, and J. M Graul. Signal and noise separation: Art and science.
Geophysics, 64:1648 – 1656, Sept.- Oct. 1999. DOI: 10.1190/1.1444670 Cited on page(s) 23
[9] A. Özbek. Adaptive beamforming with generalized linear constrains. Geophysics Extended
Abstracts, 2000. DOI: 10.1190/1.1815855 Cited on page(s) 23
[10] L. Duval and T. Rosten. Filter bank decomposition of seismic data with application to com-
pression and denoising. SEG 2000 Expanded Abstracts, 2000. DOI: 10.1190/1.1815847 Cited
on page(s) 23
[11] Qiansheng Cheng, Rong Chen, and Ta-Hsin Li. Simultaneous wavelet estimation and de-
convolution of reflection seismic signals. IEEE Transactions on Geoscience and Remote Sensing,
34(2):377 – 384, March 2001. DOI: 10.1109/36.485115 Cited on page(s) 23
74 9. CONCLUDING REMARKS
[12] K. Berkner and Jr. Wells, R.O. Wavelet transforms and denoising algorithms. Conference Record
of the Thirty-Second Asilomar Conference on Signals, Systems and Computers, 2:1639 – 1643, Nov.
1998. Cited on page(s) 23
[13] Rongfeng Zhang and Tadeusz J. Ulrych. Physical wavelet frame denoising. Geophysics,
68(1):225–231, Jan 2003. DOI: 10.1190/1.1543209 Cited on page(s) 23
[14] J. E. Womack and J. R. Cruz. Seismic data filtering using a gabor representation. IEEE Tran. on
Geosciences and Remote Sensing, 32(2):467–472, March 1994. DOI: 10.1109/36.295061 Cited
on page(s) 24
[15] A. F. Linville and R. A. Meek. A procedure for optimally removing localized coherent noise.
Geophysics, 60(1):191 – 203, Jan.-Feb. 1995. DOI: 10.1190/1.1443746 Cited on page(s) 24
[16] B. Duquet and K. J. Marfurt. Filtering coherent noise during prestack depth migration.
Geophysics, 64(4):1054 – 1066, July-Aug. 1999. DOI: 10.1190/1.1444613 Cited on page(s) 24
[17] S. Treitel, J. L. Shanks, and C. W. Fraster. Some aspects of fan filtering. Geophysics, XXXII:789
– 800, 1967. DOI: 10.1190/1.1439889 Cited on page(s) 24
[18] M. Z. Mulk, K. Obata, and K. Hirano. Design of fan filters. IEEE Trans. on Acoustics, Speech,
and Signal Processing, 31(6):1427 – 1434, Dec. 1983. Cited on page(s) 24
[19] A. H. Kayran and R. A. King. Design of recursive and nonrecursive fan filters with com-
plex transformation. IEEE Trans. on Circuits and Systems, 30(12):849 – 857, Dec. 1983.
DOI: 10.1109/TCS.1983.1085321 Cited on page(s) 24
[20] D. W. McCowan, P. L. Stoffa, and J. B. Diebold. Fan filters for data with variable spatial
sampling. IEEE Trans. on Acoustics, Speech, and Signal Processing, 32(6):1154 – 1159, Dec.
1984. DOI: 10.1109/TASSP.1984.1164466 Cited on page(s) 24
[21] R. Ansari. Efficient IIR and FIR fan filters. IEEE Trans. on Circuits and Systems, 34:941 –
945, August 1987. DOI: 10.1109/TCS.1987.1086224 Cited on page(s) 24
[22] R. H. Bamberger and M. J. T Smith. A filter bank for the directional decomposition of
images: Theory and design. IEEE Tran. on Signal Processing, 40(4):882–893, December 1992.
DOI: 10.1109/78.127960 Cited on page(s) 24
[23] E. A. Robinson and S. Treitel. Geophysical Signal Analysis. SEG, 2000. Cited on page(s) 33,
34
[24] E. A. Robinson and S. Treitel. Digital Imaging & Deconvolution: The ABCs of seismic exploration
and processing. SEG, 2008. Cited on page(s) 33
[25] N. Neidell and M. T. Tanner. Semblance and other co-herency measures for multichannel
data. Geophysics, 36:482–497, 1971. DOI: 10.1190/1.1440186 Cited on page(s) 47
75
[26] E. A. Robinson. Migration of geophysical data. Intr. Human Resources Development Corpo-
ration, 1983. Cited on page(s) 61, 64
[27] J. W. Thorbeck and A. J. Berkhout. 3-D recursive extrapolation operators: an overview. Geo-
physics Extended Abstracts, 1994. Cited on page(s) 61
[28] V. K. Madisetti and D. B. Williams, editors. The Digital Signal Processing Handbook. CRC
Press and IEEE Press, 1998. Cited on page(s) 61
[30] L. J. Karam and J. H. McClellan. Efficient design of digital filters for 2-D and 3-D
depth migration. Signal Processing, IEEE Transactions on, 45(4):1036–1044, April 1997.
DOI: 10.1109/78.564191 Cited on page(s) 61
[31] J. F. Claerbout. Imaging the Earth’s Interior. Blackwell, 1984. Cited on page(s) 61, 64
[32] P. M. Shearer. Introduction to Seismology. Cambridge Uni. Press, 1999. Cited on page(s) 61, 63
[33] J. A. Scales. Theory of Seismic Imaging. Samizdat Press, 1997. Cited on page(s) 64
[34] C. L. Liner. Elements of 3-D Seismology. PennWell, 1999. Cited on page(s) 64, 66, 68
Authors’ Biographies
WAIL A. MOUSA
Wail A. Mousa holds two B.S. with honors in electrical engineering and mathematical sciences
and an M.S. in electrical engineering from KFUPM. Wail was the first Saudi to be sponsored by
Schlumberger Dhahran Carbonate Research (SDCR) for a Ph.D., which he obtained at the School
of Electronics & Electrical Engineering at the University of Leeds in 2006. He was a graduate
assistant at KFUPM and then promoted to lecturer between 2000-2003. Wail then worked between
2003-2009 as a research scientist on applied signal processing for geology and geophysics at the
SDCR. He is currently working as an assistant professor in the Electrical Engineering Department,
King Fahd University of Petroleum & Minerals (KFUPM), teaching various signal and image
processing courses and supervising students. Wail is an active researcher and publishes regularly
where his research interests include: digital signal, image, and video processing and their applications
in geophysics, geology as well as petro-physics, design & implementation of digital filters including
wavefield extrapolation filters, image segmentation, pattern recognition and classification and their
applications related to geophysical and geological data, signal and image compression. More recently,
he published his first patent in the US patent and trade office. He was additionally appointed as
the director of business development at KFUPM as of February 2010. He is a member of many
international and local professional organizations. In late 2006, he represented both Saudi Arabia in
the inaugural World Petroleum Council-Youth Committee (WPC-YC) and in early 2007, he became
the vice chair of the WPC-YC, where he has been chairman since June 2008. Dr. Mousa has received
many awards of special honor including a letter of distinction from the CEO of Schlumberger in
2008 due to his technical contributions to the company since he joined them after his PhD.
ABDULLATIF A. AL-SHUHAIL
Abdullatif A. Al-Shuhail is an associate professor of Geophysics at King Fahd University of
Petroleum & Minerals (KFUPM). He received his B.S. degree in Geophysics from KFUPM in
1987. He got his M.Sc. and Ph.D. in Geophysics from Texas A&M University, College Station.
He founded the Near Surface Seismic Investigation Consortium at KFUPM in 2006. His fields of
interests include seismic characterization of fractured reservoirs, near-surface effects on petroleum
seismic data, and ground penetrating radar. He is member of the Society of Exploration Geo-
physicists (SEG), European Association of Geoscientists and Engineers (EAGE), and Dhahran
Geoscience Society (DGS).
79
Index
time-distance, 48 zero-lag
curves, 24 autocorrelation, 35
time-space, 44, 45 impulse function, 33
Toeplitz matrix, 33 spike, 33
trace zero-phase spike, 29