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)