Finish lecture 11, DFT

MetaPost
Øyvind Skaaden 2020-12-03 18:35:16 +01:00
parent 04a53fce08
commit ade4786e14
4 changed files with 260 additions and 68 deletions

View File

@ -110,5 +110,3 @@ a:hover {
.MJX_LiveRegion {
display: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -30,9 +30,9 @@ $T$ trenger ikke å være tid, men f.eks. posisjonen på en stang.
$$
\begin{gather*}
y[n] = ax[n] \\
y[n] = x_1[n] + x_2[n] \\
y[n] = x_1[n]x_2[n]
y[n] = ax[n] \\
y[n] = x_1[n] + x_2[n] \\
y[n] = x_1[n]x_2[n]
\end{gather*}
$$
@ -40,8 +40,8 @@ $$
$$
\begin{gather*}
y[n] = x[n-k] \\
y[n] = -x[n]
y[n] = x[n-k] \\
y[n] = -x[n]
\end{gather*}
$$
@ -86,8 +86,8 @@ $$ P_x = \lim_{n\rightarrow\infty} \frac{1}{2N + 1}\sum_{n=-N}^N |x[n]|^2 $$
$$ \delta[n-k] =
\begin{cases}
1 & n=k \\
0 & n\neq k
1 & n=k \\
0 & n\neq k
\end{cases} $$
Denne du får standardversjonen ved å sette $k=0$.
@ -96,8 +96,8 @@ Denne du får standardversjonen ved å sette $k=0$.
$$ u[n-k] =
\begin{cases}
1 & n\geq k \\
0 & n < k
1 & n\geq k \\
0 & n < k
\end{cases}
$$
@ -110,9 +110,9 @@ Dersom en sinus-kurve skal være periodisk med en periode $N$, og siden vi vet a
$$
\begin{aligned}
\cos(2\pi n) &= \cos(2\pi f (n+N)) \\
\Rightarrow 2\pi f N &= 2\pi k \\
\Rightarrow f &= \frac{k}{N}
\cos(2\pi n) &= \cos(2\pi f (n+N)) \\
\Rightarrow 2\pi f N &= 2\pi k \\
\Rightarrow f &= \frac{k}{N}
\end{aligned}
$$
@ -134,9 +134,9 @@ Da vil den diskrete sekvensen være:
$$
\begin{aligned}
x[n] &= x_a(nT) \\
&= A\cos\left[2\pi\frac{F}{F_S}n\right] \\
&= A\cos\left[2\pi f n\right]
x[n] &= x_a(nT) \\
&= A\cos\left[2\pi\frac{F}{F_S}n\right] \\
&= A\cos\left[2\pi f n\right]
\end{aligned}
$$
@ -146,8 +146,8 @@ Fra før vet vi at:
$$
\begin{aligned}
-\frac{1}{2} < &f \leq \frac{1}{2} \\
-\frac{F_S}{2} < &f \leq \frac{F_S}{2}
-\frac{1}{2} < &f \leq \frac{1}{2} \\
-\frac{F_S}{2} < &f \leq \frac{F_S}{2}
\end{aligned}
$$
@ -188,25 +188,25 @@ Vi sender ut en enhetspuls og ser på hvordan systemet utvikler seg.
Vi kan finne impulsresponsen ved å sette $x[n] = \delta[n]$.
Da får vi at $y[n] = h[n]$.
### Konvulosjon
### Konvolusjon
$$
\begin{aligned}
y[n] &= \mathcal{H}\{x[n]\} \\
&= \mathcal{H}\left\{\sum_k x[k]\delta[n-k]\right\}\\
&= \sum_k x[k]\mathcal{H}\left\{\delta[n-k]\right\} \\
&= \sum_k x[k] h[n-k] \\
&= x[n] * h[n]
y[n] &= \mathcal{H}\{x[n]\} \\
&= \mathcal{H}\left\{\sum_k x[k]\delta[n-k]\right\}\\
&= \sum_k x[k]\mathcal{H}\left\{\delta[n-k]\right\} \\
&= \sum_k x[k] h[n-k] \\
&= x[n] * h[n]
\end{aligned}
$$
Det er mulig å gjøre konvulosjon både stegvis eller med en matrise.
Det er mulig å gjøre konvolusjon både stegvis eller med en matrise.
Matrisen er bare å lage en "gangetabell med verdiene i sekvensene, gange sammen og summere anti-diagonalene.
![Utregning av konvulosjon](figures/diagonalConv.png)
![Utregning av Konvolusjon](figures/diagonalConv.png)
Dersom lengden av sekvensen $x[n]$ er $N_x$ og lengden av $h[n]$ er $N_h$, vil lengden av konvulosjonen være:
Dersom lengden av sekvensen $x[n]$ er $N_x$ og lengden av $h[n]$ er $N_h$, vil lengden av konvolusjonen være:
$$ N_y = N_x + N_h - 1 $$
@ -264,7 +264,7 @@ $$ x[n-k] \stackrel{\mathcal{F}}{\leftrightarrow}e^{-j\omega n}X(\omega) $$
$$ x[-n] \stackrel{\mathcal{F}}{\leftrightarrow} X(-\omega) $$
* Konvulosjon
* Konvolusjon
$$ x_1[n] * x_2[n] \stackrel{\mathcal{F}}{\leftrightarrow} X_1(\omega)X_2(\omega) $$
@ -276,9 +276,9 @@ $$ e^{j\omega_0 n}x[n] \stackrel{\mathcal{F}}{\leftrightarrow} X(\omega - \omega
$$
\begin{gather*}
x[n] \cos(\omega_0 n) \\
\updownarrow\mathcal{F} \\
\frac{1}{2}\left[(X(\omega - \omega_0)+ (X(\omega + \omega_0)\right]
x[n] \cos(\omega_0 n) \\
\updownarrow\mathcal{F} \\
\frac{1}{2}\left[(X(\omega - \omega_0)+ (X(\omega + \omega_0)\right]
\end{gather*}
$$
@ -286,9 +286,9 @@ $$
$$
\begin{gather*}
\sum_n |x[n]|^2\\
\updownarrow\mathcal{F} \\
\frac{1}{2\pi}\int_{-\pi}^\pi X(\omega)d\omega
\sum_n |x[n]|^2\\
\updownarrow\mathcal{F} \\
\frac{1}{2\pi}\int_{-\pi}^\pi X(\omega)d\omega
\end{gather*}
$$
@ -296,9 +296,9 @@ $$
$$
\begin{gather*}
x_1[n]x_2[n]\\
\updownarrow\mathcal{F} \\
\frac{1}{2\pi}\int_{-\pi}^\pi X_1(\lambda)X_2(\omega - \lambda)d\omega
x_1[n]x_2[n]\\
\updownarrow\mathcal{F} \\
\frac{1}{2\pi}\int_{-\pi}^\pi X_1(\lambda)X_2(\omega - \lambda)d\omega
\end{gather*}
$$
@ -344,7 +344,7 @@ $$ a^n x[n] \stackrel{\mathcal{Z}}{\leftrightarrow} X(a^{-1} z) $$
$$ x[-n] \stackrel{\mathcal{Z}}{\leftrightarrow} X(z^{-1}) $$
* Konvulosjon
* Konvolusjon
* ROC minst snittet av ROC til $X_1$ og $X_2$.
$$ x_1[n]*x_2[n]\stackrel{\mathcal{Z}}{\leftrightarrow} X_1(z)X_2(z)$$
@ -361,9 +361,9 @@ Rasjonell dersom transformasjonen kan bli representert som forholdet mellom to p
$$
\begin{aligned}
X(z) &= \frac{B(z)}{A(z)} \\
&= \frac{b_0 + b_1 z^{-1} + \ldots + b_M z^{-M} }{a_0 + a_1 z^{-1} + \ldots + a_N z^{-N}} \\
&= \frac{b_0}{a_0}\frac{\prod_{k=1}^M \left(1-z_k z^{-1}\right)}{\prod_{k=1}^N \left(1-p_k z^{-1}\right)}
X(z) &= \frac{B(z)}{A(z)} \\
&= \frac{b_0 + b_1 z^{-1} + \ldots + b_M z^{-M} }{a_0 + a_1 z^{-1} + \ldots + a_N z^{-N}} \\
&= \frac{b_0}{a_0}\frac{\prod_{k=1}^M \left(1-z_k z^{-1}\right)}{\prod_{k=1}^N \left(1-p_k z^{-1}\right)}
\end{aligned}
$$
@ -415,6 +415,7 @@ figure(2)
plot(W/pi,abs(H));
{%endhighlight%}
## Filteregenskaper
Frekvensresponsen til et system bestemmer hvordan type system det er.
@ -476,9 +477,9 @@ Dersom et system $\mathcal{T}$ er inverterbart, kan vi finne inngangssignalet de
$$
\begin{gather*}
h[n]*h_I[n] = \delta[n] \\
\updownarrow\mathcal{Z} \\
H(z)H_I(z) = 1
h[n]*h_I[n] = \delta[n] \\
\updownarrow\mathcal{Z} \\
H(z)H_I(z) = 1
\end{gather*}
$$
@ -495,13 +496,13 @@ Korrelasjon er et mål på likhet.
### Krysskorrelasjon
Dersom vi har en sekvens $x[n]$ og $y[n]$, vil kryssrelassjonen mellom disse to være:
Dersom vi har en sekvens $x[n]$ og $y[n]$, vil kryssrelasjonen mellom disse to være:
$$
\begin{aligned}
r_{xy}[l] &= \sum_{n=-\infty}^\infty x[n]y[n-l] \\
&= \sum_{n=-\infty}^\infty x[n + l]y[n] \\
&\phantom{=} \text{der } l = \pm 1, \pm 2, \ldots
r_{xy}[l] &= \sum_{n=-\infty}^\infty x[n]y[n-l] \\
&= \sum_{n=-\infty}^\infty x[n + l]y[n] \\
&\phantom{=} \text{der } l = \pm 1, \pm 2, \ldots
\end{aligned}
$$
@ -519,9 +520,9 @@ Måler selvlikhet, $y[n] = x[n]$.
$$
\begin{aligned}
r_{xx}[l] &= \sum_{n=-\infty}^\infty x[n]x[n-l] \\
&= \sum_{n=-\infty}^\infty x[n + l]x[n] \\
&\phantom{=} \text{der } l = \pm 1, \pm 2, \ldots
r_{xx}[l] &= \sum_{n=-\infty}^\infty x[n]x[n-l] \\
&= \sum_{n=-\infty}^\infty x[n + l]x[n] \\
&\phantom{=} \text{der } l = \pm 1, \pm 2, \ldots
\end{aligned}
$$
@ -539,9 +540,9 @@ Autokorrelasjon er en lik funksjon:
$$
\begin{aligned}
r_{xy}[l] &= r_{yx}[-l] \\
&\Downarrow \\
r_{xx}[l] &= r_{xx}[-l]
r_{xy}[l] &= r_{yx}[-l] \\
&\Downarrow \\
r_{xx}[l] &= r_{xx}[-l]
\end{aligned}
$$
@ -549,12 +550,12 @@ Normaliserte versjoner:
$$
\begin{aligned}
\varrho_{xx}[l] &= \frac{r_{xx}[l]}{r_{xx}[0]} \\
&\Downarrow \\
|\varrho_{xx}[l]| &\leq 1 \\ \\
\varrho_{xy}[l] &= \frac{r_{xy}[l]}{\sqrt{r_{xx}[0]r_{yy}[0]}}\\
&\Downarrow \\
|\varrho_{xy}[l]| &\leq 1
\varrho_{xx}[l] &= \frac{r_{xx}[l]}{r_{xx}[0]} \\
&\Downarrow \\
|\varrho_{xx}[l]| &\leq 1 \\ \\
\varrho_{xy}[l] &= \frac{r_{xy}[l]}{\sqrt{r_{xx}[0]r_{yy}[0]}}\\
&\Downarrow \\
|\varrho_{xy}[l]| &\leq 1
\end{aligned}
$$
@ -566,10 +567,10 @@ For å finne denne størrelsen, gjør vi en Fourier-transformasjon av autokorrel
$$
\begin{aligned}
r_{xx}[l] &= x[l] * x[-l] \\
&\updownarrow \mathcal{F} \\
S_{xx}(\omega)&= X(\omega)X^*(\omega) \\
&= |X(\omega)|^2
r_{xx}[l] &= x[l] * x[-l] \\
&\updownarrow \mathcal{F} \\
S_{xx}(\omega)&= X(\omega)X^*(\omega) \\
&= |X(\omega)|^2
\end{aligned}
$$
@ -577,9 +578,202 @@ Størrelsen $S_{xy}(\omega)$ er den *kryssspektrale tettheten*.
$$
\begin{aligned}
r_{xy}[l] &= x[l] * y[-l] \\
&\updownarrow \mathcal{F} \\
S_{xy}(\omega)&= X(\omega)Y^*(\omega)
r_{xy}[l] &= x[l] * y[-l] \\
&\updownarrow \mathcal{F} \\
S_{xy}(\omega)&= X(\omega)Y^*(\omega)
\end{aligned}
$$
### Inngang-utgangs-korrelasjoner
![Inngang-utgangs-korrelasjoner](figures/input-output-corr.png)
#### I z-transformasjon
$$
\begin{gathered}
h[l]*h[-l] \\
\updownarrow\mathcal{Z} \\
H(z)H(z^{-1}) \\ \\
r_{xy} = h[l]*r_{xx}[l] \\
\updownarrow\mathcal{Z} \\
H(z)S_{xx}(z) \\ \\
r_{yy} = r_{hh}[l]*r_{xx}[l]\\
\updownarrow\mathcal{Z} \\
H(z)H(z^{-1})S_{xx}(z)
\end{gathered}
$$
#### Utgangs og kryssspektral tetthet
$$
\begin{aligned}
S_{yy}(\omega) &= |H(\omega)|^2 S_{xx}(\omega) \\
&= |H(\omega)|^2 |X(\omega)|^2 \\ \\
S_{yx}(\omega) &= H(\omega)S_{xx}(\omega)
\end{aligned}
$$
## Invers Z-transformasjon
![Z-transformasjonen](figures/z-transform.png)
Det enkleste for å gjøre en invers z-transformasjon er å delbrøkoppspalte likningen.
Vi kan skrive:
$$
\begin{aligned}
x[n] &= \sum_{k=1}^N R_k z^{-1} \\
&= \sum_{k=1}^N R_k p_k^n u[n]
\end{aligned}
$$
Der $p_k$ er den $k$-ende polen, og $R_k$ er resydyren ved $p_k$.
Dersom vi har komplekskonjugerte par, $p_k = p_i^\* $ er også residyrene komplekskonjugerte, $R_k = R_i^*$.
For å delbrøkoppspalte, må vi gjøre følgende:
1. Faktorisere nevnerpolynomet $A(z)$ for å finne alle poler $p_1, \ldots, p_N$.
2. Deretter finne residyrene $R_1, \ldots, R_N$.
Det første punktet er ganske greit, det er bare å faktorisere som vanlig, med komplekse tall.
Det å finne residyrene er vanskeligere.
Finnes to metoder for å finne poler og residyrer, løse lineære likninger, som ofte tar veldig lang tid. Selv om dette er en langvarig prosess, fungerer den alltid.
Vi kan også bare gange begge sider med $1-p_k z^{-1}$.
Da ender vi opp med å få $R_k$ alene uten noen faktorer med poler.
Videre setter man $z=p_k$. Da vill alt annet enn $R_k$ forsvinne, og vi finner en verdi for $R_k$.
En generell formel er som følger:
$$ R_k = (1-p_k z^{-1})X(z)\Big|_{z=p_k} $$
### Eksempel (regning)
Vi skal delbrøkoppspalte:
$$
\begin{aligned}
X(z) &= \frac{1}{\left(1-\frac{1}{4}z^{-2}\right)} \\
&= \frac{1}{\left(1-\frac{1}{2}z^{-1}\right)\left(1+\frac{1}{2}z^{-1}\right)}\\
&= \frac{R_1}{1-\frac{1}{2}z^{-1}} + \frac{R_2}{1+\frac{1}{2}z^{-1}}
\end{aligned}
$$
Det er da veldig lett å løse residyrene ved bruk av formelen:
$$
\begin{aligned}
R_1 &= \left(R_1 + \frac{R_2\left(1-\frac{1}{2}z^{-1}\right)}{1+\frac{1}{2}z^{-1}}\right)\Bigg|_{z=\frac{1}{2}} \\
&= \frac{1}{1+\frac{1}{2}z^{-1}}\bigg|_{z=\frac{1}{2}} = \frac{1}{2}\\ \\
R_2 &= \left(\frac{R_1\left(1+\frac{1}{2}z^{-1}\right)}{1-\frac{1}{2}z^{-1}} + R_2\right)\Bigg|_{z=-\frac{1}{2}} \\
&= \frac{1}{1-\frac{1}{2}z^{-1}}\bigg|_{z=-\frac{1}{2}} = \frac{1}{2}
\end{aligned}
$$
### Eksempel 1 (MatLab)
Skal finne impulsresponsen på:
$$ H(z) = \frac{3 - 4z^{-1}}{1 - 3.5z^{-1} + 1.5z^{-2}} $$
Dette kan løses i matlab med koden under.
{% highlight matlab %}
B = [3 -4];
A = [1 -3.5 1.5];
[R,P,C] = residuez(B,A);
R % Residues
P % Poles
C % Direct terms (if improper)
{% endhighlight %}
### Eksempel 2 (MatLab)
Dersom vi også ønsker å plotte frekvensresponsen til en annen funksjon:
$$H(\omega) = \frac{1 - e^{-j2\omega}}{1 - 0.81e^{-j2\omega}}$$
Så kan det løses i matlab med koden under:
{% highlight matlab %}
B = [1 0 -1];
A = [1 0 -0.81];
W = [0:1:500]*pi/500;
H = freqz(B,A,W);
magH = abs(H); phaH = angle(H);
subplot(2,1,1); plot(W/pi,magH);
xlabel('Frequency in pi units')
ylabel('Magnitude')
subplot(2,1,2); plot(W/pi,phaH);
xlabel('Frequency in pi units')
ylabel('Phase')
{% endhighlight %}
## Diskret Fouriertransformasjon (DFT)
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").
### Frekvenssampling
Vi sampler frekvensene i intervallet $0\leq\omega<2\pi$, med $N$ likte mye mellom punktene.
$$X(\omega_k) = X(\omega)|_{\omega = \omega_k} $$
Der:
$$ \omega_k = \frac{2\pi k}{N}, k = 0, \ldots, N-1 $$
Siden DTFT av signalet er periodisk med $2\pi$, vet vi at DFT også er periodisk med $N$, $e^{-\frac{j2\pi}{N}n} = e^{-\frac{j2\pi}{N}(n+N)}$
Dersom vi tar DTFT av en sekvens $x[n]$ evaluert i punktene $\omega_k$, får vi:
$$X(\omega_k) = \sum_{n=0}^{N-1} x_p[n]e^{-\frac{j2\pi k}{N}n} $$
Der den periodiske utvidelsen av $x[n]$, $x_p[n]$ er definert:
$$ x_p[n] = \sum_{l=-\infty}^{\infty} x[n - lN] $$
### Diskret-tid-fourierrekke
$$
\begin{gathered}
x_p[n] = \sum_{k=0}^{N-1}c_k e^{\frac{j2\pi k}{N}n}, n=0,\ldots,N-1 \\
c_k = \frac{1}{N}\sum_{n=0}^{N-1}x_p[n] e^{-\frac{j2\pi k}{N}n} = \frac{1}{N}X\left(\frac{2\pi k}{N}\right)
\end{gathered}
$$
### Diskret Fouriertransformasjon (DFT)
$$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 $$
### Egenskaper til DFT
Ganske like som i DTFT
* Periodisk
* Lineær
* Tidsreversering
* Sirkulær tidsforskyvning
* Sirkulær frekvensforskyvning
* Konjugerte
* Sirkulær konvolusjon
* Multiplikasjon av to sekvenser
* Pasevals teorem