x - an der ZHAW

Transcription

x - an der ZHAW
Methode der kleinsten Quadrate
DSV2, 2007, Least-Squares, Rumc, 1
Problem der linearen Annäherung im Skalarprodukt-Raum
Finde für einen beliebigen Vektor y eine Linearkombination ye
der Vektoren x1, x2,..., xM, so dass der Fehlervektor e = y – ye
minimale Länge hat bzw. die Summe der Fehlerquadrate der
Komponenten II y – ye II2 = Σn=1,...,N IenI2 minimal ist
(Least-Squares bzw. LS-Lösung).
Beispiel
gegeben:
y
x1
x2
e
ye
2
y= 2
2
2
LS-Lösung: ye = 2
0
1
x1 = 0
0
0
x2 = 1
0
= 2·x1 + 2·x2
minimiert II y – ye II2
Orthogonalitätsprinzip
DSV2, 2007, Least-Squares, Rumc, 2
Alternative Problemformulierung
Finde für jeden Nx1-Spaltenvektor y = [y1,…,yN]T
die Linearkombination ye = b1·x1 +…+ bM·xM = A·b
bzw. den optimalen Mx1-Koeffizientenvektor b ,
so dass der Fehlervektor e = y - ye minimale Länge hat.
A = [ x1 x2 ... xM ] nennt man Datenmatrix und
b = [ b1 ... bM ]T Gewichts- oder Koeffizientenvektor.
Orthogonalitätsprinzip
Die Linearkombination ye = A·b minimiert genau dann die Summe
der Fehlerquadrate II y – ye II2, wenn der Fehlervektor e senkrecht
auf allen Datenvektoren xm, m = 1,...,M, steht, d.h. e orthogonal
zu allen xm ist, d.h. für alle Skalarprodukte gilt: (xm)T·e = 0.
Normalgleichung
DSV2, 2007, Least-Squares, Rumc, 3
Orthogonalitätsprinzip in Matrixform:
(x1)T
AT·e = 0 , AT =
:
(xM)T
Normalgleichung
e = y - A·b oben einsetzen gibt:
AT·(y - A·bLS) = 0
Bedingung für optimale Koeffizienten:
ATA·bLS = AT·y
wenn ATA invertierbar ist:
bLS = (ATA)-1·AT·y
deterministisches Gegenstück zum Wienerfilter
Aufgabe: überprüfe bLS im Beispiel auf Folie 1
wenn ATA nicht invertierbar ist:
bopt = A#·y
A# ist die Moore-Penrose-Pseudoinverse von A
Matlab: pinv(), Berechnung via Singulärwert-Zerlegung
typisch: Anzahl x-Vektoren M < Dimension N
Einfache lineare Regression
DSV2, 2007, Least-Squares, Rumc, 4
Problem
N verrauschte Messwerte yn = β1 + β2·xn + zn , n = 1,…,N
Annahmen zum Rauschen: zn sind unkorreliert und E{(zn)2} = σ2
Finde b1 und b2 so dass Σn Iyn – (b1+b2·xn)I2 minimal ist
Beispiel
ye4
x
x
ye2
ye1
x
x
ye3
Lineares Modell: β1 = 0, β2 = 0.75
Rauschen: AWGN mit σ = 0.2
xT = [0.3000 1.0000 1.2000 1.9000]
yT = [0.0350 0.9062 1.0138 1.2607]
Lösungsansatz: ye = A·b = b·x
LS-Lösung: Ursprungsgerade
mit Steigung bLS = 0.7375
Matlab: bLS = regress(y,x)
Mehrfache lineare Regression
DSV2, 2007, Least-Squares, Rumc, 5
Problem
N Messwerte yn = β0 + β1·x1n +…+ βM·xMn + zn , n = 1,…,N
Annahmen zum Rauschen: zn sind unkorreliert und E{(zn)2} = σ2
Finde b so dass Σn Iyn – (b0+b1·x1n+…+bM·xMn)I2 minimal ist
LS-Lösung
bLS muss die Normalgleichung auf Folie 3 erfüllen.
Die Datenmatrix A sieht wie folgt aus:
⎡1 x 11 ...x M1 ⎤
A = ⎢⎢:
:
: ⎥⎥
⎢⎣1 x 1N ...x MN ⎥⎦
LS-Schätzung mit FIR-Filter
DSV2, 2007, Least-Squares, Rumc, 6
Schätzproblem mit FIR-Filter
x[n]
z-1
x[n-1]
z-1
x[n-M]
desired signal
b0
bM-1
b1
bM
+
+
LS-Gütefunktion
d[n]
y[n] -
estimation error
(Residuum)
minimiere JN(b) = ΣNn=M e2[n]
Kovarianz-Methode: keine Annahme über Daten ausserhalb [0,N]
es gibt andere Methoden mit anderen Annahmen
FIR-Filterung:
x[M − 1] ...
x[0] ⎤ ⎡ b 0 ⎤
⎡ y[M] ⎤ ⎡ x[M]
⎥ ⎢b ⎥
⎢ y[M + 1]⎥ ⎢ x[M + 1]
x[M]
...
x[1]
⎥⋅⎢ 1⎥
⎢
⎥=⎢
⎥ ⎢ : ⎥
⎢ :
⎥ ⎢ :
:
:
:
⎥ ⎢ ⎥
⎢
⎥ ⎢
x[N − 1] ... x[N − M]⎦ ⎣b M ⎦
⎣ y[N] ⎦ ⎣ x[N]
y
=
A
e[n]
b
LS-Schätzung mit FIR-Filter
DSV2, 2007, Least-Squares, Rumc, 7
Fehler-Vektor:
e=d-y
d = [ d[M] d[M+1] ... d[N] ]T
LS-Lösung:
bLS = (ATA)-1·AT·d
bzw.
bLS = A#·d
optimal bezüglich der bis zum Zeitpunkt N vorhandenen Daten
deterministisches Analogon zum Wiener-Filter
stationäre (ergodische) Umgebung: limN->∞ bLS = bMMSE
schneller Recursive Least-Squares- (RLS)-Algorithmus exisitiert
oft aber auch blockweise Verarbeitung:
1. Berechnung der LS-Koeffizienten bLS = A#·d
2. FIR-Filterung (z.B. zur Fehlerbestimmung)
Lineare Prädiktion
DSV2, 2009, Least-Squares, Rumc, 8
Analysefilter A(z) = 1-b1·z-1-…-bM·z-1
x[n]
z-1
x[n-1]
b1
z-1
…
z-1
bM-1
b2
+
e[n]
Synthesefilter H(z) = 1/A(z)
= 1 / (1-b1·z-1-…-bM·z-1)
Allpolfilter
x[n-M]
bM
d[n]
+ e[n]
y[n] -
x[n]
Beispiel: Lineare Prädiktion
DSV2, 2007, Least-Squares, Rumc, 9
Lineare Prädiktion eines Sinus-Signals: x[n] = sin(2π·f0·nTs)
x[n]
z-1
x[n-1]
z-1
x[n-2]
b2
b1
+
d[n]
+
Fehlersignal
y[n] -
e[n]
Resultat (vgl. Uebungsaufgabe)
Der LS-Prädiktor mit 2 Koeffizienten kann x[n] perfekt schätzen!
Analyse- und Synthese-Filter
Analyse: E(z) = X(z)·A(z) wobei A(z) = 1-b1LSz-1-b2LSz-2
Synthese: X(z) = E(z)·H(z) wobei H(z) = 1/A(z) ein Allpol-Filter ist
Beispiel: Lineare Prädiktion
DSV2, 2007, Least-Squares, Rumc, 10
x[n] = sin(2π·f0·nTs), n ≥ 2
e[n]=0
z-1
x[-1] = sin(2π·f0/fs)
b1LS
z-1
x[-2] = 0
b2LS
IIR-Filter H(z) =
1
1 - b1LSz-1 - b2LSz-2
generiert Sinus mit Frequenz f0
wenn die Anfangswerte x[-1] x[-2]
richtig gewählt worden sind.
(Achtung: Numerik)