kurse:efcomputergrafik:kw43

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kurse:efcomputergrafik:kw43 [2019/10/23 14:40]
Marcel Metzler [Anwendung Datenkomprimierung Linienzeichnungen]
kurse:efcomputergrafik:kw43 [2019/10/29 15:15] (current)
Marcel Metzler [Anwendung Datenkomprimierung von Linienzeichnungen]
Line 65: Line 65:
  
 Rechne $a_k$ vollständig durch. Rechne $a_k$ vollständig durch.
-====Anwendung Datenkomprimierung Linienzeichnungen====+====Anwendung Datenkomprimierung von Linienzeichnungen====
  
 **Aufgabe 3** **Aufgabe 3**
  
-Analysiere folgendes Programm.+Analysiere folgendes Programm. Was ist neu?
 <code python Fourier.py> <code python Fourier.py>
 from gpanel import * from gpanel import *
Line 103: Line 103:
  
 ===Konventionen und Anpassungen für die Datenkomprimierung=== ===Konventionen und Anpassungen für die Datenkomprimierung===
-Sei $f$ die Funktion, welche das Bild beschreibt.+Sei $f$ eine 1-periodische Funktion, welche unser Bild beschreibt.
 $$ f: \; \left[0,1\right] \; \rightarrow \; \mathbb{C}, \quad t \;\mapsto z=x+i\cdot y $$ $$ f: \; \left[0,1\right] \; \rightarrow \; \mathbb{C}, \quad t \;\mapsto z=x+i\cdot y $$
-D.h. wir fassen die Bildpunkte $P(x|y)$ als Punkte in der komplexen Zahlenebene auf. Der erste Punkt $P_0(x_0|y_0)$ ist $f(0)=x_0+i\cdot y_0$, der letzte Punkt $P_n(x_n|y_n)$ ist $f(1)=x_n+i\cdot y_n$, dazwischen wird linear interpoliert, d.h. mit $$\Delta t = \frac{1}{n-1}$$ folgt dann $P_k(x_k|y_k)$ ist $f((k-1)\Delta t)=x_k+i\cdot y_k$.+D.h. wir fassen die Bildpunkte $P(x|y)$ als Punkte in der komplexen Zahlenebene auf. Der erste Punkt $P_0(x_0|y_0)$ ist $f(0)=x_0+i\cdot y_0$, der letzte Punkt $P_n(x_n|y_n)$ ist $f(1)=x_n+i\cdot y_n$, dazwischen wird linear interpoliert, d.h. mit $$\Delta t = \frac{1}{n-1}$$ folgt dann für ein $k\in \{1,2,3,...,n\}$, dass $P_k(x_k|y_k)$ als $f((k-1)\Delta t)=x_k+i\cdot y_k$ interpretiert wird. 
 + 
 +Wir wollen unser $f$ welches wir nun anhand von einer endlichen Anzahl von Punkten kennen mit einem komplexen Fourierreihe approximieren, darstellen.  
 +$$f(t)=\sum_{k=-\infty}^{\infty}c_k \cdot e^{ikt}  \approx \sum_{k=-n}^{n}c_k \cdot e^{ikt}$$ 
 +Für den komplexen Fourierkoeffizienten $c_k$ gilt: 
 +$$c_k=\frac{1}{2\pi}\int_0^{2\pi} f(t)\cdot e^{-ikt}dt $$ 
 +Aufgrund unserer Anpassung, d.h. weil $f$ 1-periodisch ist ergibt sich folgende Vereinfachung. 
 +$$c_k=\int_0^1 f(t)\cdot e^{-2\pi ikt}dt $$ 
 +Das Integral berechnen wir über eine "Riemann"-Summe, d.h. 
 +$$c_k=\int_0^1 f(t)\cdot e^{-ikt}dt \approx \sum_{j=0}^{n-1}f(j\cdot \Delta t)\cdot e^{-2\pi ikj\cdot \Delta t}\cdot \Delta t$$ 
 + 
 +**Aufgabe 4** 
 + 
 +Ergänze das obige Programm so, dass 
 +  * die komplexen Fourierkoeffizienten $c_k$ berechnet werden und 
 +  * diese in einem File abgespeichert werden. Pro Zeile soll nur ein Fourierkoeffizient stehen.
  • kurse/efcomputergrafik/kw43.1571834434.txt.gz
  • Last modified: 2019/10/23 14:40
  • by Marcel Metzler