diff --git a/ntnu/ttt4120/summary/figures/longSeq.png b/ntnu/ttt4120/summary/figures/longSeq.png new file mode 100644 index 0000000..addb27f Binary files /dev/null and b/ntnu/ttt4120/summary/figures/longSeq.png differ diff --git a/ntnu/ttt4120/summary/summary.md b/ntnu/ttt4120/summary/summary.md index aefe2a1..aa702ab 100644 --- a/ntnu/ttt4120/summary/summary.md +++ b/ntnu/ttt4120/summary/summary.md @@ -725,7 +725,7 @@ ylabel('Phase') Litt som DTFT, men her sampler vi frekvensdomenet. Som videre kan rekonstrueres tilbake til en fullverdig kontinuerlig frekvensrespons. -Denne kan effektiviseres med en algoritme kalt FFT (Rask fouriertransformasjon eller "FastFourierTransform"). +Denne kan effektiviseres med en algoritme kalt FFT (Rask fouriertransformasjon eller "Fast Fourier Transform"). ### Frekvenssampling @@ -747,6 +747,11 @@ Der den periodiske utvidelsen av $x[n]$, $x_p[n]$ er definert: $$ x_p[n] = \sum_{l=-\infty}^{\infty} x[n - lN] $$ +For at vi skal kunne rekonstruere det orginale spektrumet, må vi vite følgende: + +> Vi trenger DFT med størrelse $N \geq M + L - 1$, for å unikt rekonstuere $y[n]$ i frekvensdomenet. +> Der $M$ og $L$ er lengden av to sekvenser vi ønsker å konvulere. + ### Diskret-tid-fourierrekke $$ @@ -762,7 +767,7 @@ $$X(k) = \sum_{n=0}^{N-1}x[n]e^{-\frac{j2\pi k}{N}n}, k=0,\ldots,N-1 $$ ### Invers Diskret Fouriertransformasjon (IDFT) -$$x(n) = \frac{1}{N}\sum_{k=0}^{N-1}X(k)e^{\frac{j2\pi k}{N}n}, n=0,\ldots,N-1 $$ +$$x[n] = \frac{1}{N}\sum_{k=0}^{N-1}X(k)e^{\frac{j2\pi k}{N}n}, n=0,\ldots,N-1 $$ ### Egenskaper til DFT @@ -776,4 +781,55 @@ Ganske like som i DTFT * Konjugerte * Sirkulær konvolusjon * Multiplikasjon av to sekvenser -* Pasevals teorem \ No newline at end of file +* Parsevals teorem + +### Filtrering med LFT + +Dersom vi har to sekvenser, $x[n]$ og $h[n]$ med lengder $L$ og $M$, må de "paddes" med $0$ på slutten, slik at lengden av sekvensene er begge $N$. + +$$ +\begin{aligned} + x[n] &= \{x[0], \ldots, x[L-1], \underbrace{0,\ldots,0}_{N-L}\} \\ + h[n] &= \{h[0], \ldots, h[L-1], \underbrace{0,\ldots,0}_{N-M}\} +\end{aligned} +$$ + +Da kan utgangssekvensen beregnes med DFT. + +$$ +\begin{aligned} + y[n] &= \text{IDFT}_N\{Y(k)\} \\ + &= \text{IDFT}_N\{\text{DFT}_N\{h[n]\}\cdot\text{DFT}_N\{x[n]\}\} +\end{aligned} +$$ + +Dersom vi velger $N < M + L - 1$ vil vi kunne få aliasing i tidsdomenet. + +### Filtrering av lange sekvenser + +Dersom vi har veldig lange sekvenser kan det bli veldig utregningsmessig komlekst. +Dette er spesielt merkbart i sanntidsprossesering (ikke noe start eller slutt). + +Det er mulig å dele opp sekvensene i mindre biter. +Da brukes den additive egenskapen til konolusjon. + +$$ +\begin{aligned} + y[n] &= h[n] * (x_1[n] + x_2[n]) \\ + &= h[n] * x_1[n] + h[n] * x_2[n] \\ + &= y_1[x] + y_2[n] +\end{aligned} +$$ + +Dette brukes videre for å filtrere lange sekvenser: + +1. Del opp sekvensen $x[n]$ opp i *ikke-overlappende blokker* $x_m[n]$, hver med lengde $L$. +2. Filtrer hver blokk $x_m [n]$ med $h[n]$ for å produsere *utgangsblokken* $y_m[n]$. +3. Kombiner blokkene sammen til den totale sekvensen. + +$$y[n] = \sum_m y_m[n]$$ + +Dersom lengden av $h[n]$ er $M$, vil lengden av $y[n]$ være $L+M-1$. +Dermed vil de siste $M-1$ verdiene i sekvensen $y_{m-1}[n]$ bli lagt til i starten av neste blokk $y_m[n]$. + +![Lange sekvenser](figures/longSeq.png)  \ No newline at end of file