• Keine Ergebnisse gefunden

4. Operationen auf strukturierten Matrizen BCCB-Matrizen

N/A
N/A
Protected

Academic year: 2021

Aktie "4. Operationen auf strukturierten Matrizen BCCB-Matrizen"

Copied!
49
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

4. Operationen auf strukturierten Matrizen

BCCB-Matrizen

Zurück zum (3 × 3)-Beispiel: Sind die Randwerte periodisch, so ergibt sich etwa

b 2,1 = p 3,3 · x 1,3 + p 3,2 x 1,1 + p 3,1 x 1,2

+ p 2,3 · x 2,3 + p 2,2 x 2,1 + p 2,1 x 2,2 + p 1,3 · x 3,3 + p 1,2 x 3,1 + p 1,1 x 3,2 . Insgesamt:

 b 1,1

b 2,1

b 3,1

b 1,2

b 2,2

b 3,2 b 1,3 b 2,3 b 3,3

=

p 2,2 p 1,2 p 3,2 p 2,1 p 1,1 p 3,1 p 2,3 p 1,3 p 3,3 p 3,2 p 2,2 p 1,2 p 3,1 p 2,1 p 1,1 p 3,3 p 2,3 p 1,3 p 1,2 p 3,2 p 2,2 p 1,1 p 3,1 p 2,1 p 1,3 p 3,3 p 2,3 p 2,3 p 1,3 p 3,3 p 2,2 p 1,2 p 3,2 p 2,1 p 1,1 p 3,1

p 3,3 p 2,3 p 1,3 p 3,2 p 2,2 p 1,2 p 3,1 p 2,1 p 1,1

p 1,3 p 3,3 p 2,3 p 1,2 p 3,2 p 2,2 p 1,1 p 3,1 p 2,1 p 2,1 p 1,1 p 3,1 p 2,3 p 1,3 p 3,3 p 2,2 p 1,2 p 3,2

p 3,1 p 2,1 p 1,1 p 3,3 p 2,3 p 1,3 p 3,2 p 2,2 p 1,2

p 1,1 p 3,1 p 2,1 p 1,3 p 3,3 p 2,3 p 1,2 p 3,2 p 2,2

 x 1,1

x 2,1

x 3,1

x 1,2

x 2,2

x 3,2 x 1,3 x 2,3 x 3,3

mit einer BCCB-Matrix.

(2)

Zirkulante Matrizen

Ist A ∈ C n×n zirkulant, d.h.

A =

a 0 a 1 · · · a n−1

a n−1 a 0 · · · a n−2

.. . .. . . .. .. . a 1 a 2 · · · a 0

= p(S n ) :=

n−1

X

j=0

a j S n j

(mit dem zirkulanten Shift S n ∈ R n×n ), so gilt

A = F n H DF n , D = diag(λ 0 , . . . , λ n−1 ), mit der Matrix der diskreten Fourier-Transformation (DFT) (kurz:

Fourier-Matrix) (Jean Baptiste Joseph Fourier, 1768–1830) F n = 1

√ n h ω −kj n i

0≤k,j≤n−1 ∈ C n×n , ω n := exp 2πi n

= cos n

+ i sin n

(i 2 = −1). Die Eigenwerte von A sind gegeben durch

λ j = p(ω j n ), p(z) = a 0 + a 1 z + · · · + a n−1 z n−1 , j = 0, . . . , n − 1.

(3)

Fourier-Matrix

Dies folgt aus der Spektralzerlegung

S n = F n H D S F n , D S = diag(ω n 0 , ω n 1 , . . . , ω n n−1 ) des zirkulanten Shifts.

Wichtige Eigenschaften der Fourier-Matrix:

F n T = F n (aber F n H 6= F n für n > 2).

F n H F n = I n , d.h. F n ist unitär.

F n −1 = F n H = F n . Bezeichnungen.

• Diskrete Fourier-Transformation (diskrete Fourier-Analyse):

x ˆ = F n x , d.h. x ˆ k = 1

n

P n

j =1 exp(−2πi(j − 1)(k − 1)/n) x j .

• Inverse diskrete Fourier-Transformation (diskrete Fourier-Synthese):

x = F n −1 x ˆ , d.h. x k = 1

n

P n

j=1 exp(2πi (j − 1)(k − 1)/n) ˆ x j .

(4)

Fourier-Transformationen

Die „klassische“ Berechnung einer (inversen) diskreten Fourier-Transforma- tion (ein Matrix-Vektor-Produkt mit F n bzw. F n −1 ) erfordert offenbar O (n 2 ) komplexe Multiplikationen. Bei Anwendung der schnellen Fourier-Transforma- tion (FFT) reduziert sich dieser Aufwand auf O (n log 2 n) (James William Cooley (∗1926) and John Wilder Tuckey (1915–2000): An algorithm for the machine calculation of complex Fourier series, Math. Comp. 19, 297–301 (1965)).

Diese Verbesserung kann nicht überbewertet werden: „It [the FFT] has

changed the face of science and engineering so much that it is not an

exaggeration to say that life as we know it would be very different without the

FFT.“ [Charles Van Loan, Computational Frameworks for the Fast Fourier

Transform, SIAM, Philadelphia 1992, p. ix].

(5)

Die Idee der FFT

Wir setzen (aus schreibtechnischen Gründen) im Folgenden

ζ n = ¯ ω n = ω −1 n = exp

− 2πi n

= cos 2π

n

− i sin 2π

n

,

sodass F n = [ζ n kj ] 0≤k,j≤n−1 .

Außerdem sei n gerade, z.B. n = 8: Mit ζ := ζ 8 ist

F 8 =

1 1 1 1 1 1 1 1

1 ζ ζ 2 ζ 3 ζ 4 ζ 5 ζ 6 ζ 7 1 ζ 2 ζ 4 ζ 6 ζ 8 ζ 10 ζ 12 ζ 14 1 ζ 3 ζ 6 ζ 9 ζ 12 ζ 15 ζ 18 ζ 21 1 ζ 4 ζ 8 ζ 12 ζ 16 ζ 20 ζ 24 ζ 28 1 ζ 5 ζ 10 ζ 15 ζ 20 ζ 25 ζ 30 ζ 35 1 ζ 6 ζ 12 ζ 18 ζ 24 ζ 30 ζ 36 ζ 42 1 ζ 7 ζ 14 ζ 21 ζ 28 ζ 35 ζ 42 ζ 49

(wir lassen den Vorfaktor 1/ √

n weg).

(6)

Die Idee der FFT

Wegen ζ 8 = 1, d.h. ζ j = ζ k , wenn j − k (ohne Rest) durch 8 teilbar ist, folgt

F 8 =

1 1 1 1 1 1 1 1

1 ζ ζ 2 ζ 3 ζ 4 ζ 5 ζ 6 ζ 7 1 ζ 2 ζ 4 ζ 6 1 ζ 2 ζ 4 ζ 6 1 ζ 3 ζ 6 ζ ζ 4 ζ 7 ζ 2 ζ 5 1 ζ 4 1 ζ 4 1 ζ 4 1 ζ 4 1 ζ 5 ζ 2 ζ 7 ζ 4 ζ ζ 6 ζ 3 1 ζ 6 ζ 4 ζ 2 1 ζ 6 ζ 4 ζ 2 1 ζ 7 ζ 6 ζ 5 ζ 4 ζ 3 ζ 2 ζ 1

 .

Jetzt nummerieren wir die Zeilen von F 8 um: zuerst werden die mit geradem

(0,2,4,6), danach die mit ungeradem Index (1,3,5,7) gezählt. Die zugehörige

Pemutationsmatrix wird mit P bezeichnet.

(7)

Die Idee der FFT

PF 8 =

1 1 1 1 1 1 1 1

1 ζ 2 ζ 4 ζ 6 1 ζ 2 ζ 4 ζ 6 1 ζ 4 1 ζ 4 1 ζ 4 1 ζ 4 1 ζ 6 ζ 4 ζ 2 1 ζ 6 ζ 4 ζ 2 1 ζ ζ 2 ζ 3 ζ 4 ζ 5 ζ 6 ζ 7 1 ζ 3 ζ 6 ζ ζ 4 ζ 7 ζ 2 ζ 5 1 ζ 5 ζ 2 ζ 7 ζ 4 ζ ζ 6 ζ 3 1 ζ 7 ζ 6 ζ 5 ζ 4 ζ 3 ζ 2 ζ 1

=:

B 1,1 B 1,2

B 2,1 B 2,2

Wir untersuchen die einzelnen Blöcke: Wegen ζ = ζ 8 ist ζ 2 = ζ 4 , d.h.

B 1,1 = B 1,2 =

1 1 1 1

1 ζ 4 ζ 4 2 ζ 4 3 1 ζ 4 2 ζ 4 4 ζ 4 6 1 ζ 4 3 ζ 4 6 ζ 4 9

= F 4 .

(8)

Die Idee der FFT

Aus den Spalten 0,1,2 bzw. 3 von B 2,1 „klammern“ wir ζ 0 , ζ 1 , ζ 2 bzw. ζ 3 „aus“:

B 2,1 =

1 1 1 1

1 ζ 2 ζ 4 ζ 6 1 ζ 4 1 ζ 4 1 ζ 6 ζ 4 ζ 2

1 0 0 0

0 ζ 0 0

0 0 ζ 2 0 0 0 0 ζ 3

= F 4 D 4 .

Analog:

B 2,2 =

1 1 1 1

1 ζ 2 ζ 4 ζ 6 1 ζ 4 1 ζ 4 1 ζ 6 ζ 4 ζ 2

ζ 4 0 0 0

0 ζ 5 0 0 0 0 ζ 6 0

0 0 0 ζ 7

= F 44 D 4 ) = −F 4 D 4 .

Insgesamt erhalten wir

PF 8 =

F 4 F 4 F 4 D 4 −F 4 D 4

=

F 4 O O F 4

I 4 I 4 D 4 −D 4

.

(9)

FFT

Fazit:

Seien n gerade, σ die folgende (even/odd) Permutation σ = [0, 2 . . . , n − 2, 1, 3, . . . , n − 1]

und P = P σ die zugehörige Permutationsmatrix.

Dann besitzt die zeilenpermutierte Fourier-Matrix F n die Zerlegung

PF n =

F n/2 F n/2 F n/2 D n/2 −F n/2 D n/2

=

F n/2 O O F n/2

I n/2 I n/2 D n/2 −D n/2

.

Dabei bezeichnet D n/2 die Diagonalmatrix D n/2 = diag

ζ n 0 , ζ n 1 , . . . , ζ n n/2−1

∈ C (n/2)×(n/2)

mit ζ n = ¯ ω n = exp(−2πi/n).

(10)

FFT

Berechne jetzt x ˆ = F n x für ein x ∈ C n (n gerade).

Wegen der obigen Zerlegung von F n unterteilen wir dies in zwei Schritte:

1. Reduktionsschritt: Berechne z =

I n/2 I n/2

D n/2 −D n/2

x .

Für m = 8:

z 0 = x 0 + x 4 , z 1 = x 1 + x 5 , z 2 = x 2 + x 6 , z 3 = x 3 + x 7 z 4 = (x 0 − x 4 ), z 5 = (x 1 − x 5 )ζ n , z 6 = (x 2 − x 6 )ζ n 2 , z 7 = (x 3 − x 7 )ζ n 3

(n/2 komplexe Multiplikationen und n komplexe Additionen).

2. Berechne

F n/2 z (0 : n/2 − 1) und F n/2 z (n/2 : n − 1)

(zwei Fourier-Transformationen der Dimension n/2).

(11)

FFT

Ist n = 2 p eine Potenz von 2, so ist n/2 ebenfalls gerade und die beiden Fourier-Transformationen der Dimension n/2 können auf vier

Fourier-Transformationen der Dimension n/4 reduziert werden. Der Aufwand zur Reduktion beträgt 2 · n/4 = n/2 komplexe Multiplikationen (und

2 · n/2 = n komplexe Additionen). Diese Prozess wird solange fortgesetzt bis man eine Multiplikation mit F n auf n Multiplikationen mit F 1 = [1] reduziert hat (eine Multiplikation mit F 1 erfordert offenbar keinen Aufwand). Dieses

Reduktionsverfahren heißt schnelle Fourier-Transformation (FFT = Fast Fourier Transform).

Damit ist gezeigt:

Zur Durchführung einer schnellen Fourier-Transformation der Ordnung n = 2 p

sind n

2 p = n

2 log 2 (n) komplexe Multiplikationen

und n log 2 (n) komplexe Additionen erforderlich.

(12)

Bit-reversal

Die konventionelle Berechnung einer Fourier-Transformation der Länge n = 2 p durch F n x erfordert also 2 p+1 /p-mal mehr Multiplikationen als ihre Berechnung durch FFT. Wenn z.B. für p = 20 die FFT-Version eine Sekunde benötigt, so benötigt F n x etwa 29 Stunden.

Verbleibendes Problem: Bestimmt man x ˆ = F n x durch FFT, so erhält man nicht x, sondern einen permutierte Version ˆ y = Q x ˆ mit einer

Permutationsmatrix Q ∈ R n×n .

Es gilt: Besitzt für n = 2 p der Index j ∈ {0, 1, . . . , n − 1} die Binärdarstellung j = b p−1 2 p−1 + · · · + b 2 2 2 + b 1 2 + b 0 =: [b p−1 . . . b 2 b 1 b 0 ] 2 , und ist

r (j) := [b 0 b 1 b 2 . . . b p−1 ] 2 = b 0 2 p−1 + b 1 2 p−2 + b 2 2 p−3 + · · · + b p−1

(bit-reversal), dann gelten

x ˆ j = y r (j) und y j = ˆ x r (i ) .

(13)

FFT und Faltung

Bei periodischen Randbedingungen entspricht die eindimensionale Faltung der Multiplikation mit einer zirkulanten Matrix b = Ax .

Mit der Spektralzerlegung A = F n H DF n bietet sich folgendes Verfahren an:

Berechne y = F n x durch eine FFT.

Berechne z = Dy durch n Multiplikationen z j = d j,j y j , j = 1, 2, . . . , n.

Berechne b = F n H z durch eine FFT.

Die Eigenwerte von A (= die Diagonalelemente d j,j von D) ergeben sich aus F n A = DF n . Betrachet man die erste Spalte dieser Identität, so folgt

√ nF n a 1 = [d j,j ] 1≤j≤n ,

was eine weitere FFT erfordert.

Damit kann eine eindimensionale Faltung mit ( 3 2 log 2 (n) + 1)n Multiplikationen

realisiert werden.

(14)

BCCB-Matrix: 3 × 3 Beispiel

Für unser lineares Modell mit periodischen Randbedingungen erhalten wir im 2D-Fall für P, X ∈ R 3×3

 b 1,1 b 2,1 b 3,1 b 1,2

b 2,2

b 3,2

b 1,3

b 2,3

b 3,3

=

p 2,2 p 1,2 p 3,2 p 2,1 p 1,1 p 3,1 p 2,3 p 1,3 p 3,3

p 3,2 p 2,2 p 1,2 p 3,1 p 2,1 p 1,1 p 3,3 p 2,3 p 1,3 p 1,2 p 3,2 p 2,2 p 1,1 p 3,1 p 2,1 p 1,3 p 3,3 p 2,3 p 2,3 p 1,3 p 3,3 p 2,2 p 1,2 p 3,2 p 2,1 p 1,1 p 3,1

p 3,3 p 2,3 p 1,3 p 3,2 p 2,2 p 1,2 p 3,1 p 2,1 p 1,1

p 1,3 p 3,3 p 2,3 p 1,2 p 3,2 p 2,2 p 1,1 p 3,1 p 2,1

p 2,1 p 1,1 p 3,1 p 2,3 p 1,3 p 3,3 p 2,2 p 1,2 p 3,2 p 3,1 p 2,1 p 1,1 p 3,3 p 2,3 p 1,3 p 3,2 p 2,2 p 1,2 p 1,1 p 3,1 p 2,1 p 1,3 p 3,3 p 2,3 p 1,2 p 3,2 p 2,2

 x 1,1 x 2,1 x 3,1 x 1,2

x 2,2

x 3,2

x 1,3

x 2,3

x 3,3

(3)

mit einer BCCB-Matrix.

(15)

BCCB-Matrizen: Spektralzerlegung

Eine BCCB-Matrix

A =

A 1 A 2 · · · A m A m A 1 A m−1

.. . . .. .. . A 2 A 3 · · · A m

∈ R mn×mn ,

die aus zirkulanten Blöcken A j ∈ R n×n mit Spektralzerlegung A j = F n H D ˜ j F n , D ˜ j = diag

˜ λ (j) 1 , ˜ λ (j) 2 , . . . , λ ˜ (j n )

, (j = 1, 2, . . . , m) zusammengesetzt ist, besitzt die Faktorisierung

A = (I m ⊗ F n H )

D ˜ 1 D ˜ 2 · · · D ˜ m D ˜ m D ˜ 1 D ˜ m−1

.. . . .. .. . D ˜ 2 D ˜ 3 · · · D ˜ 1

(I m ⊗ F n ). (4)

(16)

Permutationsmatrizen

Um die Spektralzerlegung von A zu bestimmen, ist eine Permutation der blockzirkulanten Matrix aus Diagonalblöcken erforderlich.

Ist

π =

π(1) π(2) . . . π(n)

eine Permutation der Indexmenge {1, 2, . . . , n} (eine bijektive Abbildung von {1, 2, . . . , n} auf {1, 2, . . . , n}), dann ist die zugehörige Permutationsmatrix P = P π = [p i,j ] ∈ R n×n durch

p i,j =

1, falls j = π(i ), 0, falls j 6= π(i ), definiert. Alternativ

P π =

e T π(1) e T π(2)

.. . e T π(n)

(e j = j -ter Einheitsvektor).

(17)

Permutationsmatrizen: Eigenschaften

Beispiel.

π =

4 1 3 2 , P π =

0 0 0 1

1 0 0 0

0 0 1 0

0 1 0 0

 .

P π x =

0 0 0 1

1 0 0 0

0 0 1 0

0 1 0 0

 x 1

x 2

x 3

x 4

=

 x 4

x 1

x 3

x 2

=

 x π(1) x π(2) x π(3)

x π(4)

 .

Es gelten:

P π −1 = P π

−1

= P π T .

Ist A = [a i ,j ] ∈ C n×n mit den Zeilen z T 1 , z T 2 , . . . , z T n und Spalten

s 1 , s 2 , . . . , s n , so besitzt PA die Zeilen z T π(1) , z π(2) , . . . , z T π(n) und AP T die

Spalten s π(1) , s π(2) , . . . , s π(n) . Insbesondere ist PAP T = [a π(i),π(j ) ].

(18)

Transponierungspermutation

Wir betrachten speziell die sog. Transponierungspermutation π × der Menge {1, 2, . . . , mn} bzw. die zugehörige Permutationsmatrix P × ∈ R mn×mn :

π × =

[ 1 1 + n 1 + 2n · · · 1 + (m − 1)n 2 2 + n 2 + 2n · · · 2 + (m − 1)n

· · · · · ·

n − 1 2n + 1 3n − 1 · · · mn − 1

n 2n 3n · · · mn ]

Zuerst kommen die Indizes j = 1 mod n, dann die Indizes j = 2 mod n, . . . , dann die Indizes j = n − 1 mod n, schließlich die Indizes j = n mod n (j = 0 mod n) (jeweils in in ihrer natürlichen Reihenfolge).

Soll die Abhänigkeit von m und n betont werden, so schreiben wir π n,m bzw.

P n,m statt π × bzw. P × .

(19)

Transponierungspermutation: Beispiel

Für m = 4 und n = 3:

π × =

1 4 7 10 2 5 8 11 3 6 9 12

und

P × = P 3,4 =

1 0 0 0 0 0 0 0 0 0 0 0

0 0 0 1 0 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0 0 0 0 0

0 0 0 0 0 0 0 0 0 1 0 0

0 1 0 0 0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0 0 0 1 0

0 0 1 0 0 0 0 0 0 0 0 0

0 0 0 0 0 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 0 0 0 0 1

(20)

Transponierungspermutation: Eigenschaften

Ihren Namen verdankt die Transpositionspermutation der Eigenschaft vec(X T ) = P × vec(X ) für X ∈ C n×m .

Beispiel.

X =

11 12 13 14 21 22 23 24 31 32 33 34

 , X T =

11 21 31 12 22 32 13 23 33 14 24 34

 ,

P × vec(X ) =

11 21 31 12 22 32 13 23 33 14 24 34 T

=

11 12 13 14 21 22 23 24 31 32 33 34 T

,

also P × vec(X ) = vec(X T ).

(21)

Transponierungspermutation: Eigenschaften

P m,n = P n,m T .

Seien A ∈ R n×n , B ∈ R m×m sowie P n,m ∈ R mn×mn , dann B ⊗ A = P n,m T (A ⊗ B)P n,m .

Beispiel. Mit

F 4 = 1 2

1 1 1 1

1 −ı −1 ı

1 −1 1 −1

1 ı −1 −ı

 :

P 3,4 T (I 3 ⊗ F 4 )P 3,4 = P 3,4 T

F 4 O O O F 4 O O O F 4

 P 3,4 = 1 2

I 3 I 3 I 3 I 3 I 3 −ıI 3 −I 3 ıI 3 I 3 −I 3 I 3 −I 3 I 3 ıI 3 −I 3 −ıI 3

= F 4 ⊗ I 3 .

(22)

Transponierungspermutation: Anwendung auf Blockmatrizen

P n,m vertauscht die Blockstruktur einer (m × m)-Blockmatrix mit (n × n)-Blöcken in die einer (n × n)-Blockmatrix mit (m × m)-Blöcken:

P

n,m

˜ λ

(1)1

0 0 λ ˜

(2)1

0 0 ˜ λ

(3)1

0 0 λ ˜

(4)1

0 0 0 ˜ λ

(1)2

0 0 λ ˜

(2)2

0 0 ˜ λ

(3)2

0 0 λ ˜

(4)2

0 0 0 λ ˜

(1)3

0 0 λ ˜

(2)3

0 0 ˜ λ

(3)3

0 0 λ ˜

(4)3

˜ λ

(4)1

0 0 λ ˜

(1)1

0 0 ˜ λ

(2)1

0 0 λ ˜

(3)1

0 0 0 ˜ λ

(4)2

0 0 λ ˜

(1)2

0 0 ˜ λ

(2)2

0 0 λ ˜

(3)2

0 0 0 λ ˜

(4)3

0 0 λ ˜

(1)3

0 0 ˜ λ

(2)3

0 0 λ ˜

(3)3

˜ λ

(3)1

0 0 λ ˜

(4)1

0 0 ˜ λ

(1)1

0 0 λ ˜

(2)1

0 0 0 ˜ λ

(3)2

0 0 λ ˜

(4)2

0 0 ˜ λ

(1)2

0 0 λ ˜

(2)2

0 0 0 λ ˜

(3)3

0 0 λ ˜

(4)3

0 0 ˜ λ

(1)3

0 0 λ ˜

(1)3

˜ λ

(2)1

0 0 λ ˜

(3)1

0 0 ˜ λ

(4)1

0 0 λ ˜

(1)1

0 0 0 ˜ λ

(2)2

0 0 λ ˜

(3)2

0 0 ˜ λ

(4)2

0 0 λ ˜

(1)2

0 0 0 λ ˜

(2)3

0 0 λ ˜

(3)3

0 0 ˜ λ

(4)3

0 0 λ ˜

(1)3

P

Tn,m

(23)

Transponierungspermutation: Anwendung auf Blockmatrizen

=

λ ˜ (1) 1 ˜ λ (2) 1 ˜ λ (3) 1 ˜ λ (4) 1 0 0 0 0 0 0 0 0 λ ˜ (4) 1 ˜ λ (1) 1 ˜ λ (2) 1 ˜ λ (3) 1 0 0 0 0 0 0 0 0 λ ˜ (3) 1 ˜ λ (4) 1 ˜ λ (1) 1 ˜ λ (2) 1 0 0 0 0 0 0 0 0 λ ˜ (2) 1 ˜ λ (3) 1 ˜ λ (4) 1 ˜ λ (1) 1 0 0 0 0 0 0 0 0 0 0 0 0 λ ˜ (1) 2 λ ˜ (2) 2 λ ˜ (3) 2 λ ˜ (4) 2 0 0 0 0 0 0 0 0 λ ˜ (4) 2 λ ˜ (1) 2 λ ˜ (2) 2 λ ˜ (3) 2 0 0 0 0 0 0 0 0 λ ˜ (3) 2 λ ˜ (4) 2 λ ˜ (1) 2 λ ˜ (2) 2 0 0 0 0 0 0 0 0 λ ˜ (2) 2 λ ˜ (3) 2 λ ˜ (4) 2 λ ˜ (1) 2 0 0 0 0 0 0 0 0 0 0 0 0 λ ˜ (1) 3 ˜ λ (2) 3 ˜ λ (3) 3 ˜ λ (4) 3 0 0 0 0 0 0 0 0 λ ˜ (4) 3 ˜ λ (1) 3 ˜ λ (2) 3 ˜ λ (3) 3 0 0 0 0 0 0 0 0 λ ˜ (3) 3 ˜ λ (4) 3 ˜ λ (1) 3 ˜ λ (2) 3 0 0 0 0 0 0 0 0 λ ˜ (2) 3 ˜ λ (3) 3 ˜ λ (4) 3 ˜ λ (1) 3

 .

Die BCCB-Struktur bleibt dabei erhalten.

(24)

BCCB-Matrizen: Spektralzerlegung

Mit der Transponierungspermutation P × geht der mittlere Faktor in (4) über in

P ×

D ˜ 1 D ˜ 2 · · · D ˜ m

D ˜ n D ˜ 1 D ˜ m−1

.. . . .. .. . D ˜ 2 D ˜ 3 · · · D ˜ 1

P × T = diag(˜ A 1 , A ˜ 2 , . . . , A ˜ n ),

mit den zirkulanten Diagonalblöcken

A ˜ k =

λ ˜ (1) k ˜ λ (2) k · · · λ ˜ (m) k

˜ λ (m) k ˜ λ (1) k ˜ λ (m−1) k .. . . .. .. . λ ˜ (2) k ˜ λ (3) k · · · ˜ λ (1) k

∈ C m×m , k = 1, 2, . . . , n.

Diese werden ihrerseits durch die Fourier-Matrix F m diagonalisiert:

A ˜ k = F m H D ˆ k F m , D ˆ k = diag

λ ˆ (k) 1 , λ ˆ (k) 2 , . . . , ˆ λ (k) m

, k = 1, 2, . . . , n.

(25)

BCCB-Matrizen: Spektralzerlegung

Zusammenfassung: Für eine BCCB-Matrix A gilt

A 1 A 2 · · · A m A m A 1 A m−1

.. . . .. .. . A 2 A 3 · · · A 1

= (I m ⊗ F n H )

D ˜ 1 D ˜ 2 · · · D ˜ m

D ˜ m D ˜ 1 D ˜ m−1

.. . . .. .. . D ˜ 2 D ˜ 3 · · · D ˜ 1

(I m ⊗ F n )

= (I m ⊗ F n H )P × T P ×

D ˜ 1 D ˜ 2 · · · D ˜ m

D ˜ m D ˜ 1 D ˜ m−1

.. . . .. .. . D ˜ 2 D ˜ 3 · · · D ˜ 1

P × T P × (I m ⊗ F n )

= (I m ⊗ F n H )P × T

A ˜ 1 O · · · O O A ˜ 2 O .. . . .. .. . O O · · · A ˜ n

P × (I m ⊗ F n )

(26)

BCCB-Matrizen: Spektralzerlegung

= (I m ⊗ F n H )P × T (I n ⊗ F m H )

D ˆ 1 O · · · O O D ˆ 2 O .. . . .. .. . O O · · · D ˆ n

(I n ⊗ F m )P × (I m ⊗ F n ).

Wir schreiben diese Spektralzerlegung als

(I m ⊗ F n H )P × T (I n ⊗ F m H )P × P × T

D ˆ 1 O · · · O O D ˆ 2 O .. . . .. .. . O O · · · D ˆ n

P × P × T (I n ⊗ F m )P × (I m ⊗ F n ),

weil P × T (I n ⊗ F m )P × = F m ⊗ I n und folglich P × T (I n ⊗ F m )P × (I m ⊗ F n ) = F m ⊗ F n

gelten.

P × T diag

D ˆ 1 , D ˆ 2 , . . . , D ˆ n

P × =: D ist natürlich wieder eine Diagonalmatrix.

(27)

BCCB-Matrizen: Spektralzerlegung

Wir erhalten insgesamt die Spektralzerlegung:

A = U H DU (5)

mit

U = F m ⊗ F n

U ist die Matrixdarstellung der zweidimensionalen DFT.

Die Eigenwerte einer BCCB-Matrix erhält man durch Vergleich der ersten Spalten in der Identität UA = DU, d.h. Ua 1 = Du 1 , unter Beachtung von

u 1 = (F m ⊗ F n )e 1 = 1

√ mn e, e T = [1, 1, . . . , 1].

Also liefert die Anwendung der zweidimensionalen DFT auf die erste Spalte von A einen Vektor, dessen Komponenten die Eigenwerte von A sind (modulo des Faktors 1/ √

mn).

(28)

BCCB-Matrizen: Spezialfall PSF-Matrix

Im Spezialfall der zu einer PSF-Matrix bei periodischen Randbedingungen gehörigen BCCB-Matrix A ergibt sich die erste Spalte von A durch zirkulantes Shiften der PSF-Matrix.

Im Beispiel (3) ist die 2D-DFT anzuwenden auf

vec −1 (Ae 1 ) =

p 2,2 p 2,3 p 2,1

p 3,2 p 3,3 p 3,1

p 1,2 p 1,3 p 1,1

 .

Diese Matrix erhält man durch zirkulantes Shiften der Zeilen und Spalten der PSF-Matrix um einen Index in negativer Zeilen- und Spaltenrichtung:

p 1,1 p 1,2 p 1,3

p 2,1 p 2,2 p 2,3

p 3,1 p 3,2 p 3,3

circshift(−1,−1)

−−−−−−−−−−−−→

p 2,2 p 2,3 p 2,1

p 3,2 p 3,3 p 3,1

p 1,2 p 1,3 p 1,1

 .

Allgemein: Liegt die Mitte der PSF-Matrix an der Position (j c , k c ), so ist ein

zirkulanter Shift der Länge (1 − j c , 1 − k c ) erforderlich.

(29)

BCCB-Matrizen: Grundoperationen

Mit der schnellen Fourier-Transformation (FFT) lassen sich die DFT und damit Grundoperationen mit aus PSF-Matrizen aufgebauten BCCB-Matrizen effizient ausführen:

In M AT L AB bewirkt Y=fft2(X) bei einer m × n Matrix X die Anwendung der 2D-DFT auf X , d.h. die Multiplikation von vec(X) mit der (unnormierten) Matrix U aus (5). Die Umkehroperation bewirkt X=ifft2(Y).

Enthält der zweidimensionale Vektor c die Indizes des Zentrums der PSF-Matrix P ∈ R m×n , so berechnet der folgende M AT L AB -Befehl sämtliche Eigenwerte der zugehörigen BCCB-Matrix A:

D = fft2(circshift(P, 1-c));

(30)

BCCB-Matrizen: Grundoperationen

Das Produkt b = Ax eines Vektors x und einer BCCB-Matrix A mit Hilfe der FFT berechnet man in M AT L AB durch:

D = fft2(circshift(P, 1-c));

B = ifft2(D .* fft2(X));

B = real(B);

Bei der Multiplikation x = A −1 b mit der Inversen muss man wegen A −1 = U H D −1 U die Eigenwerte von A durch ihre Kehrwerte ersetzen:

D = fft2(circshift(P, 1-c));

X = ifft2(fft2(B) ./ D);

X = real(X);

Die Befehle B = real(B); bzw. X = real(X); unterdrücken durch

Rundungsfehler generierte Imaginärteile, die in exakter Arithmetik identisch

verschwinden.

(31)

BTTB+BTHB+BHTB+BHHB-Matrizen

Schreibt man in unserem (3 × 3)-Beispiel Spiegelungsrandbedingungen vor, so ergibt sich

A = A 0 + A 1 + A 2 + A 3 mit

A 0 =

p 2,2 p 1,2 0 p 2,1 p 1,1 0 0 0 0 p 3,2 p 2,2 p 1,2 p 3,1 p 2,1 p 1,1 0 0 0 0 p 3,2 p 2,2 0 p 3,1 p 2,1 0 0 0 p 2,3 p 1,3 0 p 2,2 p 1,2 0 p 2,1 p 1,1 0 p 3,3 p 2,3 p 1,3 p 3,2 p 2,2 p 1,2 p 3,1 p 2,1 p 1,1

0 p 3,3 p 2,3 0 p 3,2 p 2,2 0 p 3,1 p 2,1 0 0 0 p 2,3 p 1,3 0 p 2,2 p 1,2 0 0 0 0 p 3,3 p 2,3 p 1,3 p 3,2 p 2,2 p 1,2

0 0 0 0 p 3,3 p 2,3 0 p 3,2 p 2,2

(BTTB, Anteile der Pixel im ursprünglichen Bild),

(32)

BTTB+BTHB+BHTB+BHHB-Matrizen

A 1 =

p 3,2 0 0 p 3,1 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 p 1,2 0 0 p 1,1 0 0 0

p 3,3 0 0 p 3,2 0 0 p 3,1 0 0

0 0 0 0 0 0 0 0 0

0 0 p 1,3 0 0 p 1,2 0 0 p 11

0 0 0 p 3,3 0 0 p 3,2 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 p 1,3 0 0 p 1,2

(BTHB, Randbedingungen oben und unten),

(33)

BTTB+BTHB+BHTB+BHHB-Matrizen

A 2 =

p 2,3 p 1,3 0 0 0 0 0 0 0 p 3,3 p 2,3 p 1,3 0 0 0 0 0 0

0 p 3,3 p 2,3 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 p 2,1 p 1,1 0

0 0 0 0 0 0 p 3,1 p 2,1 p 1,1

0 0 0 0 0 0 0 p 3,1 p 2,1

(BHTB, Randbedingungen links und rechts)

(34)

BTTB+BTHB+BHTB+BHHB-Matrizen

und

A 3 =

p 3,3 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 p 1,3 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 p 3,1 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 p 1,1

(BHHB, Randbedingungen in NO-, SO-, SW- und NW-Richtung).

(35)

BTTB+BTHB+BHTB+BHHB-Matrizen

Diese etwas kompliziertere Matrixstruktur vereinfacht sich, wenn der nichtverschwindende Teil P ˜ der PSF-Matrix

P =

O O O O P ˜ O O O O

 , P ˜ ∈ R (2k−1)×(2k−1) mit Zentrum in (k , k ),

die folgende zweifache Symmetriebedingung (ZSB) erfüllt: (M AT L AB -Notation) P ˜ = flipud( ˜ P) = fliplr( ˜ P),

was wir im ab jetzt immer annehmen.

Besipiel: Die folgenden Matrizen erfüllen die ZSB

1 2 1

3 4 3

1 2 1

 ,

1 2 1 0

3 4 3 0

1 2 1 0

0 0 0 0

 ,

0 0 0 0

0 1 2 1

0 3 4 3

0 1 2 1

0 0 0 0

.

(36)

Ist etwa in unserem (3 × 3)-Beispiel

P ˜ =

α β α

γ δ γ

α β α

 ,

so folgt

A =

M 1 + M 2 M 1 O M 1 M 2 M 1

O M 1 M 1 + M 2

mit

M 1 :=

α + γ α 0

α γ α

0 α α + γ

 und M 2 :=

β + δ β 0

β δ β

0 β β + δ

 .

A ist blocksymmetrisch mit symmetrischen Blöcken.

(37)

BTTB+BTHB+BHTB+BHHB-Matrizen:

Spektralzerlegung

Im ZSB-Fall ist die Matrix A also symmetrisch, besitzt daher eine Spektralzerlegung

A = C T DC.

Die orthogonale Matrix C (deren Spalten die Eigenvektoren von A sind) repräsentiert die zweidimensionale diskrete Kosinustransformation (DCT).

Die 2D DCT kann (ähnlich wie die 2D DFT) durch schnelle Algorithmen realisiert werden; in der M AT L AB -Image Processing Toolbox stehen dazu die Befehle dct2 und idct2 (inverse Kosinustransformation) zur Verfügung.

Analog zum BCCB-Fall lassen sich die Eigenwerte von A bestimmen durch

λ j = [Ca 1 ] j c j,1

mit der ersten Spalte a 1 von A und dem j-ten Eintrag c j,1 der ersten Spalte

von C.

(38)

BTTB+BTHB+BHTB+BHHB-Matrizen: Erste Spalte

Die erste Spalte von A lässt sich wieder durch einfache Manipulationen der PSF-Matrix P bestimmen. Sei

P =

p 1,1 p 1,2 p 1,3 p 1,4 p 1,5 p 2,1 p 2,2 p 2,3 p 2,4 p 2,5 p 3,1 p 3,2 p 3,3 p 3,4 p 3,5 p 4,1 p 4,2 p 4,3 p 4,4 p 4,5 p 5,1 p 5,2 p 5,3 p 5,4 p 5,5

.

(39)

BTTB+BTHB+BHTB+BHHB-Matrizen: Erste Spalte

Bei Spiegelungs-Randbedingungen setzt sich (unter wiederholter Ausnutzung der ZSB) die erste Spalte der BTTP+BTHB+BHTB+BHHB-Matrix A ∈ R 25×25 zusammen aus den Anteilen

p 3,3 p 3,4 p 3,5 0 0 p 4,3 p 4,4 p 4,5 0 0 p 5,3 p 5,4 p 5,5 0 0

0 0 0 0 0

0 0 0 0 0

 +

p 3,4 p 3,5 0 0 0 p 4,4 p 4,5 0 0 0 p 5,4 p 5,5 0 0 0

0 0 0 0 0

0 0 0 0 0

+

p 4,3 p 4,4 p 4,5 0 0 p 5,3 p 5,4 p 5,5 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

 +

p 4,4 p 4,5 0 0 0 p 5,4 p 5,5 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

 .

Hierbei entsprechen die Anteile Pixeln im ursprünglichen Bildgebiet, jenseits

des linken Randes, jenseits des oberen Randes bzw. links oberhalb der linken

oberen Bildecke.

(40)

BTTB+BTHB+BHTB+BHHB-Matrizen: Erste Spalte

Allgemein konstruiert man eine Matrix aus den Einträgen der ersten Spalte von A wie folgt:

Sei P ∈ R (2k−1)×(2k−1) mit Zentrum an Position (k , k ) (hier k = 3).

Definiere die Shiftmatrizen Z 1 und Z 2 durch die M AT L AB -Befehle

Z 1 = diag(ones(k,1), k-1) =

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

0 0 0 0 0

0 0 0 0 0

;

Z 2 = diag(ones(k-1,1), k) =

0 0 0 1 0

0 0 0 0 1

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

 .

Dann enthält die Matrix Z 1 PZ 1 T + Z 1 PZ 2 T + Z 2 PZ 1 T + Z 2 PZ 2 T die erste

Spalte von A.

(41)

BTTB+BTHB+BHTB+BHHB-Matrizen:

Spektralzerlegung

Diese Konstruktion lässt sich leicht auf PSF-Matrizen mit beliebiger Größe und beliebigem Zentrum verallgemeinern. Die HNO M AT L AB -Routine dctshift, bewerkstelligt diese Manipulation (analog zu circshift).

Die Eigenwerte lassen sich somit berechnen durch:

e1 = zeros(size(P)); e1(1,1) = 1;

D = dct2(dctshift(P,c)) ./ dct2(e1);

Multiplikation eines Vektors x = vec(X ) mit A bzw. A −1 erfolgt entsprechend durch

B = idct2( D.* dct2(X));

bzw. durch

B = idct2( dct2(X) ./ D);

(42)

BTTB-Matrizen: Toeplitz-Matrizen

Die Spektralzerlegung einer BTTB-Matrix ist im Gegensatz zu

BCCB-Matrizen oder BTTB+BTHB+BHTB+BHHB-Matrizen nicht auf einfache Weise mittels FFT möglich. Das Matrix-Vektor-Produkt lässt sich jedoch nach einer Einbettung in eine zirkulante Matrix mittels FFT effizient durchführen.

Zunächst betrachten wir Toeplitz-Matrizen

T = toeplitz(t 1−n , . . . , t −1 , t 0 , t 1 , . . . , t n−1 ) :=

t 0 t −1 . . . t 1−n

t 1 t 0 . . . t 2−n

.. . . .. ... .. . t n−1 t n−2 . . . t 0

 .

Toeplitz-Matrizen gehören zur (größeren) Klasse der persymmetrischen Matrizen, das sind Matrizen B = [b i,j ] ∈ C n×n , die die Symmetrieeigenschaft b i,j = b n−j+1,n−i+1 bzw. B = EB T E besitzen mit der

„Umkehrpermutationsmatrix“

E = [e n , e n−1 , . . . , e 2 , e 1 ].

(Beachte E = E T = E −1 .)

(43)

BTTB-Matrizen: Zirkulante Einbettung von Toeplitz-Matrizen

Bei gegebener Toeplitz-Matrix T = toeplitz(t 1−n , . . . , t −1 , t 0 , t 1 , . . . , t n−1 ) ∈ C n×n wird durch

T ext :=

T S S T

∈ C 2n×2n

mit S := toeplitz(t 1 , . . . , t n−1 , 0, t 1−n , . . . , t −1 ) ∈ C n×n eine zirkulante Matrix definiert.

Beispiel: (n = 3)

T =

t

0

t

−1

t

−2

t

1

t

0

t

−1

t

2

t

1

t

0

 , S =

0 t

2

t

1

t

−2

0 t

2

t

−1

t

−2

0

 ,

T

ext

=

t

0

t

−1

t

−2

0 t

2

t

1

t

1

t

0

t

−1

t

−2

0 t

2

t

2

t

1

t

0

t

−1

t

−2

0

0 t

2

t

1

t

0

t

−1

t

−2

t

−2

0 t

2

t

1

t

0

t

−1

t

−1

t

−2

0 t

2

t

1

t

0

.

(44)

BTTB-Matrizen

Zirkulante Einbettung von Toeplitz-Matrizen

Zur Multiplikation von T mit einem Vektor v ∈ C n berechnet man das Produkt

T ext v

0

= T S

S T v 0

= T v

Sv

mittles FFT und erhält T v in den ersten n Komponenten des Ergebnisvektors.

Im Block-Fall verfährt man entsprechend.

(45)

Separable PSF-Matrizen

Wir betrachten nochmals den separablen Fall

A = A r ⊗ A c ∈ R mn×mn , A r ∈ R n×n , A c ∈ R m×m .

Dieser Fall liegt vor, wenn P = cr T gilt für zwei Vektoren c ∈ R m und r ∈ R n . Beispiel:

P =

 c 1

c 2

c 3

r 1 r 2 r 3

=

c 1 r 1 c 1 r 2 c 1 r 3

c 2 r 1 c 2 r 2 c 2 r 3

c 3 r 1 c 3 r 2 c 3 r 3

führt bei Null-Randbedingungen auf A = A r ⊗ A c mit

A r =

 r 2 r 1

r 3 r 2 r 1

r 3 r 2

 , A c =

 c 2 c 1

c 3 c 2 c 1

c 3 c 2

 .

(46)

Separable PSF-Matrizen: Konstruktion der Kronecker-Faktoren

Ist eine PSF-Matrix separabel (oft explizit an der PSF erkennbar), so können die Vektoren r und c durch Berechnung der dominanten Singulärvektoren bestimmt werden.

In M AT L AB :

[u, s, v] = svds(P, 1);

c = sqrt(s) * u;

r = sqrt(s) * v;

Zur Sicherheit sollte geprüft werden, ob P überhaupt separabel ist, d.h., ob

der Rang von P numerisch gleich Eins ist. (Wie?)

(47)

Separable PSF-Matrizen: Grundoperationen

Matrix-Vektor-Multiplikation:

Ist A = A r ⊗ A c , b = vec(B), x = vec(X ), so gilt vec(B) = b = Ax = vec(A c XA T r ).

In M AT L AB : B = Ac * X * Ar’.

Lösung linearer Gleichungssysteme mit A:

Wegen (A r ⊗ A c ) −1 = A −1 r ⊗ A −1 c gilt

A −1 b = (A −1 r ⊗ A −1 c )b = vec(A −1 c BA −T r ).

In M AT L AB : X = Ac \ B / Ar’.

(48)

Separable PSF-Matrizen: Grundoperationen

Singulärwertzerlegung (SVD):

Gelten A r = U r Σ r V r T und A c = U c Σ c V c T , so folgt A = A r ⊗ A c = (U r Σ r V r T ) ⊗ (U c Σ c V c T )

= (U r ⊗ U c )(Σ r ⊗ Σ c )(V r ⊗ V c ) T .

Dies ist bis auf die Reihenfolge der Singulärwerte und -vektoren die SVD von A.

Die (naive) Lösung V Σ −1 U T b des LGS Ax = b mit b = vec(B) ist daher

x = vec(X ) mit X = A −1 c BA −T r = (V c Σ −1 c U c T )B(U r Σ −1 r V r T ).

(49)

Separable PSF-Matrizen: Grundoperationen

Singulärwertzerlegung (Fortsetzung):

Der mittlere Ausdruck Σ −1 c U c T BU r Σ −1 r lässt sich einfach durch die komponentenweise Division von M AT L AB berechnen gemäß

U c T BU r ./ S.

Hier enthält S ∈ R m×n die Singulärwerte von A, und zwar so angeordnet, dass vec(S) die Diagonalelemente von Σ r ⊗ Σ c enthält.

In M AT L AB :

[Uc, Sc, Vc] = svd(Ac);

[Ur, Sr, Vr] = svd(Ar);

S = diag(Sc) * diag(Sr)’;

X = Vc * ( ( Uc’ * B * Ur) ./ S) * Vr’;

Referenzen

ÄHNLICHE DOKUMENTE

[r]

Hilfsmittel: Formelsammlung, Skripten, Bücher, Taschenrechner Aufgabensteller: Kaltsidou-Kloster, Pöschl ,Radtke, Selting, Warendorf.. WICHTIG: Alle Rechnungen

Der folgen- de Satz besagt, dass auch umgekehrt durch jede Zahlenmatrix eine lineare Abbildung definiert wird..

Benutzen Sie dazu das Gauß-Verfahren, um damit vertraut

d) Zeigen Sie, dass 1 ein Eigenwert der Matrix AB ist. Geben Sie einen zugeh¨ origen normierten Eigenvektor an.. e) Erg¨ anzen Sie diesen zu einer Orthonormalbasis des R

[r]

• Es kann passieren, dass Eigenschaften die im Allgemein nicht stimmen, f¨ ur diese spezifi- sche F¨ alle g¨ ultig sind. Das

[r]