{ "cells": [ { "cell_type": "markdown", "id": "63f091aa-8d57-431d-97ed-9be468533b63", "metadata": {}, "source": [ "*Notebook erstellt von A. Naber am 16.11.2022, zuletzt überarbeitet am 24.11.2022*" ] }, { "cell_type": "markdown", "id": "1293be2b-976f-4e5b-8599-994ea04727ad", "metadata": {}, "source": [ "# Fouriertransformation einer periodischen Rechteckfunktion" ] }, { "cell_type": "markdown", "id": "772126f4-d596-4daf-9029-b7fb60a9e89b", "metadata": {}, "source": [ "Eine Rechteckfunktion als Funktion der Zeit $t$ mit Periodendauer $T$ sei gegeben durch\n", "\n", "$$\n", "f(t) = \\begin{cases}\n", " +1 & ; \\quad 0 \\le t < \\dfrac T 2 \\\\[1ex]\n", " -1 & ; \\quad \\dfrac T 2 \\le t < T \n", " \\end{cases}\n", "$$" ] }, { "cell_type": "code", "execution_count": 1, "id": "c3481c64-eb1c-4d69-846e-6185030dacc3", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy import signal\n", "from scipy.fft import fft, ifft, fftfreq\n", "\n", "plt.rcParams[\"axes.grid\"] = True\n", "\n", "N = 1024 # Anzahl an Punkten\n", "T = 1 # Periodendauer\n", "phi = 0 # Phase\n", "noise = 0.0 # Stärke des Rauschens\n", "\n", "# Werte für Zeitachse\n", "t = np.linspace(0, T, N, endpoint=False)\n", "\n", "# erzeugt Rechtecksignal\n", "f = signal.square(2 * np.pi * t + phi)\n", "\n", "# man kann der Funktion Rauschen überlagern\n", "f += np.random.uniform(-noise / 2, noise / 2, N)\n", "\n", "plt.plot(t, f)\n", "plt.xlabel(\"Zeit t\", fontsize=14)\n", "plt.ylabel(\"f(t)\", fontsize=14)\n", "plt.title(f\"Rechteckfunktion für Periodendauer T = {T}\", fontsize=16, y=1.05)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "8e79eb1c-4637-4ffd-9a57-13a053166ecd", "metadata": {}, "source": [ "## Analytische Berechnung der Fouriertransformation" ] }, { "cell_type": "markdown", "id": "3547cddb-cca5-4981-8230-a350b45e5909", "metadata": {}, "source": [ "Die Funktion ist periodisch in der Zeit $t$ mit Periodendauer $T$, also $f(t+T)=f(t)$, und ist definiert für *alle Zeiten* $t$ von $-\\infty$ bis $+\\infty$. Dies ist eine Voraussetzung für die Berechnung der Fourierreihe. Der Graph zeigt nur einen Ausschnitt von $0$ bis $T$, in dem aber alle Informationen enthalten sind. Wir werden nun zunächst die Fourierreihe der Rechteckfunktion analytisch berechnen. Es gilt mit $\\omega =2\\pi/T$ und $m \\in \\mathbb{N}$ (vgl. Vorlesung)\n", "\n", "$$ f(t) = \\dfrac 1 2 A_0 +\\sum_{m=1}^{\\infty} A_m \\cos(m\\omega t)+\\sum_{m=1}^{\\infty} B_m \\sin(m\\omega t) $$\n", "\n", "mit den Koeffizienten\n", "\n", "$$ A_m = \\dfrac 2 T \\int_0^T f(t) \\cos(m\\omega t) dt \\qquad\\text{und}\\qquad B_m = \\dfrac 2 T \\int_0^T f(t) \\sin(m\\omega t) dt \\quad .$$" ] }, { "cell_type": "markdown", "id": "987d4574-0852-4692-932e-46373f19cd99", "metadata": {}, "source": [ "Aufgrund der Punktsymmetrie der Rechteckfunktion zum Ursprung können nur Funktionen gleicher Symmetrie zur Fourierreihe beitragen (Sinusfunktionen), also müssen alle Koeffizienten $A_m$ null werden (rechnen Sie es nach!). Der Koeffizient $A_0$ ist der Mittelwert von $f(t)$, also hier $A_0=0$. Wir können uns damit auf die Berechnung von $B_m$ beschränken. Einsetzen von $f(t)$ liefert:\n", "\n", "\\begin{align*}\n", " B_m &= +\\frac 2 T \\left( \\int_0^{T/2} \\sin(m\\omega t) dt - \\int_{T/2}^T \\sin(m\\omega t) dt \\right)\\\\[2ex]\n", " &= -\\frac 2 T\\,\\frac{1}{m\\omega}\\left(\\Bigl[\\cos(m\\omega t)\\Bigr]_0^{T/2}-\\Bigl[\\cos(m\\omega t)\\Bigr]_{T/2}^T\\right) \\quad ,\n", "\\end{align*}" ] }, { "cell_type": "markdown", "id": "12d51b3d-14fa-47b7-a141-9383cf9c7be9", "metadata": {}, "source": [ "also mit $\\omega T = 2\\pi$\n", "\n", "$$\n", "B_m = \\begin{cases}\n", " 0 & \\text{gerade } m \\\\[1ex]\n", " \\dfrac{4}{\\pi m} & \\text{ungerade } m\n", " \\end{cases} \\quad .\n", "$$" ] }, { "cell_type": "markdown", "id": "c24c27dd-28a8-4b60-85d8-46373f5727b7", "metadata": {}, "source": [ "Die Rechteckfunktion $f(t)$ kann also mittels Fourieranalyse dargestellt werden als\n", "\n", "$$\n", "f(t) = \\frac 4 \\pi \\left(\\sin(\\omega t) + \\frac 1 3 \\sin(3 \\omega t) + \\frac 1 5 \\sin(5 \\omega t) + \\ldots \\right) \\quad .\n", "$$" ] }, { "cell_type": "markdown", "id": "5c6faffe-7f41-4d2c-b7f0-b002f3eda018", "metadata": {}, "source": [ "Im folgenden Skript wird $f(t)$ näherungsweise mittels Fourierreihe bis zu einer maximalen Ordnung $m$ berechnet und der Rechteckfunktion zum Vergleich überlagert. Ändern Sie $m$ und beobachten Sie, wie sich das auswirkt! " ] }, { "cell_type": "code", "execution_count": 2, "id": "ebd6c3b2-7afd-4447-bca4-31691829cfeb", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "m = 7 # Wähle max. Ordnung für Koeffizienten\n", "\n", "def fRect(t, T, m): # Funktion zur Berechnung von f(t) mittels\n", " y = 0 # Fourierkoeffizienten (nur für phi=0 !)\n", " for i in range(1, 2 * m, 2):\n", " y += np.sin(i * 2 * np.pi / T * t) / i\n", " return 4 / np.pi * y \n", "\n", "plt.plot(t, f)\n", "plt.plot(t, fRect(t, T, m))\n", "plt.xlabel(\"Zeit t\", fontsize=14)\n", "plt.ylabel(\"f(t)\", fontsize=14)\n", "plt.title(f\"Fourierdarstellung der Rechteckfunktion bis m = {m}\", fontsize=16, y=1.05)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "5dd1f2d8-e398-4359-b5f3-177c5eaec98b", "metadata": {}, "source": [ "*Anmerkung:* Diese Darstellung ist natürlich nur korrekt, solange $f(t)$ ungeändert bleibt, da $\\tt fRect$ feste Werte für $A_m$ und $B_m$ benutzt. Insbesondere führt die Änderung der Phasenverschiebung von $f(t)$ mit dem Parameter $\\tt phi$ zu falschen Ergebnissen. Wir werden weiter unten zeigen, wie man das verbessern kann." ] }, { "cell_type": "markdown", "id": "189cf589-11f6-4935-8164-0ead8c6614ce", "metadata": {}, "source": [ "## Numerische Berechnung der Fouriertransformation" ] }, { "cell_type": "markdown", "id": "5a318a5d-3813-45f5-bb3b-6a7b64fe144c", "metadata": {}, "source": [ "Statt die Fourierreihe analytisch zu berechnen, kann man auch numerische Verfahren dazu verwenden. Das mit Abstand am häufigsten verwendete Verfahren ist die *Fast-Fourier-Transformation (FFT)*. Die hohe Effektivität der numerischen Berechnung beruht u.a. darauf, dass die Zahl der verwendeten Daten eine Potenz von 2 sein muss, also z.B. 16, 512, oder 524288. Wir haben oben für das Array $t$ die Anzahl zu $N=1024$ festgelegt. Die *FFT*-Routine in Python verwendet komplexe Zahlen zur Berechnung, also die Darstellung aus der Vorlesung (für eine kontinuierliche Funktion ist $N$ unendlich groß)\n", "\n", "$$ f(t) = \\sum_{m=-\\infty}^{+\\infty} f_m {\\rm e}^{i m \\omega t} \\quad . $$\n", "\n", "Die Amplituden $f_m$ sind komplexe Zahlen $f_m=f'_m+i f''_m$. Für eine *reelle Funktion* $f(t)$ gelten die Beziehungen \n", "\n", "$$ f'_{-m}=f'_m \\ ; \\quad f''_{-m}=-f''_m $$\n", "\n", "und\n", "\n", "$$ A_m = 2 f'_m \\ ; \\quad B_m =-2 f''_m \\quad .$$\n", "\n", "Da $f(t)$ für numerische Zwecke aus diskreten Werten besteht (also $f_n(t_n)$), genügt eine endliche Zahl $m \\in [0\\ldots N-1]$ von Sinus- und Kosinusfunktionen für die Fourierreihe. In der untenstehenden Grafik dargestellt werden der Realteil $A_m$ (rot), der Imaginärteil $B_m$ (blau) sowie der Betrag $\\sqrt{A_m^2+B_m^2}$." ] }, { "cell_type": "code", "execution_count": 3, "id": "0e242532-3b65-41bf-a759-41e5c84b0271", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Maxima des Betrages:\n", " 1.000 1.273\n", " 3.000 0.424\n", " 5.000 0.255\n", " 7.000 0.182\n", " 9.000 0.141\n", " 11.000 0.116\n", " 13.000 0.098\n", " 15.000 0.085\n", " 17.000 0.075\n", " 19.000 0.067\n", " 21.000 0.061\n" ] } ], "source": [ "# FFT\n", "yfo = fft(f, norm=\"forward\") # berechnet FFT mit Normierungsfaktor 1/N\n", " # zum besseren Vergleich mit A_m und B_m\n", "xfo = fftfreq(N, T / N) # erzeugt die zugehörigen Frequenzen\n", "\n", "# Kopiere die Arrays, da wir sie verändern werden und später die Originale noch brauchen\n", "yf = yfo.copy()\n", "xf = xfo.copy()\n", "\n", "# Sortiere Freq\n", "xf = np.fft.fftshift(xf) # sortiert die Werte so, dass die Frequenz 0 \n", "yf = np.fft.fftshift(yf) # und ihre Amplitude im Zentrum der Arrays ist.\n", "mf = np.abs(yf) # Absolutewert der Amplituden\n", "\n", "m_max = 21 # Maximale Ordnung für die Darstellung des Plots\n", "f_max = m_max / T # Maximale Frequenz\n", "\n", "fig, ax = plt.subplots(1, 3, sharey=True, figsize=(9, 4))\n", "\n", "fig.suptitle(\"Koeffizienten der Fourierreihe\", fontsize=16)\n", "\n", "ax[0].set_title(\"Realteil $A_m$\", fontsize=14)\n", "ax[0].plot(xf, 2 * yf.real, \"r.\")\n", "\n", "ax[1].set_title(\"Imaginärteil $B_m$\", fontsize=14)\n", "ax[1].plot(xf, -2 * yf.imag, \"b.\")\n", "\n", "ax[2].set_title(\"Betrag $\\sqrt{A_m^2+B_m^2}$\", fontsize=14)\n", "ax[2].plot(xf, 2 * mf, \"g.\")\n", "\n", "plt.setp(ax, xlim=[-0.2, f_max], xlabel=\"Frequenz (Hz)\")\n", "fig.tight_layout()\n", "plt.show()\n", "\n", "result = signal.argrelextrema(mf, np.greater, order=1)[0] # Finde Maxima\n", "print(\"Maxima des Betrages:\")\n", "for i in result:\n", " if 0 < xf[i] <= f_max:\n", " print(f\"{xf[i]:10.3f} {2*mf[i]:10.3f}\")" ] }, { "cell_type": "markdown", "id": "48c43cbf-1316-402b-8a58-5a7e39edd713", "metadata": {}, "source": [ "Da zu Anfang $N=1024$ gesetzt wurde, haben wir gleich 1024 Koeffizienten bestimmt, von denen hier aber nur einige dargestellt sind! Die numerisch berechneten Werte stimmen mit denen der analytischen Berechnung überein. \n", "\n", "Was passiert, wenn man die Rechteckfunktion \"verschiebt\", z.B. um 45°, also $\\pi/4$? Probieren Sie es aus! Setzen Sie oben bei der Definition der Rechteckfunktion die Phasenverschiebung auf ${\\rm phi}=\\pi/4$ oder auf einen beliebigen anderen Wert. Die Symmetrie der Funktion ändert sich und damit auch die Koeffizienten $A_m$ und $B_m$, nicht aber der Betrag $\\sqrt{A_m^2+B_m^2}$." ] }, { "cell_type": "markdown", "id": "9a284484-f7c6-4584-9aff-8fa156f2baf4", "metadata": {}, "source": [ "## Inverse Fouriertransformation (Umkehrtransformation)" ] }, { "cell_type": "markdown", "id": "20feb885-21f0-4ce8-9b51-8f726bc7dfe3", "metadata": {}, "source": [ "Wendet man auf das Resultat der Fouriertransformation die *inverse Fast-Fourier-Transformation (iFFT)* an, dann erhält man die ursprünglichen Eingangsgrößen, hier also die Funktion $f(t)$, wieder zurück. Man spricht daher auch von einer Rück- oder Umkehrtransformation. Sinnvoll ist so eine Rücktransformation natürlich nur dann, wenn dadurch die ursprünglichen Eingangsgrößen in gezielter Weise verändert, also \"verbessert\" werden. Eine häufige Anwendung ist es, Komponenten hoher Frequenz zu entfernen, wenn diese nur noch *Rauschen* und somit keine Informationen mehr beinhalten. So eine Manipulation der Daten nennt man *Filter*. Wir können das hier demonstrieren, indem wir die Amplituden hoher Frequenzen zu null setzen - das haben wir ja oben im Beispiel der Rekonstruktion der Rechteckfunktion mittels Sinusfunktionen bis zu einer maximalen Ordnung $m$ schonmal gemacht. Zum Vergleich werden wir das hier wiederholen, allerdings nun mit Hilfe der inversen FFT für die komplexwertigen Resultate der Hintransformation. Dazu setzen wir alle komplexen Amplituden des Arrays $\\tt yf$ oberhalb der Frequenz $m/T$ und unterhalb $-m/T$ zu null. \n", "\n", "Probieren Sie wieder aus, wie sich der Output ändert mit Änderung von $m$! Für $m>N/2$ wird die Rechteckfunktion vollständig rekonstruiert - es ist also keine Information bei Hin- und Rücktransformation verloren gegangen." ] }, { "cell_type": "code", "execution_count": 4, "id": "518068c5-b362-425b-aa4e-6ded4eb8ce79", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Cutoff-Frequenz bei Ordnung +- m (m < N/2)\n", "m = 7\n", "\n", "# Wir verwenden wieder Kopien der Arrays yfo und xfo, da wir xf und yf \n", "# zwischendurch verändert haben wurden (mit fftshift)\n", "yf = yfo.copy()\n", "xf = xfo.copy()\n", "\n", "# Setze Amplituden mit Frequenzen xf > m/T und < -m/T zu null (Filter).\n", "# Das geht in Python sehr elegant - der Ausdruck in der runden Klammer ist\n", "# die Bedingung für die Zuweisung. \n", "yf[xf > +m/T] = 0\n", "yf[xf < -m/T] = 0\n", "\n", "# inverse FFT\n", "iyf = ifft(yf, norm=\"forward\") # berechnet iFFT ohne Normierungsfaktor\n", " # da dieser schon bei der Hintransformation\n", " # angewendet wurde\n", "\n", "# Plot\n", "fig, ax = plt.subplots(1, 2, sharey=True, figsize=(9, 4))\n", "fig.suptitle(f\"f(t) nach Tiefpass-Filterung (m={m})\", fontsize=16)\n", "\n", "ax[0].set_title(\"Realteil von f(t)\", fontsize=14)\n", "ax[0].set_ylabel(\"Amplitude\")\n", "ax[0].plot(t, f)\n", "ax[0].plot(t, iyf.real)\n", "\n", "ax[1].set_title(\"Imaginärteil von f(t)\", fontsize=14)\n", "ax[1].plot(t, f)\n", "ax[1].plot(t, iyf.imag) \n", "\n", "plt.setp(ax, xlabel=\"Zeit t (s)\", xlim=[0, 1])\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "14c648d5-1f3f-40b6-b427-9d36d33434c7", "metadata": {}, "source": [ "Die inverse FFT liefert dasselbe Ergebnis wie die die Berechnung mit den analytisch gewonnenen Koeffizienten, allerdings (für hohe Ordnungen) viel schneller, da der *iFFT-Algorithmus* weit effizienter ist. Im Vergleich zur obigen Berechnung liefert diese auch korrekte Ergebnisse, wenn die Phasenverschiebung $\\tt phi$ von $f(t)$ in der Definition geändert wird. Der Grund ist, dass neben dem Realteil auch der Imaginärteil der Lösung verwendet wird.\n", "\n", "Der Sinn der hier diskutierten Filterung erschließt sich leichter, wenn man als Beispiel \"verrauschte\" Daten verwendet. Setzten Sie dazu in der Definition von $f(t)$ den Parameter $\\tt noise$ von $0$ auf z.B. $0.5$. Der Rechteckfunktion wird dann ein Rauschen mit Standardabweichung 0.5 überlagert. Das Rauschen wird umso stärker unterdrückt, je kleiner $m$ für den *Filter* im obigen Skript gewählt wird. Das geschieht allerdings auch auf Kosten der hochfrequenten *Informationen* in $f(t)$: die Kante wird weit weniger steil. Statt des simplen Löschens der Koeffizienten hoher Frequenzen werden in \"echten\" Anwendungen die Koeffizienten kontinuierlich mit der Frequenz abgeschwächt - dann sind die Überschwinger an den Kanten (\"Ringing\") weniger ausgeprägt.\n", "\n", "Probieren Sie es aus! Vergessen Sie nicht, alle Zellen im Skript nochmal zu berechnen, wenn Sie in der ersten Zelle eine Änderung machen (Menü *Run / Run All Cells*)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.12" }, "vscode": { "interpreter": { "hash": "0b147f66f98950812a1f74f2915d355aad5d58e2ac40f0896fcab8031a5ed019" } } }, "nbformat": 4, "nbformat_minor": 5 }