Bonusföreläsning, 11 Oktober, Sverresson

Fourierserier - diskrettid (DTFS)

Givet f(t) larr signal/funktion som är periodisk med period T, omega_0=(2pi)/T Samplar/diskretiserar f(t) N gånger under en period, dvs NT_s = T; T_s samplingstid. NT_s = T iff NT_somega_0 = Tomega_0 iff NOmega_0 = 2pi iff Omega_0 = (2pi)/N bb"def:" x[n] = f(n*T_s); f(t) = sum_(k=-oo)^oo C_k e^(jkomega_0t) => x[n]= f(n*T_s) = sum_(k=-oo)^oo C_k e^(jkomega_0T_sn) = sum_k C_k e^(jkOmega_0n f(t) "byggs" ur: {e^(jkomega_0t)}_(k=-oo)^oo . Det är lite förvirrande med alla index här. k är iterationsvariabeln för summan och n är tidsvariabeln. Motsvarande: x[n] ur: {e^(jkOmega_0n)}_(k=0)^(N-1) Vi jämför k och k+N : e^(j(k+N)Omega_0n) = e^(jkOmega_0n)*e^(jNOmega_0*n) = e^(jkOmega_0n)*e^(j2pin) = e^(jkOmega_0n)*1 Alltså så är byggblocken k och k+N likadana, vilket betyder att k inte spelar någon roll. Ex: Om man ska ha 5 termer, så spelar det ingen roll om man tar alla värden från -1 till 6 eller 2 till 7 . x[n] = sum_(k=0)^(N-1) C_k e^(jkOmega_0n); Omega_0 = (2pi)/N C_k ersätts av X[k]: x[n] = sum_(k=0)^(N-1) X[k]*e^(jkOmega_0n) Quiz: Vilken information ligger i X[k]? Svar: Frekvensspekrum för x[n].
Följande är härlett på kompendiematerialet! X[k] = 1/N sum_(n=0)^(N-1) x[n]e^(jkOmega_0n) Denna följande sanning knyter ihop säcken enligt Sverre. Jämför med kontinuerlig funktion f(t) C_k = 1/T int_0^T f(t) e^(-jkomega_ot) dt ~= 1/(NT_s) sum_(n=0)^(N-1) f(nT_s) e^(-jkomega_0*nT_s)*T_s = 1/N sum_(n=0)^(N-1) x[n] e^(-jkOmega_0n) = X[k] Obs! Det är en approximation (ganska uppenbart iom att en diskret serie är mindre exakt än en kontinuerlig) x[n+N] = sum_(k=0)^(N-1) X[k] e^(jkOmega_0(n+N)) Exponenten blir jkOmega_0n + jk2pi , och e upphöjt till andra termen blir 1. (precis samma argument som vi använde innan.) :. x[n+N] = sum_(k=0)^(N-1) X[k] e^(jkOmega_0n) = x[n]
Ex. Givet x[n] = {0, n=0; 1, n = 1; -1, n=2} samt x[n+3] = x[n], n in bbb"Z" Bestäm X[k] för k = 0,1,2 . (dvs upp till N-1; N=3 ); Omega_0 = (2pi)/N = (2pi)/3 Basuttrycket: X[k] = 1/N sum_(n=0)^(N-1) x[n] e^(-jkOmega_0n) Här: X[k] = 1/3 sum_(n=-1)^1 x[n] e^(-jkOmega_0n) => X[k] = 1/3(x[-1]e^(-jk(2pi)/3*(-1)) + X[0]*e^(-jk(2pi)/3*0) + X[1]e^(-jk(2pi)/3*1)) = 1/3(-e^(jk(2pi)/3)+e^(-jk(2pi)/3)) = -1/3*2j*1/(2j)(e^jk(2pi)/3 - e^(-jk(2pi)/3)) = -(2j)/3 sin(k*(2pi)/3)
Kontrollräkna: Rekonstruera x[n] från {X[k]}_(k=0)^2 {X[k]}_(k=0)^2 = {(-2j)/3sin((2pi)/3*0), (-2j)/3sin((2pi)/3*1), (-2j)/3sin((2pi)/3*2)} = {0,(-2j)/3*sqrt(3)/2,-(2j)/3((-2j)/3)(-sqrt(3)/2)}={0,-j/sqrt(3),j/sqrt(3)} X[n] = sum_(k=0)^2 X[k] e^(jk(2pi)/3n) = -j/sqrt(3) e^(j(2pi)/3n) + j/sqrt(3) e^8j(4pi)/3n) En smart omskrivning: (4pi)/3 -= (4pi)/3 - 2pi = (2pi)/3 (eftersom 2pi är perioden) j/sqrt(3)(e^(-j(2pi)/3n) - e^(j(2pi/3)n)) = 2/sqrt(3)(1/(2j)(e^(j(2pi)/3)-e^(-j(2pi)/3n)) = 2/sqrt(3)sin((2pi)/3n) larr direkt: x[n+3] = x[n] (periodisk) Jmf: {x[n]}_(n=0)^2 = {0,1,-1} med {2/sqrt(3)sin((2pi)/3)}_(n=0)^2 = {2/sqrt(3)sin(0), 2/sqrt(3)((2pi)/3)*1, 2/sqrt(3)sin((2pi)/3*2)} = {0,1,-1}

Tidsdiskret Fouriertransform (DTFT).

Med en, inte nödvändigsvis kausal, insignal {x[n]}_(n=-oo)^oo given. definierar Fouriertransformen av x[n]: X[Omega] = sum_(n=-oo)^oo x[n]e^(jnOmegan) Anm: Omega = Omegan i definitonen ovan. Jämför med vanliga Fouriertransformen F{f(t)} = int_(-oo)^oo f(t)e^(-jomegat) dt Antag x[n] kausal, dvs x[n] = x[n]sigma[n] (x[n] = 0 för n < 0) Ger: X(Omega) = sum_(n=0)^oo x[n]e^(-jOmegan) = sum_(n=0)^oo x[n](e^jOmega)^(-n) Quiz: Påminner detta om något? Svar: Jo, Z-transform!! :. sum_(n=0)^oo x[n](e^jOmega)^(-n) = Z{x[n]}_(z=e^jOmega) Quiz: Existerar Fouriertransformen av sigma[n]*3^n ? Svar: Nope.
Ex. Bestäm |H(Omega)| för h[n] (impulssvar) så att H(z) = (z-3/4)/z. (y[n] = x[n]-3/4sigma[n-1]x[n-1]) |H(e^(jOmega))| = |(z-3/4)/z| = ||z-3/4|/|z||_(z=e^jOmega) = |e^(jOmega)-3/4|/|e^(jOmega)| = |cosOmega+jsinOmega - 3/4| = sqrt((cosOmega-3/4)^2+sin^2Omega) = sqrt(cos^2Omega - 2*3/4cosOmega + (3/4)^2 + sin^2Omega) = sqrt(1+9/16-6/4cosOmega) = sqrt(25/16-24/16cosOmega) = 1/sqrt(16)sqrt(25-24cosOmega) = 1/4sqrt(25-24cosOmega) :. X(Omega+2pi) = sum_(n=0)^oo x[n] e^(-j(OMega+2pi)n) = X(Omega) Vi plottar denna från -pi till pi : |H(Omega)| = 1/4sqrt(25-24cosOmega)
OBS! DTFT är inte DFT. Fast Fouriertransform: Den viktigaste algoritmen på 1900-talet säger vissa. Sverre inte helt övertygad. Numerisk beräkning av Fouriertransform (est. 1965)