diff options
author | Julian T <julian@jtle.dk> | 2021-01-11 17:19:56 +0100 |
---|---|---|
committer | Julian T <julian@jtle.dk> | 2021-01-11 17:19:56 +0100 |
commit | 8ead771aafe22c7cdf30436da9c6e2614831f1ee (patch) | |
tree | a75eff47579354a45e9d76c50672416a14986a19 /sem5/sig | |
parent | ccf8359ed3a061cdff335b39ddb27a36b296e1d9 (diff) |
Added signal processing notes and assignments
Diffstat (limited to 'sem5/sig')
-rw-r--r-- | sem5/sig/eksamnen/fir-plot.m | 37 | ||||
-rw-r--r-- | sem5/sig/eksamnen/noter.md | 332 | ||||
-rw-r--r-- | sem5/sig/mm11/Opgaver.ipynb | 93 | ||||
-rw-r--r-- | sem5/sig/mm12/noter.md | 27 |
4 files changed, 489 insertions, 0 deletions
diff --git a/sem5/sig/eksamnen/fir-plot.m b/sem5/sig/eksamnen/fir-plot.m new file mode 100644 index 0000000..3148b9b --- /dev/null +++ b/sem5/sig/eksamnen/fir-plot.m @@ -0,0 +1,37 @@ +clear + +M = 28; + +for i=0:999, + omega(i+1) = pi * i / 999; +end; + + +for i=0:999, + sum_t = 0; + sum_b = 0; + + for k=1:M/2, + % h får altid M/2 så det kan optimeres ud. + h = ((sin((pi/4) * k)) / (pi * k)); + + a = 2 * h; + % Hamming: + a = a * (0.54 - 0.46 * cos( 2 * pi * (k + (M/2)) / (M))); + + sum_t = sum_t + a * cos(k * omega(i+1)); + sum_b = sum_b + a; + end; + + % Når k=0 + sum_t = sum_t + 0.25; + sum_b = sum_b + 0.25; + + amp(i+1) = sum_t / sum_b; + +end; + +plot(omega, 20 * log10(abs(amp)), 3/16 * pi, -1, "+", 3/8 * pi, -10, "+") +grid; +xlabel("Frequency"); +ylabel("Amplitude [dB]");
\ No newline at end of file diff --git a/sem5/sig/eksamnen/noter.md b/sem5/sig/eksamnen/noter.md new file mode 100644 index 0000000..d4f8afb --- /dev/null +++ b/sem5/sig/eksamnen/noter.md @@ -0,0 +1,332 @@ +# TODO + +- [ ] Check opgaver i TOPIC 1 +- [ ] Check opgaver i TOPIC 2 +- [ ] Check opgave 7 i TOPIC 3 + +- [ ] Check opgaver i 10 +- [ ] Check opgaver i 11 + +- [ ] Kig på B.1 i reexam + +# Topic 1 + +## Eksponential sekvens + +Kan beskrives som: + +$$x[n] = A \alpha^n$$ + +## Komplex eksponential sekvens + +(Se slide 42) + +Her lader man de to dele (imag og real) være exponentialt vægtede siusiods. + +## Frekvens i deskrete signaler + +Hvis man har en frekvens $\omega_0$ kan man ikke se forskel fra frekvensen $\omega_0 + 2 \pi$. + +## Perioditet + +Hvis man har en complex exponential sekvens er det ikke sikkert at den er periodisk. +Her kræver det er at: + +$$ +e^{j \omega_0 (n + N)} = e^{j \omega_0 n} +$$ + +Ved sinusiod gælder. + +$$ +\omega_0 N = 2 \pi k +$$ + +# Topic 2 + +## Mærkelige ord + +Tids-invariante system +: Ved en given input-sekvens giver systemet altid det samme output uafhængigt at tidspunktet. + +Kausalitet +: Et kausalt systems output afhænger kun af tidsligere input og ikke fremtidigt input. + +BIBO stabilt +: Et bounded input skal også give et bounded output. + +## Lineære tidsinvariante systemer og foldning + +Her kan man beskrive systemet som at være afhængig af et input sekvens og et impuls respons $h[n]$. + +$$ +y[n] = \sum_{k=-\infty}^{\infty} x[k] h[n-k] +$$ + +Dette kaldes også en *foldning* eller *convolution*. + +Foldning er både kommulatativ og distributiv (se slide 17). + +### Stabilitet + +Et LTI system er stabilt hvis dens impulsrespons er summerbar. + +$$ +S = \sum_{k=-\infty}^{\infty} |h[k]| < \infty +$$ + +Dette kaldes også et finite impulse response eller FIR. + +Man kan også have stabile systemer med et uendeligt impuls respons, sålænge summen konvergere. +Dette kaldes et infinite impulse response eller IIR. + +# Topic 3 + +## Overførings funktion eller transfer function + +Kaldes H og er laplace(eller z) af impuls respons. + +$$ +y(t) \ast h(t) \leftrightarrow Y(s) = H(s) \cdot X(s) +$$ + +I frequency domain bliver en foldning til en multiplication og omvendt. + +## Z Transform + +$$ +X(z) = \sum_{n=-\infty}^{\infty} x[n] z^{-n} +$$ + +Bilateral +: Two sided, altså fra $-\infty$ til $\infty$. +Unilateral +: Her har man kun en positive side af summen. + +### Konvergens + +Vi ved ikke om alle x[n] sekvenser eller z får z tranformation til at konvergere. + +Derfor defineres ROC eller Region of Convergense som siger hvilke værdier får transformationen til at konvergere. +Vi kan sige at den konvegere hvis: + +$$ +\sum_{n=-\infty}^{\infty} | x[n] r^{-n} | < \infty +$$ + +Fordi konvergens ikke afhænger af frekvens(hvor langt rundt i cirklen man er) men kun $|z|$, må ROC altså være en ring. +Hvis ROC indeholder enhedscirklen $|z| = 1$ betyder det at fourier transformen også konvergere. + +### Stabilt + +Ens transfer funktion skal indeholde ROC for at være stabilt. + +## Fourier transform af sequence + +$$ +X(e^{j \omega}) = \sum_{n=-\infty}^{\infty} x[n] e^{-j \omega n} +$$ + +Dette er bare en z transform hvor $z = e^{j \omega}$. + +Her er en z tranformation på enhedscirklen i det komplekse plan lig med fourier transform. +Læs mere på slide 14. + +## Brug af z transform + +En z transform fortæller meget hvis man kan skrive den op som en rational function (altså kan beskrives som to polynomier over hinnanden). + +$$ +X(z) = \frac{P(z)}{Q(z)} +$$ + +Her beskriver rødderne i $P(z)$ nulpunkterne i X(z). +Mens rødderne i $Q(z)$ beskriver rødder. + +Disse to typer punkter beskriver egenskaberne af X(z). + +### Properties + +1. ROC er en ring eller disk i z planet +2. Fourier transformen af $x[n]$ konvergere hvis og kun hvis ROC indeholder enhedscirklen. +3. ROC indeholder ikke nogle poler +4. Hvis x[n] kun indeholder elementer i et finite interval, vil ROC indeholde hele z planet undtaget $z = 0$ eller $z = \infty$. +5. Hvis x[n] er en *right-sided sequence*, altså en sekvens der er nul mindre end en bestemt $N_1$, vil ROC gå fra den største pol til $\infty$. +6. Hvis x[n] er en *left-sided sequence*, altså en sekvens der er nul større end en bestemt $N_2$, vil ROC gå fra center til den mindste pol. +7. Hvis x[n] er en *two-sided sequence* vil ROC være en disk. +8. ROC skal være en forbundet region. + + + +# Topic 5 + +## Frekvens og fase response + +$H(j\Omega) kan deles op i frekvens og fase respons: + +Amplitude respons: $|H(j\Omega)|$ + +Fase respons: $Arg(H(j\Omega))$ + +Amplitude responsen skrives tit i decibel, hvilken regnes ud med: + +$$ +20 \cdot log_{10} |H(j \Omega)| \qquad \textrm{[dB]} +$$ + +# Topic 6 + +## Forskellige typer filtre + +Low-pass +: Lukker af for signalet efter en cutoff frequency + +High-pass +: Åbner for signalet efter en bestemt cutoff frequency + +Bandpass +: Lader en et bestemt interval af signaler igennem + +Notch +: Omvendt af bandpass + +Disse kan findes på slide 14 + +## Forskellige områder i et filter + +Passband +: De frekvenser som filteret skal lade komme igennem, stopper ved $\Omega_p$ + +Transition +: Hvor filtreret går fra åbent til lukker, stopper ved $\Omega_s$ + +Stopband +: De frevenser som filteret ikke lader komme igennem + +# Topic 7 + +Forklarer en masse om hvordan man laver et IIR filter ud fra en analog specifikation. + +Samt bilinear transformation. + +## Butterworth + +Et idealt filter er ikke muligt, men en approx er butterworth LP filter. + +$$ +|H_c (j \Omega)|^2 = \frac{1}{1 + \left(\frac{j\Omega}{j\Omega_c} \right)^2N} +$$ + +Her er $N$ filter orderen hvor højere approx, altså mindre transition band. + +## Bilinear + +Her mapper man en frekvens i s domainet til en revolution på enheds cirklen i z domainet. + +$$ +s = \frac{2}{T_d} \left(\frac{ 1 - z^{-1}}{1 + z^{-1}}\right) +$$ + +# Topic 8 + +## FIR filter + +Finite impuls response. + +Giver mulighed for *Linear phase*, hvilket har den fordel at det er let at manipulere signalet. +Dette betyder at ligemeget frekvensen vil filteret give det samme delay. + +Linear phase kan opnås ved at man lader sit impulse response være symmetrisk. + +Findes mange forskellige typer beskrevet på slide 17. + +Design process er beskrevet super godt i Topic 9 starten af slides. + +# Topic 9 + +Bruger frekvens transformation til at lave LP om til andre. +Se side 553. + +# Topic 10 + +## Quantitation + +Fejl der opstår når man convertere noget til digitalt hvor der kun er en fixed mængde precision. + +### Time quantitation + +Ved Sample hold og man fjerner continues time. + +### Variable contituation + +I ADC hvor man convetere et signal til en digital værdi på et begrænset antal bits. + +Her kommer der noget ind om signal to noise. Se slide 4. + +### Computer H(z) + +Dette sker ved interne beregninger, da man hele tiden mister precision. + +Her er der en masse ting man kan gøre. + +## Realisation structures + +Måder at konvertere fra en difference equation til en graphical representation. + +### Direct form 1 + +Kan ses på slide 16, hvor man mapper en difference equation direkte. + +### Direct form 2 + +Her introducere man en mellem function $w[n]$ som ligger mellem $x$ og $y$. + +Dette giver en kombineret direct form 1, og har den fordel at det kræver mindre memory. + +## Scaling + +Vil gerne have højst mulig Signal to noise, altså man vil gerne bedst mulig udnytte sin precision. + +Overflow inde i systemet er okay, sålænge den totale sum ikke kommer over. + +Forskellige typer scaling er muligt for at få god utilization. + + - Max-value scaling + Har den ulempe at man kan ende med ikke at udnytte systemet optimalt. + - Sinusoid scaling + Self study + - Variance scaling + Siger man at energi ved input skal være større end ved vigtige steder. + +# Topic 11 + +## DFT + +Modsat DTFT som er continuer i frekvens, DTF er deskret i frekvens. + +Udledt af DFS, og udregnes med en sum af signalet selv. + +$$ +X[k] = \sum_{n=0}^{N-1} x[n] W_N^{kn} +$$ + +Virker også omvendt. + +$$ +x[n] = \frac{1}{N} \sum_{k=0}^{N-1} X[k] W_N^{-kn} +$$ + +Her skal X og x være 0 uden for [0, N-1]. + +# Topic 12 + + - Periodic convolution (slide 7) + - God opsummering af DTF (slide 11) + +## Finite sequence to periodic + +DTF kræver at man har en periodisk i tid signal. +Dette er ikke rigtig sådan virkeligheden fungere. + +Istedet tager man N bits fra sig signal og gentager det om og om igen. +Hvis man ikke har nok bits i sit signal til at tage N, kan man zero pad det til N. diff --git a/sem5/sig/mm11/Opgaver.ipynb b/sem5/sig/mm11/Opgaver.ipynb new file mode 100644 index 0000000..d8077e0 --- /dev/null +++ b/sem5/sig/mm11/Opgaver.ipynb @@ -0,0 +1,93 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Opgave 1" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import cmath\n", + "import math\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "def f(k):\n", + " part1 = (2 + 2j * k * math.pi)\n", + " tope = (1 + k * 1j * math.pi)\n", + " part2 = np.exp(tope) - np.exp(-tope)\n", + " return part2 / part1\n" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.collections.PathCollection at 0x7f78484dd610>" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x = np.arange(-30, 30, dtype=np.complex)\n", + "y = abs(f(x))\n", + "plt.scatter(x, y)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/sem5/sig/mm12/noter.md b/sem5/sig/mm12/noter.md new file mode 100644 index 0000000..7acf1a9 --- /dev/null +++ b/sem5/sig/mm12/noter.md @@ -0,0 +1,27 @@ +# Signal behandling mm12 + +hej med dig + +HUSK: Mærkelig måde at skrive modulo på: + +$$ +(n \mathrm{modulo} N) = ((n))_N +$$ + + +## Periodisk foldning + +Foldning af to periodiske signaler. +Dette kan gøres som en multiplication i frekvens. + +Husk at man kun behøver at folde mellem 0 og N, hvor N er perioden af de to signaler. + +$$\tilde{x}_3 [n] = \sum_{n=0}^{N-1} \tilde{x}_1 [m] \tilde{x}_2 [n-m]$$ + +Her er det vigtigt at se at $\tilde{x}_3$ også er periodisk. + +## Cirkulærs skifte + +Hvis man har en endelig sekvens som man vil rykke, kan man lave et **Cirkulært skift** hvor man tager dem i starten og sætter i enden eller omvendt. + +Når man gør dette tager man $x_1$ og $x_2$ og laver periodiske og derefter laver shift. |