0 Daumen
262 Aufrufe

Ich habe mich in letzter Zeit vermehrt mit der Theorie hinter der Fourier Analyse, insbesondere mit der diskreten Fourier Transformation (DFT), beschäftigt. Dabei habe ich vermehrt von der diskreten Kosinustransformation (DCT) gehört, welche v.a. in der Bildkomprimierung Verwendung findet. Für die DFT eines Vektors \(\mathbf{x}=(x_0,\ldots,x_{N-1})^{\top}\) gilt

\(\displaystyle \hat{x}_k=\sum_{n=1}^{N-1}x_n\exp{\left(\frac{-2\pi\mathrm{i}nk}{N}\right)}\),

wobei die DCT-II mit

\(\displaystyle \hat{x}_k=\sum_{n=0}^{N-1}x_n\cos{\left(\frac{2\pi (n+1/2)k}{N}\right)} \)

definiert ist.

Meine Frage: Lässt sich die Formel für die DCT-II mathematisch aus der DFT herleiten, da der Realteil der DFT stark der DCT-II ähnelt?

Avatar von

1 Antwort

+1 Daumen
 
Beste Antwort

Aloha :)

Die diskrete Fourier-Transformation (DFT) transformiert komplexe Eingangsgrößen in komplexe Ausgangsgrößen. Wenn man reelle Eingangswerte hat, liefert die Fourier-Transformation trotzdem komplexe Ausgangsgrößen. Man bläht seinen Speicherbedarf also auf die dopplete Menge auf. Daher haben sich Ingenieure für reelle Eingangsgößen die diskrete Cosinus-Transformation (DCT) ausgedacht.

$$\underbrace{f_k=\sum\limits_{n=0}^{N-1}x_n\exp\left(-i\,\frac{2\pi kn}{N}\right)}_{\text{DFT}}\quad;\quad\underbrace{c_k=\sum\limits_{n=0}^{N-1}x_n\cos\left(\frac{\pi\left(n+\frac12\right)k}{N}\right)}_{\text{DCT-II}}\quad;\quad x_n\in\mathbb R$$

Wenn man bei der DFT den Imaginärteil einfach weglassen würde, hätten wir als Transformations-Vorschrift$$f_k=\sum\limits_{n=0}^{N-1}x_n\cos\left(\frac{2\pi k n}{N}\right)$$wobei das Minuszeichen im Argument der Cosinus-Funktion verschwindet, weil \(\cos(-x)=\cos(x)\) gilt.

Um diese Imaginärteil-Weglass-Transformation etwas besser zu verstehen, schreiben wir sie einfach Mal für den Fall \(N=3\) in Matrix-Schreibweise hin:$$\begin{pmatrix}f_0\\f_1\\f_2\end{pmatrix}=\left(\begin{array}{c|ccc} & n=0 & n=1 & n=2\\\hline k=0 & \cos(0) & \cos(0) & \cos(0)\\[1ex]k=1 & \cos(0) & \cos\left(\frac{2\pi}{3}\cdot1\cdot1\right) & \cos\left(\frac{2\pi}{3}\cdot1\cdot2\right)\\[1ex]k=2 & \cos(0) & \cos\left(\frac{2\pi}{3}\cdot2\cdot1\right) & \cos\left(\frac{2\pi}{3}\cdot2\cdot2\right)\end{array}\right)\begin{pmatrix}x_0\\x_1\\x_2\end{pmatrix}$$$$\begin{pmatrix}f_0\\f_1\\f_2\end{pmatrix}=\left(\begin{array}{rrr}1 & 1 & 1\\[1ex]1 & -\frac12 & -\frac12\\[1ex] 1 & -\frac12 & -\frac12\end{array}\right)\begin{pmatrix}x_0\\x_1\\x_2\end{pmatrix}$$Wir erkennen, dass die Matrix zwei gleiche Spalten hat, was bedeutet, dass sie nicht invertierbar ist. Das heißt, die Imaginärteil-Weglass-Transformation funktioniert nicht, weil das ursprüngliche Signal nicht rekonstruierbar ist.

Die DCT entsteht also nicht aus der DFT duch Weglassen des Imaginärteils.

Man kann aber den Imaginärteil der DFT trotzdem weglassen und zugleich das Argument der verbliebenen Cosinus-Funktion etwas abändern, sodass die Transformation invertierbar wird. Es gibt viele genormte Varianten, wie man das Argument abändern kann. Zur Unterscheidung dieser Varianten dient die römische Ziffer hinter dem Kürzel "DCT". Durch das Abändern des Argumentes wird die Frequenz der Schwingungen und / oder deren Phasenverschiebung gegenüber den Fourier-Schwingungen verändert. [Wichtig ist, dass die entstehenden Cosinus-Schwingungen orthogonal zueinader sind.]

Die DCT übernimmt also die grundlegende Idee der DFT, nämlich das Signal in einzelne Schwingungen zu zerlegen, aber die Schwingungen müssen bei der DCT andere sein als bei der DFT, damit sich das ursprüngliche Signal auch wieder rekonstruieren lässt.

Avatar von 152 k 🚀

Danke für die ausführliche Antwort! Also entspricht die DCT (insbesondere die DCT-II) fast vollständig dem Realteil der DFT, nur wird durch die Änderung des Arguments der Cosinus-Funktion, die Umkehrung der DCT-Matrix sichergestellt, da die Imaginärteile wegfallen?

Ja, so kann man es zusammenfassen. Es ist aber wichtig zu verstehen, dass die Basis-Schwingungen bei der DCT leicht andere sind als bei der DFT.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community