Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes canvas. 1 Adaptiv filtrering 2.

Like dokumenter
Generell informasjon om faget er tilgjengelig fra It s learning. 1 En kort oppsummering Adaptiv filtrering 2. 3 Prediksjon 4

Eksamen i ELE620, Systemidentikasjon (10 sp)

Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes It s learning. med Kalman-filter og RLS.

Dato: Tirsdag 28. november 2006 Lengde på eksamen: 4 timer Tillatte hjelpemidler: Kun standard enkel kalkulator, HP 30S

Generell informasjon om faget er tilgjengelig fra It s learning. 7.1 Stokastisk prosess Lineær prediktor AR-3 prosess...

Dato: fredag 14 desember 2007 Lengde på eksamen: 4 timer Tillatte hjelpemidler: ingen. 1 Diskret tilstandsrommodell 2. 2 Stående pendel 4

Løsningsforslag Eksamen i MIK130, Systemidentifikasjon (10 sp)

MIK-130 Systemidentifikasjon Løsningsforslag eksamen 28 mai 2004

Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes canvas.

Eksamen i MIK130, Systemidentifikasjon

Eksamen i MIK130, Systemidentifikasjon

Løsningsforslag Eksamen i MIK130, Systemidentikasjon (10 sp)

Eksamen i MIK130, Systemidentifikasjon

Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes It s learning. 1 Stokastiske system og prosesser 2

Eksamen i MIK130, Systemidentifikasjon (10 sp)

Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes It s learning. 1 Parameterestimering med LS og RLS 2

Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes canvas.

DET TEKNISK - NATURVITENSKAPELIGE FAKULTET Institutt for data- og elektroteknikk. Løsningsforslag Eksamen i MIK130, Systemidentifikasjon (10 sp)

4.1 Diskretisering av masse-fjær-demper-system. K f m. x m u m y = x 1. x m 1 K d. Dette kan skrives på matriseform som i oppgaven med 0 1 A =

6 Modellering av smelteovn Modellering Tilstandsromform Diskretisering Observerbarthet Tidssteg...

Eksamen i MIK130, Systemidentifikasjon (10 sp)

Eksamen i MIK130, Systemidentikasjon (10 sp)

Ikke lineære likninger

TMA4122/TMA4130 Matematikk 4M/4N Høsten 2010

Matematisk statistikk og stokastiske prosesser B, høsten 2006 Løsninger til oppgavesett 5, s. 1. Oppgave 1

Generell informasjon om faget er tilgjengelig fra It s learning.

Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes canvas. 1 Øving med systemidentifikasjon.

Side av 5 fra matriseteori har vi at en symmetrisk matrise alltid er ortogonalt diagonaliserbar. Det vil si at X kan skrives på formen X = M M (6) der

Det matematisk-naturvitenskapelige fakultet

Ridge regresjon og lasso notat til STK2120

5.8 Iterative estimater på egenverdier

EKSAMEN I TMA4285 TIDSREKKEMODELLER Fredag 7. desember 2012 Tid: 09:00 13:00

Eksamen i ELE620, Systemidentifikasjon (10 sp)

Tilstandsestimering Oppgaver

7 Tilstandsestimering for smelteovn.

MA0002 Brukerkurs i matematikk B Vår 2013

Eksamen i MIK130, Systemidentifikasjon (10 sp)

Eksamensoppgave i TMA4110/TMA4115 Calculus 3

Vær OBS på at svarene på mange av oppgavene kan skrives på flere ulike måter!

UNIVERSITETET I OSLO

Derivasjon Forelesning i Matematikk 1 TMA4100. Hans Jakob Rivertz Institutt for matematiske fag 2. september 2011

Kalmanfilter på svingende pendel

Matematisk statistikk og stokastiske prosesser B, høsten 2006 Oppgavesett 5, s. 1. Oppgave 1. Oppgave 2. Oppgave 3

UNIVERSITETET I OSLO

TMA4245 Statistikk Eksamen desember 2016

LØSNINGSFORSLAG EKSAMEN MA0002, VÅR 09

Øvingsforelesning i Matlab TDT4105

1. Finn egenverdiene og egenvektorene til matrisen A = 2 1 A =

Dette kan selvfølgelig brukes direkte som en numerisk tilnærmelse til den deriverte i et gitt punkt.

Numerisk lineær algebra

Gammafordelingen og χ 2 -fordelingen

UNIVERSITETET I OSLO

EKSAMEN I MATEMATIKK 1000

MIK 200 Anvendt signalbehandling, 2012.

Sensitivitet og kondisjonering

Eksamensoppgave i TMA4240 Statistikk

Eksamen i MIK130, Systemidentifikasjon

SIF5030/75047 Optimeringsteori, 5 timer. Ingen hjelpemidler.

SENSORVEILEDNING. Emnenavn: Matematikk 2. Dato:

Fasit MAT102 juni 2016

EKSAMEN I TMA4285 TIDSREKKJEMODELLAR Fredag 7. desember 2012 Tid: 09:00 13:00

TMA4240 Statistikk Høst 2016

EKSAMEN I NUMERISK LINEÆR ALGEBRA (TMA4205)

MA1102 Grunnkurs i analyse II Vår 2019

Løsningsforslag Eksamen M001 Våren 2002

ÅMA110 Sannsynlighetsregning med statistikk, våren 2006 Kp. 6, del 4

Tilstandsestimering Oppgaver

Inferens i regresjon

Lineære ligningssystemer og gausseliminasjon

Løsningsforslag MAT102 Vår 2018

Løsningsforslag Eksamen S2, høsten 2017 Laget av Tommy O. Sist oppdatert: 26. november 2017

dg = ( g P0 u)ds = ( ) = 0

Eksamen i ELE Matematikk valgfag Torsdag 18. mai Oppgave 1

LP. Kap. 17: indrepunktsmetoder

Løsningsforslag Eksamen S2, høsten 2016 Laget av Tommy Odland Dato: 27. januar 2017

Diagonalisering. Kapittel 10

12 Projeksjon TMA4110 høsten 2018

Prosjekt 2 - Introduksjon til Vitenskapelige Beregninger

Fasit til utvalgte oppgaver MAT1110, uka 11/5-15/5

Litt generelt om systemidentifikasjon.

TDT4105 IT Grunnkurs Høst 2014

Øvingsforelesning i Matlab TDT4105

Lineære ligningssystemer og gausseliminasjon

LØSNING, KOMMENTAR & STATISTIKK

TMA4240 Statistikk Eksamen desember 2015

Enkel matematikk for økonomer. Del 1 nødvendig bakgrunn. Parenteser og brøker

Eksamen i TMA4122 Matematikk 4M

Eksamen i ELE620, Systemidentikasjon (10 sp)

Bioberegninger - notat 4: Mer om sannsynlighetsmaksimering

Alle svar skal grunngis. Alle deloppgaver har lik vekt.

y (t) = cos t x (π) = 0 y (π) = 1. w (t) = w x (t)x (t) + w y (t)y (t)

STE 6219 Digital signalbehandling Løsningsforslag

Kalmanfilter HANS-PETTER HALVORSEN,

år i alder x i tid y i i=1 (x i x) 2 = 60, 9

Biseksjonsmetoden. biseksjonsmetode. Den første og enkleste iterativ metode for ikke lineære likninger er den så kalt

Vektorligninger. Kapittel 3. Vektorregning

= x lim n n 2 + 2n + 4

MA1201/MA6201 Høsten 2016

UNIVERSITETET I OSLO

Transkript:

Stavanger, 23. juni 2017 Det teknisknaturvitenskapelige fakultet ELE620 Systemidentifikasjon, 2017. Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes canvas. Innhold 1 Adaptiv filtrering 2 2 Prediksjon 4 3 Bratteste nedstigning 6 4 LMS algoritmen 8 5 RLS algoritmen 8 6 Oppsummering RLS algoritme 11 7 RLS algoritme med glemmefaktor 11 8 Eksempel 12 Karl Skretting, Institutt for data- og elektroteknikk (IDE), Universitetet i Stavanger (UiS), 4036 Stavanger. Sentralbord 51 83 10 00. Direkte 51 83 20 16. E-post: karl.skretting@uis.no.

En kort oppsummering. Både Kalman filter og RLS kan ses på som en form for adaptiv filtrering. De kan betraktes som en samtidig filtrering av både inngangsignaler og målinger for å estimere tilstander og/eller parametre i modellen. Filterkoeffisientene endres da fra steg til steg i filtreringen, de er adaptive. Dette notatet prøver å presentere RLS filteret med utgangspunkt i en adaptiv filter tankegang. Jeg har prøvd å lage presentasjonen her både enkel og fullstendig. 1 Adaptiv filtrering Vi starter med å se på lineær prediksjon, det vil si at estimatet finnes med lineær filtrering av inngangsignalet. Det som er adaptivt er filterkoeffisientene, men form (lengde) på filteret er fast. En skisse som viser problemstillingen ved adaptiv filtrering er i figur 1. d(k) x(k) Adaptivt filter ˆd(k) + + w(k) - w(k + 1) e(k) Algoritme Figur 1: Prinsippskisse for adaptiv filtrering. Se tekst for forklaring av symbol. Det adaptive filteret er gitt ved filterkoeffisientene som her er samlet i en kolonnevektor w med lengde N. Filterkoeffisientene kan endres for hvert tidssteg, notasjonen w(k) i figuren viser at det er koeffisientene ved steg k. Inngangsignalet til det adaptive filteret er x(k). Utgangsignalet er ˆd(k), det er en vekta sum av inngangsverdier og tidligere inngangsverdier, vektene er filterkoeffisientene. De inngangsverdiene en bruker ved steg k samles gjerne i en vektor x(k) med lengde N. Altså x(k) = x(k) x(k 1). x(k N + 1), w(k) = w 0 (k) w 1 (k). w N 1 (k). (1) 2

N 1 ˆd(k) = w i (k)x(k i) = x T (k)w(k). (2) i=0 Poenget med et adaptivt filter er at en ønsker at utgangen skal bli så likt som råd et ønsket signal, det kalles ofte d(k). For at en skal ha noen mulighet til å estimere d(k) med det adaptive filteret må det være korrelert med inngangsignalet x(k). Differansen mellom utgangen av det adaptive filteret, ˆd(k), og det ønska signalet, d(k), blir feilen, e(k). e(k) = d(k) ˆd(k) = d(k) x T (k)w(k). (3) En har en algoritme som beregner filterkoeffisientene for hvert tidssteg, inngangen til denne algoritmen er både x(k) og e(k) og de brukes, gjerne sammen med lagrede tidligere verdier, for å beregne de adaptive filterkoeffisientene for neste tidssteg, w(k + 1). En ønsker disse koeffisientene slik at feilen blir minst mulig, altså å minimere e(k + 1). Siden en ikke vet hva som blir neste verdier, hverken d(k + 1) eller x(k + 1), er det selvsagt umulig å få feilen e(k + 1) til å bli null. En ønsker ei algoritme som finner w(k + 1) slik at forventningsverdien til feilen blir minst mulig, E[ e(k + 1) ] minimeres. Absoluttverdier er kompliserte, fordi funksjonen abs() ikke er deriverbar i 0, så en bruker gjerne heller at E[e 2 (k + 1)] minimeres. En kan, og det blir ofte gjort, regne videre med forventningsverdier og da får en at det optimale filterkoeffisientene må oppfylle Wiener-Hopf ligningene, det er et lineært ligningssystem, R x w = r dx. (4) R x er, den generelt tidsvarierende, autokorrelasjonsmatrisa til x(k), r dx er, også generelt tidsvarierende, krysskorrelasjonsvektoren til d(k) og x(k), og w er da vektoren med de tidsvarierende filterkoeffisientene, w(k). Alternativt kan en se mer praktisk på det å finne de til enhver tid optimale filterkoeffisientene basert på antakelsen at det som er de optimale filterkoeffisientene nå, er de samme som det som var de optimale filterkoeffisientene i steget før, og gjerne også stegene litt før det igjen. Det viser seg, ikke overraskende, at disse praktiske metodene finner løsningen på Wiener-Hopf ligningene, eller tilnærmede løsninger, der en bruker ulike metoder for å estimere R x og r dx på. La oss se praktisk på dette. Vi ser på de L siste ligningene av 3, L N, og ønsker å finne den beste w vi kunne bruk her, der den er fast og ikke får endre seg fra gang til gang. Altså e(k) = d(k) x T (k)w e(k 1) = d(k 1) x T (k 1)w. e(k L + 1) = d(k L + 1) x T (k L + 1)w (5) 3

Med åpenbare definisjoner kan dette skrives e = d Xw. (6) Dimensjonene her er L 1 for e og d, L N for X, linje n i X er x T (k +1 n), og N 1 for w. En ønsker å minimere sum av kvadrerte feil her, det er det samme som å minimerer 2-normen kvadrert L 1 f(w) = e 2 (k i) = e T e = e 2 2 = d Xw 2 2. (7) i=0 Fra lineær algebra har en at når en minimerer uttrykket over med hensyn på w så får en least squares løsningen w = (X T X) 1 X T d. (8) Å vise at løsningen til ligning 7 er som i ligning 8 er ikke så vanskelig når en først kan derivere f(w) med hensyn på w og så sette den deriverte til null. En må bruke derivasjonsregler fra lineær algebra, ligningene 11 og 12, og får da f(w) = e T e = (d T w T X T ) (d Xw) f(w) = d T d w T X T d d T Xw + w T X T Xw f w = 0 dt X d T X + 2w T (X T X) Når en setter dette til 0 får en w T (X T X) = d T X Transponerer og multipliserer med (X T X) 1 og får så ligning 8. Mye det samme gjøres når en finner bratteste nedstigning i del 3 her. 2 Prediksjon Vi skal nå ha en prediktor som går et steg fram, det vil si at en ønsker å predikere x n+1 ut fra x n og tidligere verdier. En enkel skisse for prediksjon viser i figur 2. Utgangen fra prediktoren figur 2 er p n (tilsvarer ˆd(k) i figur 1). Prediksjonsfeilen er e n (tilsvarer e(k) i figur 1). Vi skal nå la prediktoren, figur 2, være et adaptivt filter og tegner nå figuren om igjen, altså figur 1 innsatt i figur 2. Vi bruker symboler som i figur 1, og resultatet er i figur 3. Bruk av forsinkelseblokker er her slik at en tydelig ser at prediktoren bruker x(k) og tidligere verdier, samt filterkoeffisientene w(k), for å prediktere neste verdi ˆx(k + 1). På samme måte bruker oppdateringsalgoritmen både x(k) og e(k), og gjerne også tidligere verdier (informasjonen i disse 4

x n+1 x n p n + + e n - z 1 P Figur 2: Prinsippskisse for prediksjon ett steg fram. Se tekst for mer forklaring. er akkumulert i w(k)) for å beregne nye filterkoeffisienter w(k + 1). I andre tilsvarende figurer kan forsinkelsene være underforstått som del av henholdsvis prediktor og oppdateringsalgoritmen. Utfordringen ved adaptiv filtrering er å bruke en god og effektiv algoritme for oppdateringen. Flere alternativer finnes. Vi skal se på noen av dem. x(k + 1) d(k) z 1 x(k) Adaptiv prediktor ˆx(k + 1) + + w(k) ˆd(k) - e(k) w(k + 1) Algoritme e(k) Figur 3: Prinsippskisse for adaptiv prediksjon ett steg fram. Se tekst for mer forklaring. 5

3 Bratteste nedstigning En kjenner Newtons metode for å finne x slik at f(x) = 0, en starter med en x 0 og så finner en neste verdi med formelen x i+1 = x i 1 f (x i ) f(x i). En tilsvarende iterativ metode kan brukes for å finne minimum av funksjonen. En kan i hvert steg gå i motsatt retning av den deriverte, x i+1 = x i µ sign(f (x i )), der sign(a) = a/ a, men steglengden µ er nå vanskeligere å sette optimalt. Velger en en passelig liten steglengde vil en ende opp med at x i og x i+1 er på hver sin side av et lokalt minimum for funksjonen. Det er samme prinsipp som brukes i bratteste nedstigning metoden for adaptiv filtrering. For adaptiv filtrering har en en funksjon med flere variabler (samlet i vektoren w). Funksjonen er som i ligning 7 f(w) = e T e = (d Xw) T (d Xw). (9) For bratteste nedstigning metode skal en altså gå i motsatt retning av den deriverte, eller mer presist gradienten. Fra matematikken husker en at gradienten til en funksjon med flere variabler (samlet i en vektor) er en vektor med sammen størrelse, like mange elementer som det er variabler i funksjonen, og at hvert element er den partiell deriverte av funksjonen med hensyn på hver av variablene. Altså blir oppdateringsligningen w(k + 1) = w(k) µ f(k), f(k) = f(w(k)). (10) En kan bruke følgende formler fra lineær algebra (x T Ax) x = 2Ax (11) (b T x) = (xt b) = b (12) x x og finne gradienten til f i ligning 9. For enkelhets skyld skriver vi nå w i stedet for w(k) og får f(k) = f(w(k)) = f(w) w = [ (d T w T X T ) (d Xw) ] w = [ d T d w T X T d d T Xw + w T X T Xw ] w = [ w T (X T X)w 2(d T X)w ] w f(k) = 2(X T X)w(k) 2(X T d) (13) 6

Negativ retning av gradienten er da gitt med (faktoren 2 fjernes) f(k) = X T d X T Xw (14) = X T (d Xw) = X T e. (15) Retningen kan en gange med en passende faktor, for eksempel 1/L, og da får vi f(k) = ( 1 L XT d) ( 1 L XT X)w = 1 L XT e (16) f(k) = ˆr dx ˆR x w(k) = ˆr ex. (17) Her har vi brukt at det som står inni parentesene er estimat for krysskorrelasjon og autokorrelasjon. Husk at definisjonen på krysskorrelasjon, for Wide Sense Stationary signaler (prosesser), er 1 r xy (l) = E[x(n)y(n l)] = lim M 2M + 1 M n= M x(n)y(n l). (18) Autokorrelasjonen er tilsvarende, en setter x inn i stedet for y og får r xx. Oppdaterinsalgoritmen skrives da som w(k + 1) = w(k) + µ (ˆr dx ˆR x w(k)) = w(k) + µ ˆr ex. (19) Dette stemmer med resultatet en får hvis en regner med forventningsverdier, og en antar at både x(k) og d(k) er Wide Sense Stationary signaler (prosesser) da får en w(k + 1) = w(k) + µ (r dx R x w(k)) = w(k) + µ r ex. (20) Feilen e(k) er et resultat av det adaptive filteret og dermed av oppdateringsalgoritmen, det er altså ikke et signal som en i utgangspunktet har, derfor er r ex ikke en gitt egenskap, og en skriver gjerne oppdaterinsalgoritmen litt løsere som w(k + 1) = w(k) + µ E[e(k)x(k)]. (21) 7

4 LMS algoritmen Problemet med bratteste nedstigning metoden er at E[e(k)x(k)] i ligning 21 generelt er ukjent og må estimeres, for eksempel som i ligning 16. Spesielt enkelt blir det hvis en nå har L = 1, da får en den enkle LMS oppdateringsalgoritmen w(k + 1) = w(k) + µ e(k)x(k) (22) Egenskapene for denne algoritmen er godt utforsket, både teoretisk og i praksis. Her skal vi bare nevne at valg av µ er viktig, for liten verdi og algoritmen konvergerer sakte og for stor verdi og algoritmen hopper for mye i hytt og vær. En har vist at for WSS-prosesser så vil LMS algoritmen konvergerer (for middelverdi) hvis 0 < µ < 2 λ max (23) der λ max er største egenverdi for R x. Denne er ikke alltid enkel å finne, men en kan for eksempel bruke at λ max N i=1 λ i = tr(r x ) = N E[ x(k) 2 ], hvis x(k) er WSS. Det er utallige varianter av LMS, men vi skal ikke se på de her. 5 RLS algoritmen La oss nå anta at vi har alle ligningene fra tidssteg N til tidssteg k på samme måte som i ligningssystem 5. Vi starter med N siden vi ut fra definisjonen av x(k), ligning 1, får at x(n) inneholder elementene fra x(n) til x(1). Altså har vi følgende ligningssystem e(k) = d(k) x T (k)w e(k 1) = d(k 1) x T (k 1)w. e(n) = d(n) x T (N)w (24) Med åpenbare definisjoner kan dette skrives e(k) = d(k) X(k)w. (25) Dimensjonene her er (k N +1) 1 for e(k) og d(k), (k N +1) N for X(k) og N 1 for w. Merk at fet skrift brukes for vektorene. Vi kaller løsningen, som gitt i ligning 8, for dette ligningssystemet med (k N + 1) ligninger for w(k + 1). Dette er i samsvar med figur 3 der en ser at w(k + 1) er resultatet ut fra siste verdier e(k) og x(k) som er med i siste ligning i systemet 24. 8

Sett at vi har en løsning (kanskje bare et estimat) for dette steg, w(k). Kan en bruke dette når en beregner løsningen (estimatet) for neste steg? Som vi nå skal se kan en det. Vi definerer nå 1 Vi har da P (k) = [X T (k)x(k)] 1 (26) P 1 (k) = X T (k)x(k) (27) x T (N) = [x(n),..., x(k 1), x(k)]. (28) x T (k 1) x T (k) [ ] X(k 1) = [X T (k 1), x(k)] x T (29) (k) = X T (k 1)X(k 1) + x(k)x T (k) (30) = P 1 (k 1) + x(k)x T (k) (31) Videre definerer vi og får B(k) = X T (k)d(k) (32) B(k) = X T (k)d(k) (33) d(n) = [x(n),..., x(k 1), x(k)]. (34) d(k 1) d(k) [ ] d(k 1) = [X T (k 1), x(k)] (35) d(k) = X T (k 1)d(k 1) + x(k)d(k) (36) = B(k 1) + x(k)d(k). (37) Med å bruke Matrix Inversion Lemma (som vi ikke tar med her) på ligning 31 får vi P (k) = P (k 1) P (k 1) x(k) xt (k) P (k 1) (38) x T (k) P (k 1) x(k) + 1 som også kan skrives P (k) = P (k 1) ( I x(k) xt (k) P (k 1) ) x T (k) P (k 1) x(k) + 1 (39) 1 Merk at P (k) her er ei matrise med størrelse N N og senere har vi K(k) og B(k) som N 1 vektorer, selv om de her ikke skrives med fet skrift. 9

Legg merke til at det som står under brøkstreken er en skalar slik at en ikke har noen matriseinvertering i disse ligningene i det hele. Nå har en ut fra definisjonene ligning 26 og ligning 33 at løsningen i ligning 8 kan skrives som w(k) = P (k) B(k). (40) Både P (k) og B(k) kan nå beregnes ut fra verdier i forrige tidssteg og nye data, x(k) og d(k), som gitt i rekursjonsformlene ligning 37 og ligning 39. Disse kan brukes direkte til å gi en rekursiv algoritme, der en for hvert nytt sample (nytt datasett) kan finne neste estimat for vektene (filterkoeffisientene). Imidlertid er det vanlig å foredle algoritmen noe mer. La oss definere K(k) = Ved å snu litt på denne definisjonen får vi P (k 1) x(k) x T (k) P (k 1) x(k) + 1. (41) K(k)[x T (k) P (k 1) x(k) + 1] = P (k 1) x(k) K(k) + K(k) x T (k) P (k 1) x(k) = P (k 1) x(k) K(k) x T (k) P (k 1) x(k) = P (k 1) x(k) K(k) (42) Med K(k) som i ligning 41 kan da ligning 38 skrives P (k) = P (k 1) K(k) x T (k) P (k 1) (43) Vi mulitipliserer begge sider på høyre side med x(k) og får P (k)x(k) = P (k 1)x(k) K(k)x T (k)p (k 1)x(k) (44) og når vi videre setter inn ligning 42 for leddet helt til høyre får vi Ligning 37 innsatt i ligning 40 gir P (k)x(k) = K(k) (45) w(k) = P (k)b(k) = P (k)b(k 1) + P (k)x(k)d(k) (46) og videre setter vi inn ligning 45 og får w(k) = P (k)b(k) = P (k)b(k 1) + K(k)d(k) (47) og videre setter vi inn ligning 43 og får w(k) = [P (k 1) K(k)x T (k)p (k 1)]B(k 1) + K(k)d(k) = P (k 1)B(k 1) K(k)x T (k)p (k 1)B(k 1) + K(k)d(k) = P (k 1)B(k 1) + K(k)[d(k) x T (k)p (k 1)B(k 1)] = w(k 1) + K(k)[d(k) x T (k)w(k 1)]. (48) Nå observerer vi at uttrykket inni hakeparentesene er feilen, se ligning 3. e(k) = d(k) x T (k)w(k 1), (49) og dermed får en at nytt estimat kan skrives som w(k) = w(k 1) + K(k)e(k). (50) 10

6 Oppsummering RLS algoritme 1. Se figur 3 for en skisse av systemet med RLS for prediksjon. Like før tidssteg k (etter tidssteg k 1) har en P (k 1) og w(k 1) fra forrige tidssteg (eller initielle verdier for disse). En får nå nytt sample x(k) som (sammen med tidligere data) danner en ny datavektor x(k). 2. Beregner K(k) med ligning 41 K(k) = P (k 1) x(k) x T (k) P (k 1) x(k) + 1 (51) 3. Beregner estimeringsfeilen e(k) med ligning 49 e(k) = d(k) x T (k)w(k 1), (52) 4. Oppdaterer parameterestimatet w(k) med ligning 50 w(k) = w(k 1) + K(k)e(k). (53) 5. Oppdaterer P (k) med ligning 43 P (k) = P (k 1) K(k)x T (k)p (k 1) (54) P (k) = [I K(k)x T (k)]p (k 1) (55) 6. Øker k og går til punkt 1. 7 RLS algoritme med glemmefaktor RLS med glemmefaktor er svært lik vanlig RLS, det en gjør er at en vekter den kvadrerte feilen for hver ligning i systemet 24 med ulike vekter, vektene er λ 0 = 1 for første ligning, λ 1 for andre ligning og så videre nedover. Typisk så er da λ et tall litt mindre enn 1, hvis λ = 1 har en vanlig RLS. Utledning av RLS med glemmefaktor blir svært lik utledningen over, vi tar ikke den her. Resultatet blir noen små endringer i forhold til oppsummeringa over. I steg 2 oppdateres K(k) nå med følgende ligning K(k) = P (k 1) x(k) x T (k) P (k 1) x(k) + λ (56) Og i steg 5 oppdateres P (k) med en av følgende ligninger P (k) = P (k 1)λ 1 K(k)x T (k)λ 1 P (k 1) (57) 11

P (k) = [I K(k)x T (k)]λ 1 P (k 1) (58) For bedre numerisk stabilitet kan en legge til noe støy på oppdatering av P (k) P (k) = [I K(k)x T (k)]λ 1 P (k 1) + R (59) der R typisk er ei diagonal matrise. Også for RLS er det et utall med varianter. 8 Eksempel Jeg har laget en Matlab fil som viser adaptiv filtrering, kraake.m. Her leses inn ei lydfil, et kråkeskrik, med L = 126720 sampler. Signalet x dannes da med å ta den ene kanalen og multiplisere med 5, faktoren 5 er valgt slik at variansen til x blir tilnærmet lik 1, middelverdi er i utgangspunktet omtrent 0. Når fila kjøres så vises noen egenskaper til selve signalet x. Deretter tar en en helt enkel prediksjon, ˆx(k + 1) = x(k), og viser noen egenskaper for estimeringsavviket, e. Vi får at standardavviket reduseres til cirka 1/4, og SNR blir nesten 12, så kan en se at denne enkle prediksjonen gir potensiale for en reduksjon av bitrate på omtrent 2 bit per sampel. SNR = 10 log 10 var(x) var(e) (60) Ved komprimering bruker en ofte sammenhengen at for å øke SNR med 6 desibel så tilsvarer dette 1 bit ekstra per sample. Merk at vi ikke har noen kvantifisering her, og antakelsene over gjelder for fin kvantifisering. Til slutt har en et adaptivt prediksjonsfilter, her er det implementert med RLS med glemmefaktor og stabilisering som i ligning 59. Merk at både variablene lambda og r gir størrelsen for diagonalelementene i R matrisa, de er alle (1-lambda)*r. Med hensiktsmessig valg av filterlengden N, glemmefaktor λ og matrise R vil en oppnå betydelig bedre prediksjon enn den enkle prediktoren (kun forrige verdi). Initielle verdier for P og w er valgt til P = 500 I N og w T = [1, 0, 0,..., 0]. Nedenfor viser resultatet av kraake.m. For RLS har jeg prøvd meg litt fram for å finne gode verdier for de ulike parametrene. Middelverdi for x estimeres til 9.42139e-005 Std.avvik til x estimeres til 1.00032 Variansen til x estimeres til 1.00065 Enkel prediksjon xp(k+1) = x(k) Std.avvik til prediksjonsfeil blir da 0.267066 12

Variansen til prediksjonsfeil blir da 0.0713241 SNR for prediksjonsfeil blir da 11.4704 RLS med N = 5, lambda = 0.92 og r = 200 Std.avvik til prediksjonsfeil blir da 0.00434171 Variansen til prediksjonsfeil blir da 1.88504e-005 SNR for prediksjonsfeil blir da 47.2496 I kraake.m er det også med noe kode som normalt ikke kjøres. Denne koden lager en figur som viser SNR for ulike N og λ. Vi vil da se at en kan få ustabilitet når en bruker for liten λ. Et eksempel for resultat her er i figur 4. 60 RLS med flere N og flere lambda og r = 200 55 50 10 * log 10 ( var(e) / var(x) ) 45 40 35 30 N=4 25 N=5 N=6 N=7 N=8 20 0.84 0.86 0.88 0.9 0.92 0.94 0.96 0.98 1 1.02 λ Figur 4: Eksempel på figur laget med kraake.m. 13