structured matrix computationspcha/hno/chap4.pdfstructured matrix computations 1 basic structures...
TRANSCRIPT
![Page 1: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/1.jpg)
Structured Matrix Computations
1 Basic Structures for One-Dimensional Problems
– the role of boundary conditions
2 BCCB Matrices
– periodic boundary conditions
3 Symmetric Toeplitz-plus-Hankel Matrices
– reflexive boundary conditions
4 Kronecker Product Matrices
– when the variables separate in the PSF
5 Summary of Fast Algorithms
6 Creating Realistic Test Data
02625 SCI Chapter 4 1 / 79
![Page 2: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/2.jpg)
The Linear Deblurring Model
b = A x + e
Given:a blurred and noisy imageb = vec(B)and a BIG blurring matrix A.
Goal:Compute an approximationof the true image x = vec(X).
02625 SCI Chapter 4 2 / 79
![Page 3: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/3.jpg)
Useful Matrix Factorizations
Singular Value Decomposition (SVD)
A = UΣVT
where all matrices are real
Σ = diag(σ1, σ2, . . . , σN) , σ1 ≥ σ2 ≥ · · · ≥ σN ≥ 0
U = [ u1 , u2 , . . . , uN ], V = [ v1 , v2 , . . . , vN ]
UTU = I , VTV = I
Spectral DecompositionA = UΛ U∗
where the matrices are usually complex
Λ = diag(λ1, λ2, . . . , λN) – no ordering
U = [ u1 , u2 , . . . , uN ]
U∗ U = I, where U∗ = complex conjugate of UT
02625 SCI Chapter 4 3 / 79
![Page 4: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/4.jpg)
Chapter Goal
The SVD and Spectral Decomposition can be used to:
Investigate sensitivity of image deblurring problem→ Chapter 5.
Construct image deblurring algorithms→ Chapter 6.
To compute these decompositions efficiently for large matrices,we must exploit structure → this chapter.
Question: What is the matrix A and how do we get it?
02625 SCI Chapter 4 4 / 79
![Page 5: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/5.jpg)
Basic Structures: One-Dimensional Problems
Recall:
Each blurred pixel is a weighted sum of the corresponding pixel andits neighbors in the true image.
For example, if
x =
x1x2x3x4x5
and b =
b1b2b3b4b5
then
b3 = � x1 + � x2 + � x3 + � x4 + � x5
The weights come from the PSF.
02625 SCI Chapter 4 5 / 79
![Page 6: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/6.jpg)
An example, p = PSF array, b = A x = sum of weighted PSF’s:
x =
x1x2x3x4x5
, p =
p1p2p3p4p5
and b =
b1b2b3b4b5
b =
p3p4p500
x1
+
p2p3p4p50
x2
+
p1p2p3p4p5
x3 +
0p1p2p3p4
x4 +
00p1p2p3
x5
02625 SCI Chapter 4 6 / 79
![Page 7: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/7.jpg)
1. “Rotate” the PSF p 180 degrees about center:
x =
x1x2x3x4x5
,
p5p4p3p2p1
and b =
b1b2b3b4b5
2. Match coefficients of rotated PSF and x:
x1x2x3x4x5
p5p4p3p2p1
and b =
b1b2b3b4b5
02625 SCI Chapter 4 7 / 79
![Page 8: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/8.jpg)
3. Multiply corresponding components and sum them:x1x2x3x4x5
p5p4p3p2p1
and b =
b1b2b3b4b5
to obtain
b3 = p5x1 + p4x2 + p3x3 + p2x4 + p1x5
This is one-dimensional convolution.
02625 SCI Chapter 4 8 / 79
![Page 9: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/9.jpg)
Same idea when x is longer than p:
x1x2x3x4x5x6x7x8x9
p5p4p3p2p1
and b =
b1b2b3b4b5b6b6b8b9
where we obtain from the convolution
b5 = p5x3 + p4x4 + p3x5 + p2x6 + p1x7
02625 SCI Chapter 4 9 / 79
![Page 10: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/10.jpg)
If the weights fall outside the true image scene:
?x1x2x3x4x5
p5p4p3p2p1
b =
b1b2b3b4b5
then
b2 = p5 ? + p4x1 + p3x2 + p2x3 + p1x4
02625 SCI Chapter 4 10 / 79
![Page 11: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/11.jpg)
Impose boundary conditions:
wx1x2x3x4x5
p5p4p3p2p1
b =
b1b2b3b4b5
then
b2 = p5 w + p4x1 + p3x2 + p2x3 + p1x4
02625 SCI Chapter 4 11 / 79
![Page 12: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/12.jpg)
Impose boundary conditions, such as zero
0x1x2x3x4x5
p5p4p3p2p1
b =
b1b2b3b4b5
then
b2 = p4x1 + p3x2 + p2x3 + p1x4
02625 SCI Chapter 4 12 / 79
![Page 13: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/13.jpg)
Impose boundary conditions, such as periodic
x5x1x2x3x4x5
p5p4p3p2p1
b =
b1b2b3b4b5
then
b2 = p5x5 + p4x1 + p3x2 + p2x3 + p1x4
02625 SCI Chapter 4 13 / 79
![Page 14: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/14.jpg)
Impose boundary conditions, such as reflexive
x1x1x2x3x4x5
p5p4p3p2p1
b =
b1b2b3b4b5
then
b2 = p5x1 + p4x1 + p3x2 + p2x3 + p1x4
02625 SCI Chapter 4 14 / 79
![Page 15: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/15.jpg)
In General, We Can Write
b1b2b3b4b5
=
p5 p4 p3 p2 p1
p5 p4 p3 p2 p1p5 p4 p3 p2 p1
p5 p4 p3 p2 p1p5 p4 p3 p2 p1
w1
w2
x1x2x3x4x5y1y2
“empty element” denotes 0
zero BC ⇒ wi = yi = 0
periodic BC ⇒ w1 = x4, w2 = x5, y1 = x1, y2 = x2
reflexive BC ⇒ w1 = x2, w2 = x1, y1 = x5, y2 = x4
02625 SCI Chapter 4 15 / 79
![Page 16: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/16.jpg)
Therefore, for zero boundary conditions we get:b1b2b3b4b5
=
p3 p2 p1p4 p3 p2 p1p5 p4 p3 p2 p1
p5 p4 p3 p2p5 p4 p3
x1x2x3x4x5
Here A is a Toeplitz matrix .
Note that
the middle column is identical to p, and
the middle row [ p5 p4 p3 p2 p1 ] consists of the elements of pin reverse order.
02625 SCI Chapter 4 16 / 79
![Page 17: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/17.jpg)
For periodic boundary conditions we get:b1b2b3b4b5
=
p3 p2 p1 p5 p4p4 p3 p2 p1 p5p5 p4 p3 p2 p1p1 p5 p4 p3 p2p2 p1 p5 p4 p3
x1x2x3x4x5
Here A is a circulant matrix .
02625 SCI Chapter 4 17 / 79
![Page 18: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/18.jpg)
For reflexive boundary conditions we get:
b1b2b3b4b5
=
p3 p2 p1p4 p3 p2 p1p5 p4 p3 p2 p1
p5 p4 p3 p2p5 p4 p3
+
p4 p5p5
p1p1 p2
x1x2x3x4x5
Here A is a Toeplitz-plus-Hankel matrix .
02625 SCI Chapter 4 18 / 79
![Page 19: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/19.jpg)
Two-Dimensional Problems
As with one-dimensional problems, to compute pixel bij :
1 Rotate the PSF P by 180 degrees.
2 Locate it at the desired position.
3 Match coefficients of rotated PSF and X.
4 Multiply corresponding components and sum them.
02625 SCI Chapter 4 19 / 79
![Page 20: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/20.jpg)
For example, to compute b22
x11 x12 x13x21 x22 x23x31 x32 x33
p11 p12 p13p21 p22 p23p31 p32 p33
b11 b12 b13b21 b22 b23b31 b32 b33
X P B
02625 SCI Chapter 4 20 / 79
![Page 21: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/21.jpg)
Rotate, multiply, and sum:
x11p33
x12p32
x13p31
x21p23
x22p22
x23p21
x31p13
x32p12
x33p11
b11 b12 b13
b21 b22 b23b31 b32 b33
b22 = p33x11 + p32x12 + p31x13 +
p23x21 + p22x22 + p21x23 +
p13x31 + p12x32 + p11x33
02625 SCI Chapter 4 21 / 79
![Page 22: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/22.jpg)
Consider what happens at the edges:
x11 x12 x13
x21 x22 x23
x31 x32 x33
p33 p32 p31
p23 p22 p21
p13 p12 p11
b11 b12 b13b21 b22 b23b31 b32 b33
b11 = p33 ? + p32 ? + p31 ? +
p23 ? + p22x11 + p21x12 +
p13 ? + p12x21 + p11x22
02625 SCI Chapter 4 22 / 79
![Page 23: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/23.jpg)
Again, we need to impose boundary conditions:
x11 x12 x13
x21 x22 x23
x31 x32 x33
p33 p32 p31
p23 p22 p21
p13 p12 p11
b11 b12 b13b21 b22 b23b31 b32 b33
Zero:
b11 = p33 0 + p32 0 + p31 0 +
p23 0 + p22x11 + p21x12 +
p13 0 + p12x21 + p11x22
02625 SCI Chapter 4 23 / 79
![Page 24: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/24.jpg)
Again, we need to impose boundary conditions:
x11 x12 x13
x21 x22 x23
x31 x32 x33
p33 p32 p31
p23 p22 p21
p13 p12 p11
b11 b12 b13b21 b22 b23b31 b32 b33
Periodic:
b11 = p33 x33 + p32 x31 + p31 x32 +
p23 x13 + p22x11 + p21x12 +
p13 x23 + p12x21 + p11x22
02625 SCI Chapter 4 24 / 79
![Page 25: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/25.jpg)
Again, we need to impose boundary conditions:
x11 x12 x13
x21 x22 x23
x31 x32 x33
p33 p32 p31
p23 p22 p21
p13 p12 p11
b11 b12 b13b21 b22 b23b31 b32 b33
Reflexive:
b11 = p33 x11 + p32 x11 + p31 x12 +
p23 x11 + p22x11 + p21x12 +
p13 x21 + p12x21 + p11x22
02625 SCI Chapter 4 25 / 79
![Page 26: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/26.jpg)
Matrix Structures
Zero boundary conditions ⇒ A is BTTB
Periodic boundary conditions ⇒ A is BCCB
Reflexive boundary conditions ⇒ A is sum ofBTTB, BTHB, BHTB, and BHHB (notation: BHT HH
TT TH+ B ?)
Legend:
BTTB: Block Toeplitz with Toeplitz blocks
BCCB: Block circulant with circulant blocks
BTHB: Block Toeplitz with Hankel blocks
BHTB: Block Hankel with Toeplitz blocks
BHHB: Block Hankel with Hankel blocks
02625 SCI Chapter 4 26 / 79
![Page 27: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/27.jpg)
Zero Boundary Conditions ⇒ BTTB matrix
b11b21b31b12b22b32b13b23b33
=
p22 p12 p21 p11p32 p22 p12 p31 p21 p11
p32 p22 p31 p21p23 p13 p22 p12 p21 p11p33 p23 p13 p32 p22 p12 p31 p21 p11
p33 p23 p32 p22 p31 p21p23 p13 p22 p12p33 p23 p13 p32 p22 p12
p33 p23 p32 p22
x11x21x31x12x22x32x13x23x33
b = vec(B), p = vec(P), x = vec(X)
02625 SCI Chapter 4 27 / 79
![Page 28: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/28.jpg)
Periodic Boundary Conditions ⇒ BCCB matrix
b11b21b31b12b22b32b13b23b33
=
p22 p12 p32 p21 p11 p31 p23 p13 p33p32 p22 p12 p31 p21 p11 p33 p23 p13p12 p32 p22 p11 p31 p21 p13 p33 p23p23 p13 p33 p22 p12 p32 p21 p11 p31p33 p23 p13 p32 p22 p12 p31 p21 p11p13 p33 p23 p12 p32 p22 p11 p31 p21p21 p11 p31 p23 p13 p33 p22 p12 p32p31 p21 p11 p33 p23 p13 p32 p22 p12p11 p31 p21 p13 p33 p23 p12 p32 p22
x11x21x31x12x22x32x13x23x33
b = vec(B), p = vec(P), x = vec(X)
02625 SCI Chapter 4 28 / 79
![Page 29: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/29.jpg)
Reflecive Boundary Conditions ⇒ . . .
With reflexive boundary conditions A is much more complicated.For example, the first row of A is:
[ p22 + p23 + p32 + p33, p12 + p13, 0, p21 + p31, p11, 0, 0, 0, 0 ]
It can be shown that A is a sum of four structured matrices, with BTTB,BTHB, BHTB, and BHHB structure, respectively.
02625 SCI Chapter 4 29 / 79
![Page 30: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/30.jpg)
Separable Blur
Horizontal and vertical components separate.
In this case, the PSF array has rank = 1:
P = c rT =
c1c2c3
[ r1 r2 r3]
=
c1r1 c1r2 c1r3c2r1 c2r2 c2r3c3r1 c3r2 c3r3
02625 SCI Chapter 4 30 / 79
![Page 31: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/31.jpg)
Separable Blur
Forming the matrix with this special PSF we obtain (zero BC):
A =
c2r2 c1r2 c2r1 c1r1c3r2 c2r2 c1r2 c3r1 c2r1 c1r1
c3r2 c2r2 c3r1 c2r1c2r3 c1r3 c2r2 c1r2 c2r1 c1r1c3r3 c2r3 c1r3 c3r2 c2r2 c1r2 c3r1 c2r1 c1r1
c3r3 c2r3 c3r2 c2r2 c3r1 c2r1c2r3 c1r3 c2r2 c1r2c3r3 c2r3 c1r3 c3r2 c2r2 c1r2
c3r3 c2r3 c3r2 c2r2
02625 SCI Chapter 4 31 / 79
![Page 32: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/32.jpg)
Separable Blur
A =
r2
c2 c1c3 c2 c1
c3 c2
r1
c2 c1c3 c2 c1
c3 c2
0
r3
c2 c1c3 c2 c1
c3 c2
r2
c2 c1c3 c2 c1
c3 c2
r1
c2 c1c3 c2 c1
c3 c2
0 r3
c2 c1c3 c2 c1
c3 c2
r2
c2 c1c3 c2 c1
c3 c2
02625 SCI Chapter 4 32 / 79
![Page 33: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/33.jpg)
Separable Blur
We see that for this special PSF we obtain (with zero BC):
A = Ar ⊗ Ac =
r2 r1r3 r2 r1
r3 r2
⊗ c2 c1
c3 c2 c1c3 c2
Here ⊗ denotes the Kronecker product.
02625 SCI Chapter 4 33 / 79
![Page 34: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/34.jpg)
The Wonderful World of Kronecker Products
Definition:
Ar =
[a11 a12a21 a22
]⇒ Ar ⊗ Ac =
[a11Ac a12Ac
a21Ac a22Ac
]Transposition and inversion:
(Ar ⊗ Ac)T = ATr ⊗ AT
c
(Ar ⊗ Ac)−1 = A−1r ⊗ A−1c
SVD:
(UrΣrVTr )⊗ (UcΣcV
Tc ) = (Ur ⊗Uc)(Σr ⊗Σc)(Vr ⊗ Vc)T
Matrix-vector product:
(Ar ⊗ Ac) vec(X) = vec(Ac X ATr )
02625 SCI Chapter 4 34 / 79
![Page 35: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/35.jpg)
Separable Blur with Boundary Conditions
Similar structures occur for other boundary conditions:
A = Ar ⊗ Ac
Zero boundary conditions:
Ar is Toeplitz, defined by rAc is Toeplitz, defined by c
Periodic boundary conditions:
Ar is circulant, defined by rAc is circulant, defined by c
Reflexive boundary conditions:
Ar is Toeplitz-plus-Hankel, defined by rAc is Toeplitz-plus-Hankel, defined by c
02625 SCI Chapter 4 35 / 79
![Page 36: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/36.jpg)
Summary of Matrix Structures
BC Non-separable Separable PSFPSF
zero BTTB Kronecker product ofToeplitz matrices
periodic BCCB Kronecker product ofcirculant matrices
reflexive BTTB+BTHB Kronecker product of+BHTB+BHHB Toeplitz-plus-Hankel matrices
02625 SCI Chapter 4 36 / 79
![Page 37: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/37.jpg)
Computations with BCCB Matrices
Recall that with periodic boundary conditions A is a BCCB matrix:
b11b21b31b12b22b32b13b23b33
=
p22 p12 p32 p21 p11 p31 p23 p13 p33p32 p22 p12 p31 p21 p11 p33 p23 p13p12 p32 p22 p11 p31 p21 p13 p33 p23p23 p13 p33 p22 p12 p32 p21 p11 p31p33 p23 p13 p32 p22 p12 p31 p21 p11p13 p33 p23 p12 p32 p22 p11 p31 p21p21 p11 p31 p23 p13 p33 p22 p12 p32p31 p21 p11 p33 p23 p13 p32 p22 p12p11 p31 p21 p13 p33 p23 p12 p32 p22
x11x21x31x12x22x32x13x23x33
b = vec(B), p = vec(P), x = vec(X)
02625 SCI Chapter 4 37 / 79
![Page 38: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/38.jpg)
The One-Dimensional Discrete Fourier Transform
If x ∈ Rn then x = DFT (x) ∈ Cn is defined by
xk =1√n
n∑j=1
xj exp(−2πı(j − 1)(k − 1)/n) , ı =√−1 .
There exists a unitary matrix Fn ∈ Cn×n such that
x =√n Fn x ⇔ x =
1√n
F∗nx
in which F∗n = conj(Fn)T .
02625 SCI Chapter 4 38 / 79
![Page 39: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/39.jpg)
The Two-Dimensional DFT
If X ∈ Cm×n then the 2-D DFT is defined by
X = (√m Fm) X (
√n Fn)∗ =
√N Fm X F∗n
with N = mn (1-D DFTs along the columns and rows of X).
From the Kronecker product relations we get
vec(X) =√N(conj(Fn)⊗ Fm
)vec(X) =
√N F vec(X) ,
where F = conj(Fn)⊗ Fm.
02625 SCI Chapter 4 39 / 79
![Page 40: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/40.jpg)
Important BCCB Matrix Property
Every BCCB matrix has the same set of eigenvectors:
A = F∗ΛF(
= F∗Λ (F∗)∗)
where
F is the two-dimensional discrete Fourier transform matrixF is complexF is unitary: F∗ F = F F∗ = IF∗ is the matrix of eigenvectors of AΛ = diagonal complex matrix containing eigenvalues of A
Computations with F can be done very efficiently:
F times a vector requires O(N logN) flops
using the 2-D Fast Fourier Transform (FFT) algorithm.
02625 SCI Chapter 4 40 / 79
![Page 41: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/41.jpg)
FFT Computations
In Matlab, if A = F∗ΛF is N × N, then:
fft2 ↔√N F and ifft2 ↔ 1√
NF∗
Specifically, the following operations are equivalent:
◦√N F x ⇔ fft2(X)
◦ 1√N
F∗ x ⇔ ifft2(X)
where x = vec(X), and X is m × n with N = mn.
02625 SCI Chapter 4 41 / 79
![Page 42: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/42.jpg)
Eigenvalues of BCCB Matrix
A = F∗ΛF ⇒ F A = ΛF ⇒ F a1 = Λ f1
where
a1 = first column of A
f1 = first column of F:
f1 =1√N
11...1
Thus
F a1 = Λ f1 =1√N
λ
where λ is a vector containing the eigenvalues of A.
02625 SCI Chapter 4 42 / 79
![Page 43: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/43.jpg)
Computing the Eigenvalues of BCCB Matrix
Thus, to compute eigenvalues of A, we need to:
Multiply the matrix√NF by the first column of A.
Or, equivalently, apply fft2 to a two-dimensional array containingthe elements of the first column of A.
Can get this array from the PSF: p11 p12 p13p21 p22 p23p31 p32 p33
←→
p22 p23 p21p32 p33 p31p12 p13 p11
P first column of A
circshift(P, 1-[2,2])
02625 SCI Chapter 4 43 / 79
![Page 44: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/44.jpg)
Efficient BCCB Computations
Thus, for zero boundary conditions, we have a BCCB matrix defined by:
the PSF array P
the center of PSF = [row, col]
To compute eigenvalues (spectral values) in this case:
S = fft2( circshift(P, 1-center) );
Note that S is an array, not a vector, and eigenvalues are not sorted.
02625 SCI Chapter 4 44 / 79
![Page 45: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/45.jpg)
Additional BCCB Computations
If A is the BCCB matrix defined by the PSF array P, and
b = A x = F∗ΛF x
then to compute b use
S = fft2( circshift(P, 1 - center) );
B = ifft2(S .* fft2(X));
B = real(B);
whereb = vec(B) and x = vec(X) .
Small PSF Arrays. If the PSF array P is smaller than the B and Ximages, then use our Matlab function padPSF to embed the p × q array Pin a larger array of size m × n.
02625 SCI Chapter 4 45 / 79
![Page 46: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/46.jpg)
Additional BCCB Computations
If A is the BCCB matrix defined by the PSF array P, and
xnaive = A−1b = F∗Λ−1F b
then to compute x use
S = fft2( circshift(P, 1 - center) );
X = ifft2(fft2(B) ./ S);
X = real(X);
whereb = vec(B) and x = vec(X) .
02625 SCI Chapter 4 46 / 79
![Page 47: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/47.jpg)
BTTB+BTHB+BHTB+BHHB Matrices
With reflexive boundary conditions A is a
BTTB + BTHB + BHTB + BHHB
matrix defined by the PSF.
Double symmetry condition: if
P =
0 0 0
0 P 00 0 0
where
P is (2k − 1)× (2k − 1) with center located at (k, k)
P = fliplr(P) = flipud(P)
02625 SCI Chapter 4 47 / 79
![Page 48: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/48.jpg)
BTTB+BTHB+BHTB+BHHB Matrix Properties
If the PSF satisfies the double symmetry condition, then:
A is symmetric
A is block symmetric
Each block in A is symmetric
A has the spectral decomposition
A = CTΛC
where C is the two-dimensional discrete cosine transform (DCT)matrix.
C is real, and CT contains the eigenvectors.
As with FFTs, computations with C cost O(N logN) flops.
02625 SCI Chapter 4 48 / 79
![Page 49: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/49.jpg)
DCT Computations
With Matlab’s the image processing toolbox, if A = CTΛC is N × N,then:
dct2 ↔ C and idct2 ↔ CT
Specifically, the following operations are equivalent:
C x ⇔ dct2(X)CTx ⇔ idct2(X)
where x = vec(X), and X is m × n with N = mn.
Without the image processing toolbox, use our codes:
dct2 → dcts2 and idct2 → idcts2.
02625 SCI Chapter 4 49 / 79
![Page 50: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/50.jpg)
DCT Relations and Eigenvalues
A = CTΛC ⇒ C A = ΛC ⇒ C a1 = Λ c1
where
a1 = first column of A
c1 = first column of C,
Thus, the eigenvalues of C are given by
C a1 = Λ c1 ⇒ λi =[C a1]i[c1]i
02625 SCI Chapter 4 50 / 79
![Page 51: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/51.jpg)
More DCT Relations
Thus, to compute eigenvalues of A, we need to:
Multiply the matrix C to the first column of A.
Or, equivalently, apply dct2 to a two-dimensional array containingthe elements of the first column of A.
Can get this array by adding four shifted PSFs, which we haveimplemented as:
dctshift(P, center)
We also need the first column of C, i.e., c1 = C e1.
Note that e1 = vec(e1) with
e1 = zeros(m,n); e1(1,1) = 1;
Thus we get the desired column via dct2(e1).
02625 SCI Chapter 4 51 / 79
![Page 52: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/52.jpg)
Efficient Computations with DCT
Thus, for reflexive boundary conditions, with
doubly symmetric PSF P
center of PSF = [row, col]
To compute eigenvalues (spectral values) in this case:
e1 = zeros(size(P)); e1(1,1) = 1;
S = dct2( dctshift(P, center) ) ./ dct2(e1);
02625 SCI Chapter 4 52 / 79
![Page 53: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/53.jpg)
Additional DCT Computations
If A is defined by a doubly symmetric PSF with reflexive boundaryconditions, and
b = A x = CTΛC x
then to compute b use
e1 = zeros(size(P)); e1(1,1) = 1;
S = dct2( dctshift(P, center) ) ./ dct2(e1);
B = idct2(S .* dct2(X));
whereb = vec(B) and x = vec(X)
02625 SCI Chapter 4 53 / 79
![Page 54: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/54.jpg)
Additional DCT Computations
If A is defined by a doubly symmetric PSF with reflexive boundaryconditions, and
xnaive = A−1b = CTΛ−1C b
then to compute x use
e1 = zeros(size(P)); e1(1,1) = 1;
S = dct2( dctshift(P, center) ) ./ dct2(e1);
X = idct2(dct2(B) ./ S);
whereb = vec(B) and x = vec(X)
02625 SCI Chapter 4 54 / 79
![Page 55: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/55.jpg)
Separable PSFs and Kronecker Products
Recall: If the PSF has rank = 1,
P = c rT =
c1c2...cm
[ r1 r2 · · · rn]
then the blurring matrix has the form
A = Ar ⊗ Ac
where Ar is defined by r and Ac is defined by c.
Assume for now Ar and Ac are known.
02625 SCI Chapter 4 55 / 79
![Page 56: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/56.jpg)
Exploiting Kronecker Product Properties
Using the property:
b = (Ar ⊗ Ac) x ⇔ B = Ac X ATr
in Matlab we can compute
B = Ac*X*Ar’;
02625 SCI Chapter 4 56 / 79
![Page 57: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/57.jpg)
Using the property:
b = (Ar ⊗ Ac) x ⇔ B = Ac X ATr
and if Ar and Ac are nonsingular,
(Ar ⊗ Ac)−1 = A−1r ⊗ A−1c
we obtainX = A−1c B A−Tr
In Matlab we can compute
X = Ac \ B / Ar’;
02625 SCI Chapter 4 57 / 79
![Page 58: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/58.jpg)
We can compute SVD of small matrices:
Ar = UrΣrVTr and Ac = UcΣcV
Tc
Then
A = Ar ⊗ Ac
= (UrΣrVTr )⊗ (UcΣcV
Tc )
= (Ur ⊗Uc)(Σr ⊗Σc)(Vr ⊗ Vc)T
= SVD of big matrix A
Note: Do not need to explicitly form the big matrices
Ur ⊗Uc, Σr ⊗Σc, Vr ⊗ Vc
02625 SCI Chapter 4 58 / 79
![Page 59: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/59.jpg)
To compute inverse solution from SVD of small matrices:
xnaive = A−1b = VΣ−1UTb
is equivalent to
Xnaive = A−1c BA−Tr = VcΣ−1c UT
c BUrΣ−1r VT
r
A Matlab implementation could be:
[Ur, Sr, Vr] = svd(Ar);
[Uc, Sc, Vc] = svd(Ac);
S = diag(Sc) * diag(Sr)’;
X = Vc * ( (Uc’ * B * Ur)./S ) * Vr’;
02625 SCI Chapter 4 59 / 79
![Page 60: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/60.jpg)
Getting Ar and Ac from the PSF ArrayTo construct Ar and Ac we must find r and c such that
P = crT
Compute the SVD: P = UΣVT =∑
i uiσivTi
If P has rank = 1, then σ2 = σ3 = · · · = 0, and
c =√σ1u1 r =
√σ1v1
If P has rank 6= 1, then
c =√σ1u1 r =
√σ1v1
give the approximations
P ≈ c rT and A ≈ Ar ⊗ Ac
02625 SCI Chapter 4 60 / 79
![Page 61: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/61.jpg)
Some Comments to the Matlab Code
The singular vectors r and c can be computed using thesvd or svds functions.
Since we need at most two singular values, svds is convenient:
[U, S, V] = svds(P, 2);
If P is m × n then U is m × 2, V is n × 2 and S is 2× 2.
Check to see if P is separable. For example, if
S(2,2)/S(1,1) > small tol
then P is not separable.
02625 SCI Chapter 4 61 / 79
![Page 62: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/62.jpg)
A Matlab Example
P = psfGauss(32);
mesh(P)
plot(P(:,16)
[U, S, V] =
svds(P,2);
c =
sqrt(S(1,1))*U(:,1);
r =
sqrt(S(1,1))*V(:,1);
mesh(c*r’)
plot(c)
Check sign of singular vectors and change if necessary.
02625 SCI Chapter 4 62 / 79
![Page 63: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/63.jpg)
Construct Ar and Ac
Given r and c:
zero BC: build Toeplitz Ar, Ac
periodic BC: build circulant Ar, Ac
reflexive BC: build Toeplitz-plus-Hankel Ar, Ac
02625 SCI Chapter 4 63 / 79
![Page 64: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/64.jpg)
Construct Ar and Ac for Zero BC
Suppose
P =
p11 p12 p13 p14p21 p22 p23 p24p31 p32 p33 p34
, center = [2, 3]
Then, with zero BC
A = Ar ⊗ Ac =
r3 r2 r1r4 r3 r2 r1
r4 r3 r2r4 r3
⊗ c2 c1
c3 c2 c1c3 c2
02625 SCI Chapter 4 64 / 79
![Page 65: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/65.jpg)
If k = 3 = center(2), then Ar = toeplitz(col,row), where
col =[rk rk+1 · · · rn 0 · · · 0
]row =
[rk rk−1 · · · r1 0 · · · 0
]If k = 2 = center(1), then Ac =toeplitz(col,row), where
col =[ck ck+1 · · · cn 0 · · · 0
]row =
[ck ck−1 · · · c1 0 · · · 0
]
Ar =
r3 r2 r1r4 r3 r2 r1
r4 r3 r2r4 r3
Ac =
c2 c1c3 c2 c1
c3 c2
02625 SCI Chapter 4 65 / 79
![Page 66: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/66.jpg)
Construct Ar and Ac for Zero BC in Matlab
Matlab function to build Toeplitz Ar, Ac, given
middle column defining entries of matrix: c = r or c
loc. of center (diagonal) entry: k = center(1) or center(2)
function T = buildToep(c, k)
n = length(c);
col = zeros(n,1); row = col;
col(1:n-k+1) = c(k:n);
row(1:k) = c(k:-1:1);
T = toeplitz(col, row);
end
Then, given P = c*r’ and center of P,
Ac = buildToep(c, center(1));
Ar = buildToep(r, center(2));
02625 SCI Chapter 4 66 / 79
![Page 67: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/67.jpg)
Construct Ar and Ac for Periodic BC
P =
p11 p12 p13 p14p21 p22 p23 p24p31 p32 p33 p34
, center = [2, 3]
Then, with periodic BC
A = Ar ⊗ Ac =
r3 r2 r1 r4r4 r3 r2 r1r1 r4 r3 r2r2 r1 r4 r3
⊗ c2 c1 c3
c3 c2 c1c1 c3 c2
02625 SCI Chapter 4 67 / 79
![Page 68: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/68.jpg)
If k = 3 = center(2), then Ar = toeplitz(col,row), where
col =[rk rk+1 · · · rn r1 · · · rk−1
]row =
[rk rk−1 · · · r1 rn · · · rk+1
]If k = 2 = center(1), then Ac = toeplitz(col,row), where
col =[ck ck+1 · · · cn c1 · · · ck−1
]row =
[ck ck−1 · · · c1 cn · · · ck+1
]
Ar =
r3 r2 r1 r4r4 r3 r2 r1r1 r4 r3 r2r2 r1 r4 r3
Ac =
c2 c1 c3c3 c2 c1c1 c3 c2
02625 SCI Chapter 4 68 / 79
![Page 69: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/69.jpg)
Construct Ar and Ac for Periodic BC in Matlab
Matlab function to build circulant Ar, Ac, given
middle column defining entries of matrix: c = r or c
loc. of center (diagonal) entry: k = center(1) or center(2)
function T = buildCirc(c, k)
n = length(c);
col = [c(k:n); c(1:k-1)];
row = [c(k:-1:1); c(n:-1:k+1)];
T = toeplitz(col, row);
end
Then, given P = c*r’ and center of P
Ac = buildCirc(c, center(1));
Ar = buildCirc(r, center(2));
02625 SCI Chapter 4 69 / 79
![Page 70: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/70.jpg)
Construct Ar and Ac for Reflexive BC
In this caseA = Ar ⊗ Ac
where
Ar = Toeplitz + Hankel
Ac = Toeplitz + Hankel
Use buildToep for Toeplitz parts.
How to get Hankel parts?
02625 SCI Chapter 4 70 / 79
![Page 71: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/71.jpg)
Recall Reflexive BC for 1-D Problems
c5 c4 c3 c2 c1
c5 c4 c3 c2 c1c5 c4 c3 c2 c1
c5 c4 c3 c2 c1c5 c4 c3 c2 c1
x2x1x1x2x3x4x5x5x4
=
c3 c2 c1c4 c3 c2 c1c5 c4 c3 c2 c1
c5 c4 c3 c2c5 c4 c3
+
c4 c5c5
c1c1 c2
x1x2x3x4x5
02625 SCI Chapter 4 71 / 79
![Page 72: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/72.jpg)
Construct Ar and Ac for Reflexive BC in Matlab
Matlab function to build Hankel part for Ar, Ac, given
middle column defining entries of matrix: c = r or c
loc. of center (diagonal) entry: k = center(1) or center(2)
function T = buildHank(c, k)
n = length(c);
col = zeros(n,1); row = col;
col(1:n-k) = c(k+1:n);
row(n-k+2:n) = c(1:k-1);
T = hankel(col, row);
end
Then, given P = c*r’ and center of P
Ac = buildToep(c, center(1)) + buildHank(c, center(1));
Ar = buildToep(r, center(2)) + buildHank(r, center(2));
02625 SCI Chapter 4 72 / 79
![Page 73: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/73.jpg)
Construct Ar and Ac for All Three BC
[U, S, V] = svds(P, 2);
c = sqrt(S(1,1))*U(:,1);
r = sqrt(S(1,1))*V(:,1);
switch BC
case ’zero’
Ac = buildToep(c, center(1));
Ar = buildToep(r, center(2));
case ’reflexive’
Ac = buildToep(c, center(1)) + buildHank(c, center(1));
Ar = buildToep(r, center(2)) + buildHank(r, center(2));
case ’periodic’
Ac = buildCirc(c, center(1));
Ar = buildCirc(r, center(2));
end
02625 SCI Chapter 4 73 / 79
![Page 74: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/74.jpg)
Summary of Fast Algorithms
For spatially invariant PSFs, we have the following fast algorithms.
Boundary Matrix FastPSF condition structure algorithm
Arbitrary Periodic BCCB 2-dim FFT
Doubly sym. Reflexive BTTB+BTHB 2-dim DCT+BHTB+BHHB
Separable Arbitrary Kronecker product 2 small SVDs
02625 SCI Chapter 4 74 / 79
![Page 75: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/75.jpg)
Creating Realistic Test Data
Issues that must be considered:
Small PSF.
Creating blurred image without imposing artificial boundaryconditions.
Additive noise.
02625 SCI Chapter 4 75 / 79
![Page 76: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/76.jpg)
PSF Sizes
It is often the case that
size(P) < size(B) and size(X)
In this case we should “pad” P with zeros to increase size.
Since we do this a lot, it is useful to have a function:
function Ppad = padPSF(P, size)
Ppad = zeros(size);
Ppad(1:size(P,1), 1:size(P,2)) = P;
end
With this padding, center of Ppad = center of P
02625 SCI Chapter 4 76 / 79
![Page 77: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/77.jpg)
Creating Blurred Image
If we are given blurred image data:
We try to make a best guess at what boundary condition is mostrealistic.
Construct A using this boundary condition.
If we are creating blurred image data:
We should simulate actual boundaries of an infinite scene.
This can be done by blurring a large “true” image scene.
Then extract the central part of the image.
02625 SCI Chapter 4 77 / 79
![Page 78: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/78.jpg)
Creating Blurred Image: Matlab example
Xbig = double(imread(’iograyBorder.tif’));
[P, center] = psfGauss([512,512], s);
Pbig = padPSF(P, size(Xbig));
Sbig = fft2(circshift(Pbig, 1-center));
Bbig = real(ifft2(Sbig .* fft2(Xbig)));
X = Xbig(51:562,51:562);
B = Bbig(51:562,51:562);
Use P, center, B, X as realistic (noise free) test data.
02625 SCI Chapter 4 78 / 79
![Page 79: Structured Matrix Computationspcha/HNO/chap4.pdfStructured Matrix Computations 1 Basic Structures for One-Dimensional Problems {the role of boundary conditions 2 BCCB Matrices {periodic](https://reader034.vdocuments.site/reader034/viewer/2022043007/5f93cf6959c9291aa822cf30/html5/thumbnails/79.jpg)
Additive Noise
Additive noise ⇒ add random perturbations to blurred image.
Use Matlab randn function.
Scale perturbations to data.
Add to blurred image.
For example,
E = randn(size(B));
E = E / norm(E(:));
B = B + 0.01*norm(B(:))*E;
generates “1% noise.”
02625 SCI Chapter 4 79 / 79