0 оценок0% нашли этот документ полезным (0 голосов)

580 просмотров26 страницMar 08, 2011

© Attribution Non-Commercial (BY-NC)

DOC, PDF, TXT или читайте онлайн в Scribd

Attribution Non-Commercial (BY-NC)

0 оценок0% нашли этот документ полезным (0 голосов)

580 просмотров26 страницAttribution Non-Commercial (BY-NC)

Вы находитесь на странице: 1из 26

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.

the algorithm. The block toeplitz matrix consisting of the auto and cross correlation

for the two signals under consideration. The block toeplitz matrix associated with the

digital filter has been stabilized by a process of normalization and then incorporating

the prewhitening parameter in the algorithm. The prewhitening parameter has been

selected using the criterion of arithmetic mean. The effect of the length of the filter on

the condition number is studied and the stability versus accuracy of the estimated

filter is bought out. The best optimum filter length is obtained for which the solution

is both stable and accurate.

TABLE OF CONTENTS

CHAPTER PAGE NO

1. INTRODUCTION……………………………………………………………..1

1.2.2. DATA PROCESSING……………………………………....2

1.2.3. DATA INTERPRETATION………………………………..2

1.4.2. MATLAB SYSTEM………………………………………..3

1.4.3. MATLAB OPERATORS………………………..…………5

1.4.4. CURRENT DIRECTORY………………………………….6

1.4.5. ADVANTAGES OF MATLAB……………………………6

1.4.6. MATLAB IN-BUILT FUNCTIONS USED IN

THIS PROJECT…………………………………………….6

2.1. INTRODUCTION……………………………………………………..9

2.2. STATEMENT OF THE PROBLEM AND FORMULATION………..9

3.2. TEST CASES…………………………………………………………16

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

computation, visualization, and programming in an easy-to-use environment where

problems and solutions are expressed in familiar mathematical notation. Typical uses

include:

Algorithm development

Data acquisition

Modeling, simulation, and prototyping

Data analysis, exploration, and visualization

Scientific and engineering graphics

Application development, including Graphical User Interface building

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.

computational algorithms ranging from elementary functions like sum, sine,

cosine, and complex arithmetic, to more sophisticated functions like Matrix

Inverse, Matrix Eigen Values, Bessel Functions, and Fast Fourier Transforms.

statements, functions, data structures, input/output, and object-oriented

programming features. It allows both “programming in the small” to rapidly

create quick and dirty throw-away programs, and “programming in the large”

to create complete large and complex application programs.

matrices as graphs, as well as annotating and printing these graphs. It includes

3

high-level functions for two-dimensional and three-dimensional data

visualization, image processing, animation, and presentation graphics. It also

includes low-level functions that allow you to fully customize the appearance

of graphics as well as to build complete graphical user interfaces on your

MATLAB applications.

allows you to write C and FORTRAN programs that interact with MATLAB.

It includes facilities for calling routines from MATLAB (dynamic linking),

calling MATLAB as a computational engine, and for reading and writing

MAT-files.

4

Special Characters

: Specifies the range of the array/matrix elements

() Pass function arguments

[] Construct an array

{} Construct Cell Array

. Decimal point or structure field separator

, Array row element separator

; Array column element separator

% Insert comment line into code

= Assignment

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)

output d(t) and the input x(t)

x(t) of length (n+1)

is the lag

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)

and the input

is the time-varying auto-correlation function of the input

are the unknown filter coefficients

= + t where is the lag time and t is the observation time

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)

in which u(t) is the step function defined as

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

become

=

=

The actual output y(t) given in equation (3.9) now takes the form

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

ɸd x1(0) = f1(0)ɸx1 x1(0) + f2(0)ɸx2 x1(0)+f3(0)ɸx3 x1(0)+

f1(1)ɸx1 x1(-1)+f2(1)ɸx2 x1(-1)+f3(1)ɸx3 x1(-1) →(3.15)

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)

and F contains the filter coefficients. This equation is similar to equation (3.5).

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.

• That sequence is divided into ‘n’ no. of parts, and the whole matrix is divided

by the maximum value of all the values of the sequence matrix. This is

required to achieve scaling of the seismic trace.

• Autocorrelation sequences are found for all the ‘n’ parts of the sequence.

• All these sequence values are added to get the corresponding sequence’s

expected values.

• Desired output can be defined, or a prewhitening parameter is considered.

• Crosscorrelation sequences for the seismic trace and desired sequence are

found.

• These sequences are added, to ghe the corresponding expected values.

• Filter matrix is found by dividing the crosscorrelation matrix with

autocorrelation matrix. This matrix contains the filter coefficients.

• Now convolution is performed with the seismic trace and the filter

coeffecients, and its results are stored into the output matrix.

• This output matrix is multiplied by a scalar value, which is the maximum

value of the raw seismic trace. This is done for the sake of scaling.

• Output matrix values are plotted, which gives the filtered seismic wave.

14

PROGRAM:

clc; %clears screen

close all; %closes all opened figure window

seq=seqq/max(seqq); %scaling factor

n=2; %n gives the no of divisions of the given

%sequence

l=lc/n; %length of each division

x=seq(1:l); %first sub sequence of the parent sequence

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

sx12=sum(x12); %expected value of x1 and x2

sx22=sum(x22); %expected value of x2 x2

dx2=xcorr(d,x(2,:)); %crosscorrelation of d and x2

sdx2=sum(dx2); %expected value of d and x2

xx=[sdx1;sdx2]; %formation of crosscorrelation matrix

y=conv(seq,f); %gives the filtered seismic data, un-scaled

y=y*max(seqq); %scaling

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

16

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.19X104 which is a huge value, and it is just because of noise.

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

signals, KirtiSrivastav, V.P. Dimri, 1991.

2. http://science.howstuffworks.com/physical-science-channel.htm

3. http://ngri.org.in/

4. http://www.mathworks.com/products/matlab/

data filtering.

estimating earthquake engineering parameters, by M. Segou, N. Voulgaris

Processing Using MATLAB.

23

23