You are on page 1of 27

QAB 4083

SEISMIC DATA PROCESSING

Lecture 7c: Wiener Filter for Spiking


Deconvolution

Abdul Halim Abdul Latiff


Center for Seismic Imaging
Internal
Geosciences Department, UTP
Objective
 Inverse & Least Square filter only applicable if:
 Desired output is a zero-delay spike (1,0,0,0,….).
 Wavelet is minimum phase.

 How about a non-zero delay desired output ?


 Desired output = 2,1,0,0,….
 A non-minimum phase wavelet.

 Wiener filter  Used for non-minimum input wavelet.

 At the end of this lecture, student should be able to


differentiate, analyze and evaluate TWO types of Wiener
Filter:
 Spiking Deconvolution
Internal
 Predictive Deconvolution
Wiener Filter
 Wiener Filter, f(t) has the least-square error, (L) between
the actual and desired output is minimum

L=∑(dt-yt)2
And we know that
y(t)=f(t)*x(t) = ∑fτ.xt-τ
Hence:

L= ∑[dt- (∑fτ.xt-τ)]2
Our goal is to compute the filter coefficients (f0, f1, f2,
f3,…..) so that the error is minimum.

Internal
Wiener Filter
 The minimum error can be attained by setting the
variation of L with respect to fi=0.
 Based on this equation:
L= ∑[dt- (∑fτ.xt-τ)]2

L= ∑[dt]2 - 2 ∑dt2.∑fτ.xt-τ) + ∑[∑fτ.x t-τ]2


By taking partial derivative and setting it to zero L
0
L   fi
 2 dt xt i  2   f xt  xt i  0
f i t t   
 
2    f xt  xt i  2 dt xt i
t    t

 
  f x
t
t   xt i   d t xt i
 t

 f  xt  xt i   dt xt i
t t

Internal
Wiener Filter



f  x
t
t  xt i   dt xt i
t

x
t
t  xt i = ri r ie the auto-correlation of x (input)
Note that:
d x
t
t t i = gi ie the cross-correlation of desired (d) with x

Hence, for each ith term we get



f r   g i i i=0,1,2,3,4,5…..

Internal
Toeplitz Matrix
This can be re-written in matrix called Toeplitz Matrix
 r0 r1 r2 ... rn 1   f 0   g 0 
r r0 r1 ... rn  2   f1   g1 
1
 r2 r1 r0 ... rn 3   f 2    g 2 
    
: : : : :  :   : 
 rn rn 1 rn  2 ... r0   f n 1   g n 1 
The autocorrelation lag The cross
of the input correlation of the
input with desired
output

Since the autocorrelation matrix is in Toeplitz, the optimum


wiener filter coefficient can be computed using LEVINSON
Internal
RECURSION
Wiener Filter
 We can calculate the least square error of this process
L= ∑[dt]2 - 2 ∑dt2.∑fτ.xt-τ) + ∑[∑fτ.x t-τ]2
we know that
g   dt x t 
r 
we know that
 x x  t t
g  d x
  f r  t 
t
gi
r x x t t 
i

so ... gi   f r i 
so ... L min   dt2  2 f g   f  f i  xt  xt i
 
 d2  2 f g   f  f i  xt  xt i
t i
L min  2

L min   t  2 f g   f  f i r i
t
t d   i

L min  
t d t
2
 2
 f g  
 f 
i f i r i

 d 2  2 f g  f g
 
 2 f g 
t 2 i
L d f g
L min
min  
tt
t
t 
   
  

min   d 
dtt2   ff gg
2
L min
tt 

Internal
Optimum Wiener Filter
 The optimum wiener filter (f1,….,fn-1) is optimum in that the
least-squares errors between the actual and desired output is
minimum.
 When the desired output is zero-lag spike (1,0,0,0..) then
wiener filter is identical to the least-square inverse filter.
 Least square inverse filter is a special case of wiener filter
 Wiener filter applies to any type of desired output
 Type 1: Zero-lag spike
 Type 2: Spike at arbitrary lag
 Type 3: Time advance from input series
 Type 4: Zero phase wavelet
 Type 5: Any desired arbitrary shape

Internal
Spiking Deconvolution
Optimum Wiener Filter:
Desired output = zero lag spike (1,0,0,0…)

Input Desired
wavelet Output
Cross
correlation
Auto  r0 r1 r2 ... rn1   f0   g0 
correlation r r0 r1 ... rn2   f1   g1 
Wiener 1
filter  r2 r1 r0 ... rn3   f 2    g 2 
    
* : : : : :  :   : 
rn rn1 rn2 ... r0   f n1   g n1 
Actual
Output
Internal
Spiking Deconvolution
 r0 r1 r2 ... rn 1   f 0   g 0 
r r0 r1 ... rn  2   f1   g1 
1
 r2 r1 r0 ... rn 3   f 2    g 2 
    
: : : : :  :   : 
 rn rn 1 rn  2 ... r0   f n 1   g n 1 

If we divide the matrix by f0 and let ai = fi/fo, and v = go/fo


 r0 r1 r2 ... rn 1   10   v 
r r0 r1 ... rn 2   a1  0 
1  
 r2 r1 r0 ... rn 3   a2   0 
    
: : : : :   :  :
 rn rn 1 rn  2 ... r0   an 1  0 

Solution of this matrix can be obtained using the


LEVINSON RECURSION
Internal
Spiking Deconvolution
•2 point filter (1,a1), n=2 • Consider a 3 points filter
(1, a1, a2) : (2nd iteration)
 r0 r1   1   v  **
 
r     r0 r1 r2   1  v 
'
1 r0   a1  0 
 r r r  a'    0 
 1 0 1 1  
so we get ....... r0 + r1a1 = v
 r2 r1 r0   a2'   0 
........ r1 + r0 a1 = 0

-r1
thus ......... a1 = Solve the filter coefficients
r0
(a1’, and a2’) using the
same steps
Note that from 1st iteration
we get a1 and v

Internal
Spiking Deconvolution
rewrite the equations (2 points filter) by adding a row e  r2  r1a1
 r0 r1 r2   1  v 
 r0 r1   1  v 
r       ............... 
 r1 r0 r1     
  a1    0 
 1 r0   a1   
0

 r2 r1 r0 
0  
e 

2. re-write @ changing the row order of the above


 r2 r1 r0   0  e 
r r0 r1   a1   
   0 
 1  

 r0 r1 r2  
 1  
v 

3. multiply both sides with c (is yet to be determined)


 r2 r1 r0   0   ce 
r r1     
 1 r0   ca1    0 

 r0 r1 r2 
 c   
 cv 

and substract from (1)
 r0 r1 r2   1   r2 r1 r0   0   v   ce 
r r1     r1       
 1 r0   a1    r1 r0   ca1    0    0 

 r2 r1 r0 
0    r0 r1 r2 
 c   
e    cv 

 r0 r1 r2   1  0   v  ce 
r r1     
 1 r0   a1  ca1    0  0 

 r2 r1 r0 
 0c   
 e  cv 
Internal
 r r r   a  ca    0  0 
 1 0 1 1 1  
 r2 r1 r0   0  c  e  cv 
Spiking Deconvolution
4. compare with equation ** we have
 1   1 0 
 a    a  ca 
 1  1 1

 a 2   0  c 
and
v '  v  ce 
   
0
    0  0 
 0  e  cv 
 

Solve for c & v:


New filter coefficient a1’ & a2’ can be calculate

Internal
Spiking Deconvolution
 The recursive scheme is repeated to determine the next
set of filter coefficients.

 Thus yields the Wiener filter (1, a1, a2, a3, a4, ……, an-i) of
desired length.

Internal
Wiener vs Least Square
 Comparing the matrix equation of Wiener and least square
inverse filter
Least square Wiener
 r0 r1 r2 ... ... rn-1   1   v   r0 r1 r2 ... ... rn-1   f 0   g 0 
r ... ... rn-2   a1   0  r ... ... rn-2   f1   g1 
 1 r0 r1
   1 r0 r1
 r2 r1 r0 ... ... rn-3   a 2   0   r2 r1 r0 ... ... rn-3   f 2   g 2 
           
 : : : :.. :.. :   :   :   : : : :.. :.. :   :   : 
 : : : :.. :.. :   :   :   : : : :.. :.. :   :   : 
         
 rn-1 rn-2 rn-3 ... ... r0   an-1   0   rn-1 rn-2 rn-3 ... ... r0   f n-1   g n-1 

Two identical matrix

Auto-correlation is derived Auto-correlation is derived


from known source wavelet from input seismogram
Internal
Summary
 If input wavelet is not minimum phase, spiking decon
cannot convert to a perfect zero-lag spike.
 Amplitude spectrum is virtually flat
 Phase spectrum of output is not minimum phase
 Finally, spiking deconvolution operator is the inverse of
minimum phase equivalent of input wavelet. This
wavelet may or may not be minimum phase.

Internal
Problem with Spiking Deconvolution
 Example: Spiking deconvolution cannot compress wavelet
(-0.5, 1) to a zero lag spike (1,0,0).

input wavelet (-0.5,1)


desired output (1,0,0)
--------------------------------------------------------------------------
actual output Energy of error
inverse Filter 1 0 -4 16
5
LS Filter 21 - 218 - 214 336
441

 What if, design a non-zero lag filter that converts wavelet (-


0,5,1)?
 Is it going to yields less error than a zero lag spike filter ?
Internal
Shaping Filter
 Design a filter to convert (-0.5,1) to delayed spike (0,1,0)

STEPS
1. Compute the cross-correlation of
Input Desired
wavelet Output input wavelet and desired output.
2. Compute the auto-correlation of
Cross
correlation input wavelet.
Auto
correlation 3. Find the filter coefficients.
Wiener filter
4. Convolve with input wavelet to get
the actual output.
* 5. Calculate LS error between desired
Actual Output and actual.

Internal
Shaping Filter: Example
1. Compute the cross-correlation of input wavelet and
desired output

Input Desired
wavelet Output 0 1 0 output
Cross -0.5 1 1
Auto
correlation
-0.5 1 -0.5
correlation -0.5 0
Wiener filter

*
Actual Output

Internal
Shaping Filter: Example
2. Compute the auto-correlation of input wavelet

Input Desired
wavelet Output
-0.5 1 output
Cross
correlation
-0.5 1 1.25
Auto
correlation
-0.5 -0.5
Wiener filter

*
Actual Output

Internal
Shaping Filter: Example
3. Find the filter coefficients.

 r0 r1   a   g0 
r     
Input Desired 1 r0   b   g1 
wavelet Output

Cross 1.25 0.5  a   1 


 0.5 
1.25     0.5
correlation
Auto   b   
correlation

Wiener filter solve for a, and b


a 16
21

* b 2
21
Actual Output

21 , 
so the filter coefficient (a,b)=( 16 2
21 )

Internal
Shaping Filter: Example
4. Convolve with input wavelet to get the actual output

Input Desired
wavelet Output
-0.5 1 output
Cross 16/21 -8/21
correlation
Auto -2/21 16/21 17/21
correlation
-2/21 -2/21
Wiener filter

*
Actual Output

Internal
Shaping Filter: Example
5. Calculate LS error between desired and actual
L=∑(di – ai)2

Input Desired
wavelet Output Desired Actual L
Cross
0 -8/21
Auto
correlation 1 17/21
correlation 0 -2/21
Wiener filter 84/441

*
Actual Output

Internal
Shaping Filter: Example
If the desired output is zero-lag spike (1,0,0), instead
of delay-lag spike (0,1,0), the error is:
L=∑(di – ai)2
Input Desired
wavelet Output Desired Actual L
Cross
1 5/21
Auto
correlation 0 -8/21
correlation 0 -4/21
Wiener filter 336/441

*
Actual Output

Internal
Shaping Filter: Example
If the desired output is 2-lag spike (0,0,1), the error is:

Input Desired
wavelet Output Desired Actual L
Cross
0
Auto
correlation 0
correlation 1
Wiener filter ?

*
Actual Output

Internal
Shaping Filter: Summary
• Less error when converting wavelet (-0.5, 1) to delay
spike than to a zero lag spike
• In general, a series of desired outputs can be defined as
delayed spike
• If plot least square error as a function of delay:
 lag corresponds to least error is chosen to define the
desired delayed spike output LS Error

* 336/441
* 84/441
* ?? lag

• Actual output from wiener filter using this optimum


delayed spike  most compact possible result
Internal
Summary
 If input wavelet in minimum phase:
 Optimum delay of the desired output spike is zero.
 If input wavelet is mixed phase:
 Optimum delay is non-zero.
 If input wavelet is maximum phase:
 Optimum delay is length of wavelet.
 To obtain a better result with no delay in desired output:
 Apply a constant time shift to a delay spike result.
 Shift shaping filter operator as much as the delay in
the spike.
 Applying to the input wavelet.

Internal

You might also like