Professional Documents
Culture Documents
WIENER FILTER
ABSTRACT
A seismic source pulse, when transmitted through the earth, gets reflected from every
interface across which there is an acoustic impedance contrast. Such seismic data are
acquired during geophysical surveys. The methods to process these data are based on
statistical techniques. One of the ways of extracting useful signal from the
contaminated seismic reflection is through deconvolution. In this dissertation work
the scope of deconvolution methods which help in distinguishing the reflections
which are otherwise lost in the reverberatory energy will be dealt with. New optimum
digital filters with a wide range of applications will be designed for this purpose.
CHAPTER PAGE NO
1. INTRODUCTION……………………………………………………………..1
2.1. INTRODUCTION……………………………………………………..9
2.2. STATEMENT OF THE PROBLEM AND FORMULATION………..9
4.1. CONCLUSION……………………………………………………….22
4.2. FUTURE SCOPE OF THE WORK…………………………………..22
5. REFERENCES……………………………………………………………… ..23
CHAPTER I
INTRODUCTION
1.1 GENERAL CONSIDERATIONS
Seismology is a branch of science dealing with earthquakes and the study of seismic
waves, the energy waves which travel through the earth. Seismic signals can be
originated by various phenomena, including a sudden explosion or movement of
rocks. Seismic waves are also used to determine the structures of various geographies.
The analysis of seismic data poses several problems because of the assumptions and
limitations of the existing techniques of data acquisition, data processing and
interpretation.
Earthquake is one of the worst natural disasters which are capable of smashing
anything anywhere. Detection and cautious techniques are thus required in this
scenario. This requires analysis of earthquake which includes its strength and scope.
Thus, continuous monitoring of earthquake data is required in order to detect any
earthquake before its occurrence, or at least at the initial stages of its occurrence.
Seismic signals are very sensitive that, they react to all most all the events that take
place in and on the earth. This event can be any movement of any object or it can be
even the foot steps of a man walking on the surface. But analysis of earthquake does
not require all these events. In other words, these small events are the sources of noise
to the seismic wave. Generally, seismic waves travel through the interfaces between
formations having different physical properties before reaching the receiver. This may
also lead to occurrence of unwanted signal in the recorded data. Thus the seismic data
recorded, contains a lot of noise.
The main objective in the processing of these data is to remove the background noise
and unwanted signals from the data recorded, and thereby improving the resolution of
the seismic signal, before interpreting the data in terms of meaningful real time
earthquake.
Reflection seismics is one of the most widely used geophysical technique for
explorations. Seismic exploration can be divided into three main parts:
1. data acquisition,
2. data processing, and
3. data interpretation
which are like the three legs of a stool. A seismic operation does not support much
unless all the three legs are sturdy, showing the contribution and importance of all the
three legs.
Acquisition of good, interpretable seismic data starts in the field and the processing
strategies and results are strongly affected by the quality of data acquired. Main
modules required for a seismic system are: detectors and recording instruments. These
subsystems are of equal importance in recording
1 accurate seismic information. There
will be always a possibility for the occurrence of noise through these modules.
Preparing all these modules with immunity towards noise is one of the solution to
avoid noise in recorded data, but is not possible practically for which we require
filters to suppress noise from the recorded data.
The objective of data processing is to analyse and decode the acquired data for a
meaningful interpretation. To achieve this objective, there are different data
processing steps that are carried out.
A seismogram contains a lot of coherent noise such as the multiples and other random
noise. To remove this unwanted information, different data processing tools should be
used in such a way that the final section obtained after processing the data reveals the
actual information regarding the earthquake to a large extent.
The main objective of data interpretation is to analyze the filtered data. It may include
the analysis of the frequency and amplitudes of the signal at different instances.
Filtering must be such that the processed data can be readily interpreted. Thus the data
which is ready for interpretation is the final result of the whole filtering process.
Before coming to the central theme of the project, it is desirable to discuss the time-
invariant deconvolution. One of the main stages in seismic data processing is
deconvolution. The concept of deconvolution was developed by Robinson. The
deconvolution operator obtained by the most widely used least-squares estimation
method, has its ramifications in a large number of problems, both stochastic and
deterministic.
Here a deconvolution method is used, where the later part of the seismic trace is
deconvolved by the use of information from the early part of the same seismic trace,
thereby removing the reverberations of the surface layers successfully. Ford suggested
that the deconvolution of a given mixed delay wavelet and the reversal of this given
wavelet can be combined to estimate the complete variable delay suite of spiking
filter performance of the given mixed delay wavelet. The zero delay spiking
emphasizes on the minimum phase portion of the wavelet, whereas the deconvolution
of the reversed wavelet emphasizes the maximum phase portion of the original
wavelet. Deconvolution problems are generally solved using different matrix
inversion techniques. It has been shown that the maximum likelihood filters as
applied to seismic data, have identical filter equations as that of Wiener deconvolution
operators and the same inversion technique can be applied to solve these
deconvolution operators.
In case of time-varying systems, the solution of the system requires an empirical
division of the seismic trace into a number of gates and hence a time invariant filter is
obtained for each such gate.
2
1.4 MATLAB - LITERATURE SURVEY
1.4.1 About MATLAB
MATLAB is an interactive system whose basic data element is an array that does not
require dimensioning. This allows you to solve many technical computing problems,
especially those with matrix and vector formulations, in a fraction of the time it would
take to write a program in a scalar non interactive language such as C or FORTRAN.
The name MATLAB stands for Matrix Laboratory.
Development Environment: This is the set of tools and facilities that help us
to use MATLAB functions and files. Many of these tools are Graphical User
Interfaces. It includes the MATLAB desktop and Command Window, a
command history, an editor and a debugger, and browsers for viewing help,
the workspace, files, and the search path. MATLAB window is shown in the
following figure.
Arithmetic Operators
+ Plus
- Minus
* Matrix multiplication
/ Matrix right division
\ Matrix left division
^ Matrix power
‘ Matrix transpose
.* Array multiplication, element-wise
./ Array right division, element-wise
.\ Array left division, element-wise
.^ Array power, element-wise
Bit-wise Operators
bitand Bit-wise AND
bitcmp Bit-wise complement
bitor Bit-wise OR
bitmax Maximum floating-poing integer
bitset Set bit at specified position
bitxor Bit-wise XOR
bitget Get bit at specified position
Relational Operators
< Less than
<= Less than or equal to
> Greater than
>= Greater than or equal to
== Equal to
~= Not equal to
Logical Operators
&& Logical AND
|| Logical OR
~ Logical NOT
all Test to determine if all elements are nonzero
any Test for any nonzero elements
false False array
find Find indices and values of nonzero elements
true True array
xor Logical EXCLUSIVE OR
5
1.4.4 Current Directory
By default, MATLAB current directory path will be set to its own folder, which is
created while installing MATLAB. Any programs or files created will be saved into
this folder. This path can be changed, or new paths can be added, using the
appropriate options available in the MATLAB window. A file can be imported into
MATLAB, only if the file path is available in the current directory.
Entrance time to start using MATLAB is low. Only a few hours of training is
sufficient for a new MATLAB user to start developing simulation tools.
Recent version of the MATLAB compiler can compile to C, C++, and binary
code, allowing the use of different optimization options for high-speed
executables.
As a consequence, performance of the MATLAB linear-algebraic solvers has
been drastically improved in the latest versions of the software, which include
additional accelerators for operations with vector/matrix data types.
The open architecture allows for very rapid extension of the range of
functionality of MATLAB by developing and sharing new toolboxes.
Using MATLAB tools and toolboxes, it is possible to develop a prototype of
an application for a relatively very short time.
It is easy to exchange toolboxes and parts of code within a team and between
teams working in the same area.
max( )
Syntax:
m = max(array/matrix name)
Description:
it is the function used to find the maximum value in an array or a matrix. Name of the
array or matrix is passed as parameter to max(). The function returns the maximum
value, which will be stored into the target variable, ‘m’ here.
size( )
Syntax:
d = size(A)
d = size(A, s)
Description:
Suppose A is an m-by-n symbolic or numeric matrix. The statement d = size(A)
returns a numeric vector with two integer components, d = [m,n].
The statement d = size(A, s) returns the length of the dimension specified by the
scalar ‘s’. For example, size(A,1) is the number of rows of A and size(A,2) is the
number of columns of A.
6
xcorr( )
Syntax:
c = xcorr(x,y)
c = xcorr(x)
Description:
xcorr estimates the cross-correlation sequence of a random process. Autocorrelation is
handled as a special case. c = xcorr(x,y) returns the cross-correlation sequence in a
length 2*N-1 vector, where x and y are length N vectors (N>1). If x and y are not the
same length, the shorter vector is zero-padded to the length of the longer vector.
sum( )
Syntax:
m = sum(s)
Description:
sum gives the algebraic sum of all the elements present in the array/matrix ‘s’.
ones( )
Syntax:
s = ones(m)
s = ones(m,n)
Description:
ones creates an n dimensional array or matrix with all its elements as 1, where n is the
number of parameters to ones, and the array length is given by the values of the
parameters. s = ones(m,n) creates a matrix of size m-by-n with all elements equal to 1.
zeros( )
Syntax:
s = zeros(m)
s = zeros(m,n)
Description:
zeros creates an n dimensional array or matrix with all its elements as 0, where n is
the number of parameters to zeros, and the array length is given by the values of the
parameters. s=zeros(m,n) creates a matrix of size m-by-n with all elements equal to 0.
conv( )
Syntax:
w = conv(u,v)
Description:
w = conv(u,v) convolves vectors u and v. Algebraically, convolution is the same
operation as multiplying the polynomials whose coefficients are the elements of u and
v. If u is of length m, v is of length n, then w will be of size m+n-1.
subplot( )
Syntax:
subplot(x,y,z) 7
description:
subplot(x,y,z) divides the figure window into x rows and y columns, and selects z th
part from that for current use.
plot( )
Syntax:
plot(y)
Description:
plot(y) plots the columns of y versus the index of each value when y is a real number.
For complex y, plot(y) is equivalent to plot(real(y),imag(y)), where real(y) gives the
real part of y, and imag(y) gives imaginary part of y.
MATLAB has a lot of in-built functions and libraries which can be directly imported
and used in the current program, and all the functions with their description are
available in the help window, which facilitates programmers to learn MATLAB
individually and quickly, without anyone’s help and support.
CHAPTER II
8
DESIGN OF THE TIME-VARYING DECONVOLUTION
OPERATOR
2.1 INTRODUCTION
The role of deconvolution as an important step in seismic data processing has been
discussed in chapter I. it is designed mainly to suppress the noise present in the
seismogram. The deconvolution operators are designed for time-invariant seismic
sequence using least squares criterion. However, when the seismic trace is not
stationary the least squares criterion is not valid. In such cases, either absolute error
criterion or dividing the sequence into segments such that each segment is time-
invariant should be used. A study on the design of time-varying deconvolution
operators obtained by dividing the input seismic trace into a number of sections is
dealt with in this chapter. The conventional method of dealing with nonstationary
seismic trace is to divide the input seismic trace into a number of stationary sections
based on some optimum criterion, and to compute the filter for each section separately
and the segmented outputs are combined together to form the actual output, whereas
in this chapter a combined filter for the entire sectioned input is computed and its
importance brought out.
Given a stationary seismic trace x(t) and a desired output d(t), Wiener (1949) and
Robinson and Treitel (1967) have designed a least squares filter in such a way that it
minimizes the error energy or the error power existing between the desired output d(t)
and the actual output y(t).
Mathematically it is given as
where E is the expectation and y(t) is the actual output and is defined as the
convolution of the input with the filter coefficients
9
Minimizing the error energy implies minimizing equation (3.1) and this is achieved
by setting all the partial derivatives of equation (3.3) with respect to f(s) (s=0,1,….m)
equal to zero. Then a set of (m+1) normal equations in the unknown filter coefficients
f(s) is obtained and is given by Robinson (1954) as
→ (3.4)
These set of normal equations (3.4) are called the discrete form of Wiener-Hopf
integral equations for the single channel input output system. These system of
equations are called normal because the error vector is perpendicular or normal to y.
Equation (3.4) can be written in a convenient abbreviated form as
f R = g → (3.5)
where f is the row vector of length (m+1) of Wiener filter coefficients to be obtained,
R is the autocorrelation matrix which is Toeplitz and g is the row vector of cross
correlation coefficients.
f = R-1 g → (3.6)
Let us now consider the case when the input seismic trace is nonstationary. In such
case equation (3.4) is no longer valid since both the autocorrelation and cross-
correlation are time-varying in nature. However, Booten (1952) has given the
modified Wiener-Hopf integral equations for the time-varying inputs as
→ (3.7)
10
In discrete form the above set of equations is written as
→ (3.8)
The above equation is obtained by minimizing equation (2.1) when y(t) takes the form
y(t) = →(3.9)
Let us now divide the input seismic trace into a number of sections, say N.
Mathematically this can be expressed as
x(t) = →(3.10)
u(t) = 1 if t>=0
= 0 if t<0
T is the gate length for which xi(t) can be assumed to be time invariant
and
=
=
y(t) = →(3.11)
For convenience, let us divide the input seismic trace into three sections, i.e., i=1,2,3
and let us consider a two length filter. Hence equation (3.11) can be written as
y(t) = →(3.12)
11
The filter coefficients are obtained by minimizing the total error energy which is
given as
which implies
→(3.13)
For
s=0 i=1 s=1 i=1
s=0 i=2 s=1 i=2
s=0 i=3 s=1 i=3
the normal equations are obtained by setting the partial derivatives with respect to the
filter coefficients equal to zero, i.e.,
Which implies
→(3.14)
This is obtained because, d(t) is not a dependent of ‘f’ but y(t) is a dependent of ‘f’.
Substituting the value of y(t) as given in equation (3.12) gives
Where
Similarly
12
Similarly the remaining five normal equations are derived. These can be written in
matrix form as
→(3.16)
Solving these system of equations the unknown filter coefficients are obtained. Block
diagram is given for the proposed filter. The above equations can be generalised and
abbreviated as
RF=G
F = R-1 G →(3.17)
R and G can be found from the recorded seismic trace, and the above equation (3.17)
can be solved by applying matrix operations, which gives the values of F, filter
coefficients. These filter coefficients now can be applied for any other seismic trace
also, to remove the noise present in the seismic wave. Thus F is the matrix containing
wiener filter coefficients.
When any seismic trace is convolved with this filter, the resultant signal will be the
pure seismic response, without any noise. Hence, noise is filtered out from the data,
which is the main theme of this project.
13
CHAPTER III
The whole processing is done on digital data, though the seismic trace is analog. For
the purpose of computation, digital data is taken which represents the analog trace,
and all the filtering operations are done on that digital data.
Matlab is the simulation software, which works on matrices. All the data which we
process using Matlab are represented in form of a matrix. Here also, the seismic trace
is taken in form of a matrix, on which the corresponding filtering processes are
applied.
14
PROGRAM:
for i=1:n-1
xi=seq(1+l*i:l+l*i);
[x]=[x;xi]; %appends the next sub sequences to the
%previous sub sequence
end;
x11=xcorr(x(1,:)); %autocorrelation of x1
x22=xcorr(x(2,:)); %autocorrelation of x2
x12=xcorr(x(1,:),x(2,:)); %crosscorrelation of x1 and x2
subplot(1,2,1);
plot(seqq); %plotting original data
subplot(1,2,2);
plot(y); %plotting filtered data
15
Pre-considerations for the above program is, the seismic trace must be available in
the workspace of MATLAB, in the variable ‘aa’. Or lese store the seismic trace in
any desired variable, and modify the above program according to that variable
name, i.e., replace ‘aa’ with the desired variable name, in the above program.
3.2TEST CASES:
Test case 1: The seismic trace which is recorded when there is no earthquake
This is the screenshot of the waveform from MATLAB figure window, which is
the plot of the filtered data of the above raw seismic trace. From the graph,
maximum value is found to be 0.27 which is almost nothing, when compared to
1.19X104, the maximum value of the raw seismic trace.
17
Test case 2: Other seismic trace which also contains only noise
This is the screenshot of the waveform from MATLAB figure window, which is
the plot of the raw seismic data recorded at N.G.R.I, when no earthquake is
occurred. From the graph, the maximum amplitude of the seismic wave is 1.9X104
which is a huge value, and it is just because of noise.
18
Fig 5: filtered seismic trace with no earthquake
This is the screenshot of the waveform from MATLAB figure window, which is
the plot of the filtered data of the above noisy seismic trace. From the graph,
maximum value is found to be 0.42 which is very low, when compared to
1.9X104, the maximum value of the raw seismic trace.
19
Test case 3: Earthquake recorded at Koyna observatory
This is the screenshot of the waveform from MATLAB figure window, which is
the plot of the raw seismic data recorded, when earthquake is occurred at Koyna.
From the graph, the maximum amplitude of the seismic wave is 3X10 6. It has both
earthquake and noise traces.
20
Fig 7: filtered seismic trace with earthquake
This is the screenshot of the waveform from MATLAB figure window, which is
the plot of the filtered data of the above noisy seismic trace. From the graph,
maximum value is found to be 1.5X106 which is a lower value, when compared to
1.9X104, the maximum value of the raw seismic trace.
Thus, the designed filter is applicable to any kind of seismic trace, and is
successful in removing the noise components from the recorded data.
21
CHAPTER IV
4.1 CONCLUSION:
In the present work, the seismic noise is filtered out, based on the statistical
analysis of the seismic trace with the help of auto-correlation and cross-correlation
operations, applied on the scaled seismic data. This work gives the practical
application of the basic principles and theories involved in statistical analysis of
signals and processing the signal.
The filtered seismic data is found to be helpful to extract the required information
from the raw seismic trace, and this is applicable for any kind of operation which
includes ground-water extraction, and earthquake analysis.
This project also gives the basic introduction to MATLAB, which is essential for
the Beginners to expose themselves to MATLAB development environment.
The present work is based on Wiener filter, which is applicable for only statistical
analysis, and it can not give better performance when applied in dynamic analysis.
To overcome this drawback, Wiener filter could be designed based on frequencies
rather than on correlation, which is very difficult and complex to achieve. Instead,
use of other filters like Kalman filter could delimit this limitation.
Developing the same filter with normalization factor and prewhitening parameters
could increase the efficiency of the filtering process.
22
REFERENCES
2. http://science.howstuffworks.com/physical-science-channel.htm
3. http://ngri.org.in/
4. http://www.mathworks.com/products/matlab/
23
23