diff --git a/ntnu/ttt4120/summary/figures/DirectTypeII.svg b/ntnu/ttt4120/summary/figures/DirectTypeII.svg new file mode 100644 index 0000000..7964c45 --- /dev/null +++ b/ntnu/ttt4120/summary/figures/DirectTypeII.svg @@ -0,0 +1,971 @@ + +image/svg+xml diff --git a/ntnu/ttt4120/summary/figures/IIR_Dir1.svg b/ntnu/ttt4120/summary/figures/IIR_Dir1.svg new file mode 100644 index 0000000..da28fca --- /dev/null +++ b/ntnu/ttt4120/summary/figures/IIR_Dir1.svg @@ -0,0 +1,1401 @@ + +image/svg+xmlBare nullerBare poler diff --git a/ntnu/ttt4120/summary/figures/IIR_Dir2.svg b/ntnu/ttt4120/summary/figures/IIR_Dir2.svg new file mode 100644 index 0000000..cbe21ca --- /dev/null +++ b/ntnu/ttt4120/summary/figures/IIR_Dir2.svg @@ -0,0 +1,1180 @@ + +image/svg+xml diff --git a/ntnu/ttt4120/summary/figures/adder.svg b/ntnu/ttt4120/summary/figures/adder.svg new file mode 100644 index 0000000..31edab3 --- /dev/null +++ b/ntnu/ttt4120/summary/figures/adder.svg @@ -0,0 +1,335 @@ + +image/svg+xml diff --git a/ntnu/ttt4120/summary/figures/constant.svg b/ntnu/ttt4120/summary/figures/constant.svg new file mode 100644 index 0000000..1a7a1d4 --- /dev/null +++ b/ntnu/ttt4120/summary/figures/constant.svg @@ -0,0 +1,203 @@ + +image/svg+xml diff --git a/ntnu/ttt4120/summary/figures/delay.svg b/ntnu/ttt4120/summary/figures/delay.svg new file mode 100644 index 0000000..c8de36e --- /dev/null +++ b/ntnu/ttt4120/summary/figures/delay.svg @@ -0,0 +1,233 @@ + +image/svg+xml diff --git a/ntnu/ttt4120/summary/figures/directFormI.svg b/ntnu/ttt4120/summary/figures/directFormI.svg new file mode 100644 index 0000000..d9e34e1 --- /dev/null +++ b/ntnu/ttt4120/summary/figures/directFormI.svg @@ -0,0 +1,1020 @@ + +image/svg+xml diff --git a/ntnu/ttt4120/summary/summary.md b/ntnu/ttt4120/summary/summary.md index d7b2f22..70bd45d 100644 --- a/ntnu/ttt4120/summary/summary.md +++ b/ntnu/ttt4120/summary/summary.md @@ -976,9 +976,9 @@ IIR: $$ \begin{gathered} - H(z) = \frac{\sum_{k=1}^{M-1} b_k z^{-k}}{1 + \sum_{k=0}^{N-1} a_k z^{-k}} \\ + H(z) = \frac{\sum_{k=0}^{M} b_k z^{-k}}{1 + \sum_{k=1}^{N} a_k z^{-k}} \\ \Downarrow\\ - y[n] = -\sum_{k=0}^{N-1} a_k y[n-k] + \sum_{k=0}^{M-1} b_k x[n-k] + y[n] = -\sum_{k=1}^{N} a_k y[n-k] + \sum_{k=0}^{M} b_k x[n-k] \end{gathered} $$ @@ -1039,7 +1039,7 @@ Brukes mest for bevegende og rekursivt snitt. Filteret har både poler og nuller. -$$ H(z) = \frac{\sum_{k=1}^{M-1} b_k z^{-k}}{1 + \sum_{k=0}^{N-1} a_k z^{-k}} $$ +$$ H(z) = \frac{\sum_{k=0}^{M} b_k z^{-k}}{1 + \sum_{k=1}^{N} a_k z^{-k}} $$ For en gitt filterorden, vil den kunne ha strammere spesifikasjoner enn FIR. @@ -1064,7 +1064,7 @@ Prosessen er delt opp i fire deler: $$ s=\frac{2}{T}\frac{z-1}{z+1} \text{ eller } z=\frac{\frac{2}{T}+s}{\frac{2}{T}-s}$$ -Dersom vi setter $s=\sigma+j\Omega$ og $z=e^j\omega$, får vi en transformasjon for frekvensene også. +Dersom vi setter $s=\sigma+j\Omega$ og $z=e^{j\omega}$, får vi en transformasjon for frekvensene også. $$ \begin{gathered} @@ -1125,4 +1125,132 @@ $$ Der $U_N$ er den $N$-te ordens Jacobi elliptiske funksjon. $\epsilon$ bestemmer rippel i passbånd. Dersom $N$ er et partall, vil det være mindre rippel i passbånd, men mer i stoppbånd. -For $N$ oddetall er det mer rippel i passbånd, men mye flatere i stoppbånd. \ No newline at end of file +For $N$ oddetall er det mer rippel i passbånd, men mye flatere i stoppbånd. + +### Wienerfilter + +Kommer kanskje. + +## Filterstrukturer + +Det finnes fire hovetyper av filterstrukturer: + +* Dirkete + * Implementere ulikhetslikningen, finnes to typer. +* Kaskade + * Faktorisere $H(z)$ i faktorer av andre orden. +* Parallell + * Delbrøkoppspalte $H(z)$ opp i delbrøker av andre orden. +* Transponert + +Frem til nå er det kun beskrevet et filter ved hjelp av systemfunksjon, frekvensrespons og impulsresponsen. +Filterstrukturer beskriver hvordan de kan implementeres. + +Forskellige strukturer har forskjellige egenskaper og resultater når man legger til at konstander og kalkulasjoner kun har en endelig presisjon. +Med uendelig presisjon vil alle strukturer gi ut samme resultat. + +### Blokker + +Det brukes tre blokker for å beskrive et digitalt filter: + +Adderer: + +![Aderer](figures/adder.svg) + +Konstant muliplisering: + +![Mulitply](figures/constant.svg) + +Enhetsforsinking: + +![Unit delay](figures/delay.svg) + +### Rasjonale systemfunksjoner + +$$ H(z) = \frac{\sum_{k=0}^{M} b_k z^{-k}}{1 + \sum_{k=1}^{N} a_k z^{-k}}, a_0 = 1 $$ + +Systemets orden er $N$ dersom $a_N\neq0$ + +Ulikhetslikning assosiert med IIR: + +$$y[n] = \sum_{k=0}^{M} b_k x[n-k] - \sum_{k=1}^{N} a_k y[n-k]$$ + +Ved å ednre på rekkefølgen på utregningene kan vi oppnå ulike strukturer. + +### FIR-implemetasjon + +Dersom du har impulsrespons og systemfunksjon for et FIR filter, kan du sette opp en "Direkte struktur". + +$$ +\begin{aligned} + y[n] &= \sum_{k=0}^{M-1} b_k x[n-k] \\ + &= \sum_{k=0}^{M} h[k] x[n-k] +\end{aligned} +$$ + +$$ H(z) = \sum_{k=0}^{M-1}b_k z^{-k} $$ + +Dette kan tegnes: + +![Direkte I](figures/directFormI.svg) + +Dersom vi har et FIR filter med lineær fase kan vi halvere mengden regneoperasjoner som må gjøres. + +Dersom vi feks. har en FIR av lengde 7, og type I, og symetrisk kan denne beskrives: + +$$ +\begin{aligned} + h[n] = &h[0](1 + z^{-6}) + h[1](z^{-1} + z^{-5}) \\ + &+ h[2](z^{-2} + z^{-4}) + h[3]z^{-3} +\end{aligned} +$$ + +Dette kan impemeteres som under dersom $h[n] = \pm h[M-1-n]$: + +![Direkte II](figures/DirectTypeII.svg) + + +### IIR-implementasjon + +#### Direkte struktur +Dersom du har impulsrespons og systemfunksjon for et IIR filter, kan du sette opp en "Direkte struktur". + +$$ +\begin{aligned} + y[n] = &\sum_{k=0}^{M} b_k x[n-k] \\ + &- \sum_{k=1}^{N} a_k y[n-k] +\end{aligned} +$$ + +$$ +\begin{aligned} + H(z) &= \frac{\sum_{k=0}^{M} b_k z^{-k}}{1 + \sum_{k=1}^{N} a_k z^{-k}} \\ + &= \frac{B(z)}{A(z)} = B(z)\frac{1}{A(z)} +\end{aligned} +$$ + +Vi kan tegne Type I av en direkte struktur. + +Det vil være +* $M+N+1$ multiplikasjoner +* $M+N+1$ minneplasser brukt + +![IIR Direct-form I](figures/IIR_Dir1.svg) + +Vi kan endre på rekkefølgen av brøken og ende opp med en Type II av direkte struktur. + +Det vil nå være mange ferre minneplasser, mindre forsinking, men like mange regneoperasjoner. + +![IIR Direct-form II](figures/IIR_Dir2.svg) + + +#### Kaskade + +Her deler man opp en kompleks funksjon i andre ordens faktorer, og kobler filterene i serie. +Hver ledd lages på samme måte som i Type II av direkte struktur. + +#### Parallell + +Her delbrøkoppspalter man problemet, for å så lage en parallell struktur der hver bit er en type II direkte struktur. + +