Lecture 22 Exemplary Inverse Problems including Filter Design
description
Transcript of Lecture 22 Exemplary Inverse Problems including Filter Design
Lecture 22
Exemplary Inverse Problemsincluding
Filter Design
SyllabusLecture 01 Describing Inverse ProblemsLecture 02 Probability and Measurement Error, Part 1Lecture 03 Probability and Measurement Error, Part 2 Lecture 04 The L2 Norm and Simple Least SquaresLecture 05 A Priori Information and Weighted Least SquaredLecture 06 Resolution and Generalized InversesLecture 07 Backus-Gilbert Inverse and the Trade Off of Resolution and VarianceLecture 08 The Principle of Maximum LikelihoodLecture 09 Inexact TheoriesLecture 10 Nonuniqueness and Localized AveragesLecture 11 Vector Spaces and Singular Value DecompositionLecture 12 Equality and Inequality ConstraintsLecture 13 L1 , L∞ Norm Problems and Linear ProgrammingLecture 14 Nonlinear Problems: Grid and Monte Carlo Searches Lecture 15 Nonlinear Problems: Newton’s Method Lecture 16 Nonlinear Problems: Simulated Annealing and Bootstrap Confidence Intervals Lecture 17 Factor AnalysisLecture 18 Varimax Factors, Empircal Orthogonal FunctionsLecture 19 Backus-Gilbert Theory for Continuous Problems; Radon’s ProblemLecture 20 Linear Operators and Their AdjointsLecture 21 Fréchet DerivativesLecture 22 Exemplary Inverse Problems, incl. Filter DesignLecture 23 Exemplary Inverse Problems, incl. Earthquake LocationLecture 24 Exemplary Inverse Problems, incl. Vibrational Problems
Purpose of the Lecture
solve a few exemplary inverse problems
image deblurringdeconvolution filters
minimization of cross-over errors
Part 1
image deblurring
three point blur(applied to each row of pixels)
null vectors are highly oscillatory
solve with minimum length
note that GGT can deduced analytically
and is Toeplitzmight lead to a computational advantage
Solution Possibilities1. Use sparse matrix for G together with mest=G’*((G*G’)\d)
(maybe damp a little, too)
2. Use analytic version of GGTtogether with mest=G’*(GGT\d)
(maybe damp a little, too)
3. Use sparse matrix for Gtogether with bicg() to solve GGTλ=d (maybe with a little damping, too)and then use mest=GTλ
Solution Possibilities1. Use sparse matrix for G together with mest=G’*((G*G’)\d)
(maybe damp a little, too)
2. Use analytic version of GGTtogether with mest=G’*(GGT\d)
(maybe damp a little, too)
3. Use sparse matrix for Gtogether with bicg() to solve GGTλ=d (maybe with a little damping, too)and then use mest=GTλ
we used the simplest, which
worked fine
500 1000 1500
200
400
600
800
1000
1200
1400
true image
500 1000 1500
200
400
600
800
1000
1200
1400
blurred image
500 1000 1500
200
400
600
800
1000
1200
1400
reconstructed image
400 600 800
500
600
700
800
900400 600 800
500
600
700
800
900400 600 800
500
600
700
800
900
image blurred due to camera motion(100 point blur)
500 1000 1500
200
400
600
800
1000
1200
1400
true image
500 1000 1500
200
400
600
800
1000
1200
1400
blurred image
500 1000 1500
200
400
600
800
1000
1200
1400
reconstructed image
400 600 800
500
600
700
800
900400 600 800
500
600
700
800
900400 600 800
500
600
700
800
900
(A) (B) (C)
(D) (E) (F)
pixel number pixel number pixel number
pixe
l num
ber
pixe
l num
ber
pixel number
[G-g ]728
0 200 400 600 800 1000 1200 1400-50
0
50
row
gene
raliz
ed in
vers
e
0 200 400 600 800 1000 1200 14000
0.2
0.4
0.6
0.8
row
gene
raliz
ed in
vers
eR 728 row number
row number(A)
(B) sidelobes
Part 2
deconvolution filter
Convolution
general relationship forlinear systems
with translational invariance
Convolution
general relationship forlinear systems
with translational invariance
model m(t)and
data d(t)related by linear operator
Convolution
general relationship forlinear systems
with translational invariance
only relative time matters
underlying principle
linear superposition
time , t, after impulse
d(t)=
g(t)
0
time , t, after impulse
m(t)=δ(t
)0
If the input of a spike m(t)=δ(t)
spike
causes the output of d(t)=g(t)
m(t0)g(tt0)
m(t)
time, tt0
d(t)
time, tt0
spike of amplitude, m(t0)
Then the general input m(t)
causes the general output d(t)=m(t)*g(t)
convolution d=m*g
discrete convolution d=m*gstandard matrix from d=Gm
seismic reflection sounding
want airgun pulse to be as spiky as possible
p(t) = g(t) * r(t) pressure = airgun pulse * sea floor response
so as to be able to detect pulsesin sea floor responsep(t) ≈ r(t)
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1
0
1
time, t
x(t)
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.5
0
0.5
time, t
ginv (t
)
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-0.5
0
0.5
time, t
g*gin
v (t)
time, tg(t)actual airgun pulse is ringy
so construct a deconvolution filter m(t) so that
g(t) *m(t) = δ(t) and apply it to the data
p(t)*m(t) = g(t)*m(t)*r(t) = r(t) p(t) =g(t) * r(t)
g(t) *m(t) = δ(t) and apply it to the data
p(t)*m(t) = g(t)*m(t)*r(t) = r(t) p(t) =g(t) r(t)
this is the equation we need to solve
so construct a deconvolution filter m(t) so that
100
g(t) *m(t) = δ(t) Gm = d discrete
approximation of delta function
m =
use discrete approximation of convolution
...
solve with damped least squares
mest = [GTG + ε2I]-1 GTdwith d = [1, 0, 0, ..., 0]T(or something similar)
matrices GTG and GTd can be calculated
analytically
approximately Toeplitz with elements
approximately Toeplitz with elements
autocorrelation of g
cross-correlation of g and d
Solution Possibilities1. Use sparse matrix for G together with mest=(G’*G)\(G’*d)
(maybe damping a little, too)
2. Use analytic versions of GTG and GTd together with mest=GTG\GTd
(maybe damp a little, too)
3. Never form G, just work with its columns, guse bicg() to solve GTG m = GTd but use conv() to compute GT(Gv)
4. Same as 3 but add a priori information of smoothness
Solution Possibilities1. Use sparse matrix for G together with mest=(G’*G)\(G’*d)
(maybe damping a little, too)
2. Use analytic versions of GTG and GTd together with mest=GTG\GTd
(maybe damp a little, too)
3. Never form G, just work with its columns, guse bicg() to solve GTG m = GTd but use conv() to compute GT(Gv)
4. Same as 3 but add a priori information of smoothness
we used this complicated but very fast method
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1
0
1
time, t
x(t)
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.5
0
0.5
time, t
ginv (t
)
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-0.5
0
0.5
time, t
g*gin
v (t)
time, ttime, ttime, tg(t)
m(t)m(t)*
g(t)(A)
(B)
(C)
(A) Original
0.5 1 1.5 2 2.5 3
-2
0
2
time, t
d(g)
0.5 1 1.5 2 2.5 3-2
-1
0
1
2
time, t
(B) After deconvolution
d(t)d(t)*
m(t)
Part 3
minimization of cross-over errors
2 4 6 8
2
4
6
8
true gravity
2 4 6 8
2
4
6
8
tracks
2 4 6 8
2
4
6
8
obs gravity
2 4 6 8
2
4
6
8
pre gravity
longitude
lati
tude
lati
tude
true
estimated
1 2 3 4 5 6 7 8 9
1
2
3
4
5
6
7
8
9
pre gravity
-50
0
50
100
grav
ity
anom
aly,
mga
l
longitude
note streaks
general idea
data s is measured along tracks
data along each track is off by an additive constant
theory
sjobs (track i) = sj
true (track i) + m(track i)
goal is to estimate the constants by minimizing the error at track intersections
5
6
7
8
1
23
4
cross-over points
ith intersection hasascending track Ai and descending track Di
sAiobs= sAi
true + mAi
sDiobs= sDi
true + mDi
subtract
sAiobs-sDi
obs= mAi- mDi
has form
d=Gm
the matrix G is very sparse
every row is all zeros, except for a single +1 and a single -1
note that this problem has an inherent non-uniqueness
m is determined only to an overall additive constant
one possibility is to use damped least squares, to choose the smallest m
(you can always add a constant later)
the matrices GTG and GTd can be calculated semi-analytically
recipestarting with zeroed GTG and GTd
Solution Possibilities1. Use sparse matrix for G together with damped least squares
mest=(G’*G+e2*speye(M,M))\(G’*d)
2. Use analytic versions of GTG and GTd add damping directly to the diagonal of GTGthen use mest=GTGpe2I\GTd
3. Use sparse matrix for Gtogether with bicg() version of damped least squares
4. Methods 1 or 2, but use hard constraint instead of damping to implement Σi mi = 0
Solution Possibilities1. Use sparse matrix for G together with damped least squares
mest=(G’*G*e2*speye(M,M))\(G’*d)
2. Use analytic versions of GTG and GTd add damping directly to the diagonal of GTGthen use mest=GTG\GTd
3. Use sparse matrix for Gtogether with bicg() version of damped least squares
4. Methods 1 or 2, but use hard constraint instead of damping
our choice
2 4 6 8
2
4
6
8
true gravity
2 4 6 8
2
4
6
8
tracks
2 4 6 8
2
4
6
8
obs gravity
2 4 6 8
2
4
6
8
pre gravity
longitudelongitude
lati
tude
lati
tude
lati
tude
lati
tude
(A) (B)
(D)(C)
1 2 3 4 5 6 7 8 9
1
2
3
4
5
6
7
8
9
pre gravity
-50
0
50
100
gravity anomaly, m
gal
longitude longitude