0% found this document useful (0 votes)
292 views35 pages

Basis Pursuit Seismic Inversion:: A MATLAB Implementation

This document summarizes a MATLAB implementation of Basis Pursuit seismic inversion. It begins with an introduction comparing sparse spikes and sparse layers assumptions. It then describes the sparse layers assumption and how it represents reflectivity as a summation of layer responses. The document outlines the Basis Pursuit inversion method, which finds a sparse solution to matching seismic data by minimizing an objective function of data misfit and solution sparsity. It presents synthetic and real data examples showing the method's ability to resolve thin layers better than sparse spikes inversion. Code for constructing the reflectivity and seismic dictionaries and solving the inversion is also provided.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
292 views35 pages

Basis Pursuit Seismic Inversion:: A MATLAB Implementation

This document summarizes a MATLAB implementation of Basis Pursuit seismic inversion. It begins with an introduction comparing sparse spikes and sparse layers assumptions. It then describes the sparse layers assumption and how it represents reflectivity as a summation of layer responses. The document outlines the Basis Pursuit inversion method, which finds a sparse solution to matching seismic data by minimizing an objective function of data misfit and solution sparsity. It presents synthetic and real data examples showing the method's ability to resolve thin layers better than sparse spikes inversion. Code for constructing the reflectivity and seismic dictionaries and solving the inversion is also provided.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Basis Pursuit Seismic Inversion:

A MATLAB Implementation

Sonny Winardhi and Ahmad Syahputra

Geophysical Engineering Department,


Faculty of Mining and Petroleum Engineering,
Institute of Technology Bandung
Agenda
• Introduction
• Basis Pursuit Seismic Inversion
• Synthetic Test
• Real Data Results
• Concluding Remarks
Introduction
• Inversion of seismic reflection data for the layered subsurface impedance
suffers to non-uniqueness problem  There exist an infinite number of
reflectivity models that can explain the data equally well. A common approach
for finding a useful solution is to use some a priori constraints.

• Sparse-spikes inversion, for example, assumes that the earth impedance


structure is blocky, resulting to a sparse reflectivity series that when convolve
to a wavelet matches the seismic data.

• In this paper, the earth impedance structure is assumed to be represented


as the superposition of a limited number of layers, and consequently, the
seismogram is represented as the superposition of a limited number of layer
responses  sparse layers assumption

Sparse Spikes vs Sparse Layers


Fundamental assumption of the sparse-spike method

Sparse reflectivity

Russell, B (1988)
Result 1

Russell, B (1988)

Result 2
Single most Likely Addition (SMLA) algorithm

Russell, B (1988)
The procedure for updating the wavelet

Note: Between each iteration above, a separate iteration on reflectivity


(previous slide) has been done. Russell, B (1988)
Test on synthetic seismogram

Russell, B (1988)
Introduction
• Inversion of seismic reflection data for the layered subsurface impedance
suffers to non-uniqueness problem  There exist an infinite number of
reflectivity models that can explain the data equally well. A common approach
for finding a useful solution is to use some a priori constraints.

• Sparse-spikes inversion, for example, assumes that the earth impedance


structure is blocky, resulting to a sparse reflectivity series that when convolve
to a wavelet matches the seismic data.

• In this paper, the earth impedance structure is assumed to be represented


as the superposition of a limited number of layers, and consequently, the
seismogram is represented as the superposition of a limited number of layer
responses  sparse layers assumption

Sparse Spikes vs Sparse Layers


Sparse Layers Assumption

The reflector pair can be decomposed into unique odd (ro)


and even (re) pairs

re = δ(t) + δ(t + n∆t)


ro = δ(t) − δ(t + n∆t)

c δ(t)+ d δ(t + n∆t) = a (re) + b (ro)


Sparse Layers Assumption
The entire reflectivity series is thus represented as a summation of
layer reflectivities with m being the layer number and M being the total
number of layers (Zhang and Castagna, 2011)

The seismogram equation is obtained by convolving the above


equation with the seismic wavelet,

wre and wro is seismic responses constituting G


Sparse Layers Assumption

In matrix notation:
d = Gm
In matrix notation:
Basis Pursuit Seismic Inversion (BPI)

d = Gm + n
d = seismic data
m = sparse layer coefficients
G = wavelet kernel matrix
n = noise

Basis pursuit method is used to solve the above decomposition by


finding the solution m that minimizes the objective function below :

min [ || d-Gm ||2 + λ || m ||1 ]

the subscripts refer to the L2 and L1 norms, respectively, and λ is the


regularization parameter that controls the sparseness of the solution.
Synthetic Test
Synthetic with noise
Free noise Noise 10%

Synthetic wedge sections simulating the noise-free (upper-left panel) and


noisy data (upper-right panel) and the corresponding BPI results (lower
panel).
Synthetic with noise
Noise 20% Noise 30%
Synthetic with noise
Noise 40% Noise 50%
Real Data
Well Data
Lambda = 5
Lambda = 105
Lambda = 205
Lambda = 305
Lambda = 355
Lambda = 405
Lambda = 505
Statistic
Lambda vs Correlation
Lambda vs Error Coefficients

Lambda Lambda
Real Data Results

Comparison between the reflectivity series (RC) computed at well location and the
BPI recovered reflectivities demonstrates the ability of the BPI method in finding the
sparse layered representation of the subsurface. Note that despite good seismogram
matches, the RC error is observed to be somewhat greater in the upper portion of
the data due to the fact of the time varying wavelet effect.
Real Data Results
Basis Pursuit Inv Sparse Spike Inv

Clear & Good Continuity

Resolves thin beds better

Results of inversion using BPI (left panel) and sparse-spike inversion, SSI
methods (right panel) showing that the BPI is superior than the SSI. Note on the
fine-layered and very good continuity image of the BPI result.
Concluding Remarks
• Sparse-layer inversion can be accomplished by BPI
approach assuming that subsurface reflectivities is
decomposed by a pattern consisting a series of odd and
even pairs of spikes with varying thicknesses.

• BPI resolves thin beds better than the conventional SSI.

• Quicker implementation of Basis Pursuit (BP) solver still


need to be done.
References
• Cheman, K. M., 2006, Optimization Techniques for Solving
Basis Pursuit Problems: Master Thesis of Applied
Mathematics, North Carolina State University.
• Nguyen, T., and J. P. Castagna, 2010, High-resolution
reflectivity inversion: Journal of Seismic Exploration, 19.
• Puryear, C. I., and J. P. Castagna, 2008, Layer-thickness
determination and stratigraphic interpretation using
spectral inversion: Theory and application: Geophysics, 73,
no. 2.
• Zhang, R., and J. P. Castagna, 2011, Seismic sparse-layer
reflectivity inversion using basis pursuit decomposition,
Geophysics, 76, R147-R158.
MatrixDictionary.m
function [MD_RC MD_Seis] = MatrixDictionary (nSample,nMin,nMax,Wavelet)
np = length(Wavelet);
%Define the Dictionary
MD_RC = zeros(nSample,2*nSample*nMax);
MD_Seis = MD_RC;
ii = 0;
for m=1:nSample
for n=nMin:nMax
%Even component
Evtemp =zeros(nSample,1);
LPdecs.m
Evtemp(m) = 1; function [r,rw,x]=LPdecs(MD_RC, MD_Seis,
Evtemp(m+n) = 1; Trace, alpha)
seisEv = conv(Evtemp,Wavelet);
%Odd component [m,n]=size(MD_Seis);
Otemp=zeros(nSample,1); Gmatrix=[MD_Seis' alpha*eye(n)]; %Included
Otemp(m) = 1; Damping Factor
Otemp(m+n) = -1;
seisOdd = conv(Otemp,Wavelet); bvector=ones(n,1);
if m+n <=nSample cvector=[-Trace; zeros(n,1)];
ii=ii+1;
%Build Dictionary RC %Define lower and upper bound
MD_RC(:,2*ii-1) = Evtemp; lb=[zeros(m,1);-ones(n,1)];
MD_RC(:,2*ii) = Otemp;
%Build Dictionary Seismic ub=[inf(m,1);ones(n,1)];
if mod(np,2)~=0 [primal,obj,exitflag,output,dual]=linprog(cvect
MD_Seis(:,2*ii-1) = seisEv(fix(np/2)+1:length(seisEv)-fix(np/2));
MD_Seis(:,2*ii) = seisOdd(fix(np/2)+1:length(seisEv)-fix(np/2));
or,[],[],Gmatrix, bvector,lb,ub);
else %Result
MD_Seis(:,2*ii-1) = seisEv(fix(np/2):length(seisEv)-fix(np/2));
x=dual.eqlin;
MD_Seis(:,2*ii) = seisOdd(fix(np/2):length(seisEv)-fix(np/2));
end r = MD_RC*x;
else rw = MD_Seis*x;
break;
end
end
end
%Erase Zeros Column
MD_RC(:,2*ii+1:size(MD_RC,2))=[];
MD_Seis(:,2*ii+1:size(MD_Seis,2))=[];
Special thank to the undergraduate and graduate students
who most of the times happily stay overnight at the seismic
laboratory, FTTM-ITB. Their constant heart-cheering moral
support are really appreciated.
“Thank you guys.”

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy