Løsningsforslag til hjemmeeksamen i INF3 / INF Jan Egil Kirkebø 7. oktober 3 Oppgave a π = 9 n= (n)!(3 + 39n) (n!) 39 n Srinivasa Ramanujan Vi ser at første dag i 999 har index 5, mens siste registrerte dag i 3 har indeks 93. Dersom kr hadde blitt satt i banken første dag i 999 har vi da idag.5 (93 5+)/5 kr = 9 kr. Dersom kr hadde blitt satt på OBX-indeksen første dag i 999 hadde vi idag hatt kr. Oppgave b Matlab-funksjon predfilt som finner koeffisientene a for en p-te ordens modell gitt data over tid er vist under, der seqn er data og koeffisientene returneres i variabelen a. function a = predfilt(p, seqn); N = length(seqn); X = seqn(repmat( : p, N - p, ) + repmat([ : N - p - ],, p)); x = seqn(p + : N); a = -X \ x; Minner om at funksjonen repmat(a, M, N) returnerer M N blokk-matrisen, bestående av kopier av A.
Oppgave c Et skript som regner ut ˆx og ˆx er vist under. NewYear = find(diff(date) > e3) + ; x = OBX(NewYear() : NewYear(3) - ); N = length(x); X = x(repmat( : p, N - p, ) + repmat([ : N - p - ],, p)); xhat = -X*a; b = [; flipud(-a)]; xhat = filter(b,, OBX(RD : NewYear(RI + ) - )); xhat = xhat(p + : length(xhat)); Den totale kvadrerte feilen e T e for p =3mellom x og ˆx eller ˆx blir 35. Feilen x[n] ˆx[n] er plottet i Figur, men skalert opp ganger og plottet sammen med OBX-indeksen over tilhørende intervall. 9 x 5 7 Estimat feil 5 3 999 Tid Figur : Kvadrert feil e T e mellom x og ˆx eller ˆx. I Figur er feilen vist for p =,...,5. Viseratforp> ser feilen ut til å flate ut, og dermed kan p =være en rimelig verdi.
.3 x.5..5 Kvadratisk feil..5.95.9 5 5 5 Orden Figur : Total kvadrert feil e T e mellom x og ˆx eller ˆx. Oppgave d Under er det vist et Matlab-skript som regner ut avkastning etter å ha brukt investeringsstrategien skissert i Oppgave d. r =.5; % Interest rate p = ; NewYear = find(diff(date) > e3) + ; RI = ; % Reference index CurrCash = ; a = predfilt(p, OBX(RI : NewYear(RI + ) - )); x = OBX(NewYear(RI + ) : OBXlen); N = length(x); X = x(repmat( : p, N - p, ) + repmat([ : N - p - ],, p)); xhat = [zeros(newyear(ri + ) + p -, ); -X*a]; for k = NewYear(RI + ) + p : OBXlen - if xhat(k) / OBX(k - ) > ( + r)^( / 5) CurrCash = CurrCash * OBX(k) / OBX(k - ); else CurrCash = CurrCash * ( + r)^( / 5); end end Ved utregning gir det en avkastning på 5 kr. Med sikker viten om fremtidige verdier av OBX-indeksen kan vi tjene 3 53 kr. 3
Oppgave e Vi ser at et spesialtilfelle av Parsevals teorem (slik det er oppgitt i oppgaven) er når g[n] =h[n]: n= g[n] = π G(e jω ) dω. π π Vi ser da at feilen som vi skal minimere er gitt ved E = e[n] = x[n] ˆx[n] p = x[n] a k x[n k] n= n= n= k= = x[n] a n x[n] = ( π p π n= π X(ejω ) a k e )X(e jωk jω ) dω k= = ( ) π p π X(ejω ) a k e jωk dω = π X(e jω ) dω. π ˆX(e jω ) π k= π I Figur 3 ser vi henholdsvis X(e jω ) og ˆX(e jω ) for p =, basert på data fra hele 999. I Figur er ˆX(e jω ) skalert opp med en faktor E = e[n]. n= Magnitude Magnitude 3 3 Frekvens 3 3 Frekvens Figur 3: Absoluttverdien til X(e jω ) og ˆX(e jω ) for p =. Vi har tidligere sett at E = n= e[n] = π π π X(e jω ) dω. ˆX(e jω ) Et nødvendig krav for at X(e jω ) og ˆX(e jω ) skal være mest mulig like er at integralet blir lik π, som impliserer at teller og nevner er tilnærmet like. Ved å
x Magnitude 3 3 Frekvens Figur : Absoluttverdien til ˆX(e jω ) og E ˆX(e jω ) for p =. dele på E (som er konstant) får vi det vi ønsker: π X(e jω ) π E ˆX(e dω =. jω ) π I Figur 5 ser vi henholdsvis X(e jω ) og ˆX(e jω ) for p = 5, basert på data fra hele 999. I Figur er ˆX(e jω ) skalert opp med en faktor E = e[n]. n= Oppgave a Lar Y a (jω) = { Ωc, Ω Ωc, Ω > Ωc Da er X a (jω) = Y a (jω) Y a (jω). Den inverse tids-kontinuerlige Fourier-transformen til Y a (jω) er y a (t) = sin(ω c t/), Ωc πt og dermed er ( x a (t) =y a (t) y a (t)=π Ωc sin(ω c t/) πt ) = πω c t sin (Ω c t/). 5
Magnitude 3 3 Frekvens Figur 5: Absoluttverdien til X(e jω ) og ˆX(e jω ) for p = 5. x Magnitude 3 3 Frekvens Figur : Absoluttverdien til ˆX(e jω ) og E ˆX(e jω ) for p = 5.
Oppgave b π Dersom T = Ω c er Ω T = Ω c = Ω c. Dermed har vi oversampling med en faktor, og siden X(e jω )= T fårviskissenvistifigur7. k= ( X a j ω T j πk ) T X ( e jω ) Ω c /π π / π 79 π/ π ω Figur 7: Skisse av X(e jω ). Oppgave c For å regne ut den inverse DFT sampler vi X(e jω ) med N = sampler. Dette er vist i kodesnutten under. Det gir plottene i Figur, hvor (a) viser for n {,..., } mens (b) viser for n {,..., }. Omegac = * pi; T = pi / ( * Omegac); N = ; len = T * Omegac * N / ( * pi); step = / (T * len); X = [ / T : -step :, zeros(, N - * len - ),... : step : / T - step]; xhat = real(ifft(x)); Av plott (b) ser vi at det er en liten forskjell mellom x[n] og ˆx[n]. Dette fordi vi har samplet DFT til en sekvens som har uendelig lengde, dvs. større enn N =. Forskjellen mellom x[n] og ˆx[n] er gitt ved relasjonen ˆx[n] = m= Se Mitra side 3 39 for teori. x[n + Nm], n N. 7
5.3.5.5 3.5. 3 Amplitude.5 Amplitude.5.5..5.5 (a) Tid 9 3 5 Tid (b) Figur : Skisse av x[n] (blått) og ˆx[n] (grønn). Oppgave 3a Utgangen er (per definisjon) gitt ved y[n] =h[n] x[n]= h[k]x[n k]= x[k]h[n k]. Vi får da tre tilfeller å ta hensyn til: k= k=. n<: y[n]=.. n N : y[n] = n h[n k] = k= 3. n N : y[n] = n a n k = a n k= N k= h[n k] = n k= N k= ( ) k = a n a (n+) a a = an+ a. N a n k = a n = a n a N a = an+ a N a. k= ( ) k a Altså er, n < a y[n] = n+ a, n N a n+ a N a, n > N.
Oppgave 3b Vi ser at z H(z) =, z >a og X(z) = az z. Siden y[n] er konvolusjonen mellom h[n] og x[n] vet vi at Setter og ser at vi kan skrive Delbrøksoppspalter U(z): Y (z) =H(z)X(z)= U(z) = z N ( az )( z ). ( az )( z ), Y (z) =U(z) z N U(z). A U(z) = az + B z A = a a,b= a U(z)= a a az + a z. Dermed er u[n] = a a an u[n]+ a u[n], og y[n] = an+ a Det gir samme svaret som i Oppgave 3a. Oppgave 3c Ser at Dermed er an N+ u[n] u[n N]. a x[n] =y[n] y[n ]. Y (z) = Alternativt kan man også bruke at z X(z). y[n] =x[n] µ[n], hvor Z-transformen til µ[n] er /( z ). Siden ROC µ er z > er ROC y =ROC x ROC µ =ROC x { z >}. 9
Oppgave a Setter inn for løsningen x[n] = sin(ωn) = ( e jωn e jωn) j i differensligningen: ( e jω(n+) e jω(n+)) = α ( e jω(n+) e jω(n+)) j j j (ejωn e jωn ) e jωn e jω e jωn e jω = α(e jωn e jω e jωn e jω ) (e jωn e jωn ) = e jωn (αe jω ) e jωn (αe jω ). Dermed ser vi at e jω = αe jω og e jω = αe jω, og α = e jω + e jω =cos(ω). Initialbetingelsene må være Vis dette ved innsetting! x[] = sin(φ) og x[] = sin(ω + φ). Oppgave b Siden det ikke er noe aliasing i prosessen kan vi velge T til å ta hvilken som helst verdi. Siden ω = T Ω ser vi at H a (jω) = e jωt/. Dermed bør impulseresponsen velges ved h a (t) =δ(t T/). Oppgave c Filteret H(e jω )=e jω/ er et allpassfilter, med fase ω/. Dersom inngangen er blir utgangen x[n] = sin(ωn + φ) y[n] = sin(ωn + φ + [H(e jω )]) = sin(ω(n /) + φ).