From 899add52f1896fb1d0469ca5de76bfbfbc7222a5 Mon Sep 17 00:00:00 2001 From: Kai Vogelgesang Date: Fri, 19 Sep 2025 23:19:14 +0200 Subject: [PATCH] Remove .ipynb_checkpoints from git --- .gitignore | 2 + .ipynb_checkpoints/U00_Intro-checkpoint.ipynb | 446 ------ .../U00_Intro.en-checkpoint.ipynb | 445 ------ .../U01_DSP_Basics-checkpoint.ipynb | 1254 ---------------- .../U01_DSP_Basics.en-checkpoint.ipynb | 1256 ----------------- .../U02_1_Input.en-checkpoint.ipynb | 116 -- .../U02_2_Freq_Shift.en-checkpoint.ipynb | 112 -- .../U02_3_Low_Pass.en-checkpoint.ipynb | 318 ----- .../U02_4_Sync.en-checkpoint.ipynb | 79 -- .../U02_5_Output.en-checkpoint.ipynb | 129 -- .../U02_Project.en-checkpoint.ipynb | 320 ----- 11 files changed, 2 insertions(+), 4475 deletions(-) delete mode 100644 .ipynb_checkpoints/U00_Intro-checkpoint.ipynb delete mode 100644 .ipynb_checkpoints/U00_Intro.en-checkpoint.ipynb delete mode 100644 .ipynb_checkpoints/U01_DSP_Basics-checkpoint.ipynb delete mode 100644 .ipynb_checkpoints/U01_DSP_Basics.en-checkpoint.ipynb delete mode 100644 .ipynb_checkpoints/U02_1_Input.en-checkpoint.ipynb delete mode 100644 .ipynb_checkpoints/U02_2_Freq_Shift.en-checkpoint.ipynb delete mode 100644 .ipynb_checkpoints/U02_3_Low_Pass.en-checkpoint.ipynb delete mode 100644 .ipynb_checkpoints/U02_4_Sync.en-checkpoint.ipynb delete mode 100644 .ipynb_checkpoints/U02_5_Output.en-checkpoint.ipynb delete mode 100644 .ipynb_checkpoints/U02_Project.en-checkpoint.ipynb diff --git a/.gitignore b/.gitignore index c47bd7b..a2ce3f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ _build .venv +.ipynb_checkpoints + diff --git a/.ipynb_checkpoints/U00_Intro-checkpoint.ipynb b/.ipynb_checkpoints/U00_Intro-checkpoint.ipynb deleted file mode 100644 index 345107f..0000000 --- a/.ipynb_checkpoints/U00_Intro-checkpoint.ipynb +++ /dev/null @@ -1,446 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "8b2b968f", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "# Einführung\n", - "\n", - "**Wilkommen beim Workshop \"Signals from Space\"!**\n", - "\n", - "In diesem Workshop lernt ihr, wie man (relativ) einfach Bilder von Wettersatelliten empfangen und dekodieren kann.\n" - ] - }, - { - "cell_type": "markdown", - "id": "f9eca760", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Wettersatelliten\n", - "\n", - "```{figure} img/noaa18.webp\n", - "---\n", - "name: fig:noaa18\n", - "---\n", - "NOAA 18 im Orbit\n", - "([source](https://commons.wikimedia.org/wiki/File:NOAA-18_or_19_rendering.jpg), [cc](https://creativecommons.org/licenses/by/2.0/deed.en))\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "91e8b4c7", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Konkret betrachten wir die Satelliten NOAA 15, 18 und 19.\n", - "(16 und 17 sind leider [explodiert](https://en.wikipedia.org/wiki/NOAA-16#Anomaly,_Decommissioning_and_Breakup))" - ] - }, - { - "cell_type": "markdown", - "id": "25a2a82c", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{figure} img/bodganoff.jpg\n", - "---\n", - "name: fig:shutdown\n", - "---\n", - "NASA letzten Monat\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "eec804fe", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "```{attention}\n", - "Da die Satelliten abgeschaltet sind, arbeiten wir mit Aufnahmen die wir in den letzten Jahren gemacht haben.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "e9440002", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Die Satelliten sind in einem sogenannten \"**Sun-Synchronous Polar Orbit**\".\n", - "Sie umkreisen die Erde senkrecht zum Äquator und brauchen ca. 100 Minuten für einen Erdumlauf." - ] - }, - { - "cell_type": "markdown", - "id": "cb405116", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Weil sich die Erde dreht sieht man aber pro Satellit nur 4-6 Passes pro Tag (2-3 jeweils morgens und abends)." - ] - }, - { - "cell_type": "markdown", - "id": "5c9b7ec7", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Wann diese Passes sind kann man einfach im Internet nachschauen, z.B auf [N2YO.com](https://www.n2yo.com/passes/?s=33591&a=1)." - ] - }, - { - "cell_type": "markdown", - "id": "83ff9f6f", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Diese Satelliten sind effektiv Kameras, die aus einer Höhe von 850 Kilometern auf die Erde schauen.\n", - "Ihre Aufnahmen sehen so aus:" - ] - }, - { - "cell_type": "markdown", - "id": "6a62b68b", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{figure} img/decoded.webp\n", - "---\n", - "name: fig:decoded\n", - "---\n", - "Empfangenes Bild\n", - "(Links visible, rechts IR)\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "353db410", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Konkret funktioniert das so:\n", - "Der Satellit nimmt immer eine Zeile auf und überträgt sie." - ] - }, - { - "cell_type": "markdown", - "id": "88b7285a", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Weil er sich auf seiner Flugbahn bewegt, nimmt er die nächste Zeile von einer leicht verschobenen Position auf.\n", - "So entsteht nach und nach das Bild." - ] - }, - { - "cell_type": "markdown", - "id": "cb83cb4c", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Signalstruktur" - ] - }, - { - "cell_type": "markdown", - "id": "adaf6659", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{figure} img/apt_frame_format.webp\n", - "---\n", - "name: fig:frame_format\n", - "---\n", - "APT Bildformat ([source](https://en.wikipedia.org/wiki/File:NOAA_APT_Frame_Format.gif))\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "53ca06cf", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Das Signal ist folgendermaßen zusammengesetzt:" - ] - }, - { - "cell_type": "markdown", - "id": "55235676", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Je zweimal:\n", - "- 39 Pixel Sync-Pattern\n", - "- 47 Pixel Space\n", - "- 909 Pixel Bilddaten\n", - "- 45 Pixel Telemetrie\n", - "\n", - "(Siehe [sigidwiki.com](https://www.sigidwiki.com/wiki/Automatic_Picture_Transmission_(APT)))" - ] - }, - { - "cell_type": "markdown", - "id": "ef133107", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Insgesamt sind es also 2080 Pixel pro Zeile.\n", - "\n", - "Es werden zwei Zeilen pro Sekunde übertragen, also 4160 Pixel pro Sekunde." - ] - }, - { - "cell_type": "markdown", - "id": "f653ed80", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Die Helligkeit dieser Pixel wird per _Amplituden-Modulation_ (AM) auf einen _Carrier_ mit 2.4 kHz moduliert:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "2a4aa651", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "fig, ax = plt.subplots(3, sharex=True)\n", - "\n", - "t = np.linspace(0, 5 * 1 / 4160, 1000, endpoint=False)\n", - "data = np.array(200 * [255] + 200 * [128] + 200 * [200] + 200 * [20] + 200 * [255])\n", - "carrier = np.sin(2 * np.pi * 24_000 * t)\n", - "\n", - "ax[0].plot(t, data, color=\"C1\");\n", - "ax[0].set_ylabel(\"Pixelwerte\");\n", - "ax[1].plot(t, carrier, color=\"C0\");\n", - "ax[1].set_ylabel(\"Carrier\");\n", - "ax[2].plot(t, data * carrier, color=\"C0\");\n", - "ax[2].plot(t, data, color=\"C1\");\n", - "ax[2].plot(t, -data, color=\"C1\", linestyle=\"dotted\");\n", - "ax[2].set_ylabel(\"Signal\");\n", - "\n", - "for a in ax:\n", - " a.get_xaxis().set_ticks([]);" - ] - }, - { - "cell_type": "markdown", - "id": "a05ba8a1", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Wir erhalten also einen 2.4 kHz-Ton (zwischen D und D#), in dessen _Lautstärke_ kodiert ist wie hell die Pixel sind.\n", - "\n", - "Hier ist ein \"purer\" 2.4 kHz-Ton:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "aff2cb65", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import scipy\n", - "import IPython.display as ipd\n", - "\n", - "t = np.linspace(0, 10, 11025 * 10, endpoint=False)\n", - "samples = np.sin(2 * np.pi * 2400 * t)\n", - "\n", - "ipd.Audio(data=samples, rate=11025)" - ] - }, - { - "cell_type": "markdown", - "id": "fb46b471", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Und hier das modulierte Signal:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "089188b5", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sample_rate, channels = scipy.io.wavfile.read(\"assets/2023-04-20.wav\")\n", - "samples = channels[:, 0]\n", - "\n", - "t = 10\n", - "index = len(samples) // 4\n", - "offset = int(t * sample_rate)\n", - "\n", - "ipd.Audio(data=samples[index : index+offset], rate=sample_rate)" - ] - }, - { - "cell_type": "markdown", - "id": "933b39cb", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Dieses Signal wird anschließend per _Frequenz-Modulation_ (FM) auf einer Radio-Frequenz im sogenannten Satelliten-Band (137 - 138 MHz) übertragen" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.ipynb_checkpoints/U00_Intro.en-checkpoint.ipynb b/.ipynb_checkpoints/U00_Intro.en-checkpoint.ipynb deleted file mode 100644 index 7b78bd4..0000000 --- a/.ipynb_checkpoints/U00_Intro.en-checkpoint.ipynb +++ /dev/null @@ -1,445 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "8b2b968f", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "# Introduction\n", - "\n", - "**Welcome to the \"Signals from Space\" Workshop!**\n", - "\n", - "In this workshop, you will learn how to (somewhat) easily receive and decode images from weather satellites.\n" - ] - }, - { - "cell_type": "markdown", - "id": "f9eca760", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Weather Satellites\n", - "\n", - "```{figure} img/noaa18.webp\n", - "---\n", - "name: fig:noaa18.en\n", - "---\n", - "NOAA 18 in orbit\n", - "([source](https://commons.wikimedia.org/wiki/File:NOAA-18_or_19_rendering.jpg), [cc](https://creativecommons.org/licenses/by/2.0/deed.en))\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "91e8b4c7", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "In particular, we work with NOAA 15, 18, and 19.\n", - "(16 and 17 unfortunately [exploded](https://en.wikipedia.org/wiki/NOAA-16#Anomaly,_Decommissioning_and_Breakup))" - ] - }, - { - "cell_type": "markdown", - "id": "25a2a82c", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{figure} img/bodganoff.jpg\n", - "---\n", - "name: fig:shutdown.en\n", - "---\n", - "NASA last month\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "eec804fe", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "```{attention}\n", - "Because these satellites have been decommissioned, we work with recordings from the previous years.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "e9440002", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "These Satellites are in a so-called \"**Sun-Synchronous Polar Orbit**\".\n", - "They circle around earth, perpendicular to the equator, and take roughly 100 minutes per orbit." - ] - }, - { - "cell_type": "markdown", - "id": "cb405116", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Due to earth's rotation, we can only observe 4-6 passes per satellite per day (2-3 in the morning/evening each)." - ] - }, - { - "cell_type": "markdown", - "id": "5c9b7ec7", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "The times of these passes can be found on the internet, e.g. on [N2YO.com](https://www.n2yo.com/passes/?s=33591&a=1)." - ] - }, - { - "cell_type": "markdown", - "id": "83ff9f6f", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "These Satellites are effectively cameras, pointing towards earth from a height of 850 kilometers.\n", - "Their images look like this:" - ] - }, - { - "cell_type": "markdown", - "id": "6a62b68b", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{figure} img/decoded.webp\n", - "---\n", - "name: fig:decoded.en\n", - "---\n", - "Received image\n", - "(left visible, right IR)\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "353db410", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "They work as follows:\n", - "The Sensor always records one line and transmits it." - ] - }, - { - "cell_type": "markdown", - "id": "88b7285a", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "By the time the next line starts, the satellite slightly changed its position along its orbital path." - ] - }, - { - "cell_type": "markdown", - "id": "cb83cb4c", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Signal structure" - ] - }, - { - "cell_type": "markdown", - "id": "adaf6659", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{figure} img/apt_frame_format.webp\n", - "---\n", - "name: fig:frame_format.en\n", - "---\n", - "APT frame format ([source](https://en.wikipedia.org/wiki/File:NOAA_APT_Frame_Format.gif))\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "53ca06cf", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "The signal is comprised of the following:" - ] - }, - { - "cell_type": "markdown", - "id": "55235676", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Twice each:\n", - "- 39 pixel sync pattern\n", - "- 47 pixel space\n", - "- 909 pixel image data\n", - "- 45 pixel telemetry\n", - "\n", - "(See [sigidwiki.com](https://www.sigidwiki.com/wiki/Automatic_Picture_Transmission_(APT)))" - ] - }, - { - "cell_type": "markdown", - "id": "ef133107", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "In total, this amounts to 2080 pixels per line.\n", - "\n", - "The satellite transmits two lines per second, i.e., 4160 pixels per second." - ] - }, - { - "cell_type": "markdown", - "id": "f653ed80", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "The values of these pixels is modulated onto a 2.4 kHz _carrier_ using _amplitude modulation_ (AM):" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "2a4aa651", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "fig, ax = plt.subplots(3, sharex=True)\n", - "\n", - "t = np.linspace(0, 5 * 1 / 4160, 1000, endpoint=False)\n", - "data = np.array(200 * [255] + 200 * [128] + 200 * [200] + 200 * [20] + 200 * [255])\n", - "carrier = np.sin(2 * np.pi * 24_000 * t)\n", - "\n", - "ax[0].plot(t, data, color=\"C1\");\n", - "ax[0].set_ylabel(\"Pixel values\");\n", - "ax[1].plot(t, carrier, color=\"C0\");\n", - "ax[1].set_ylabel(\"Carrier\");\n", - "ax[2].plot(t, data * carrier, color=\"C0\");\n", - "ax[2].plot(t, data, color=\"C1\");\n", - "ax[2].plot(t, -data, color=\"C1\", linestyle=\"dotted\");\n", - "ax[2].set_ylabel(\"Signal\");\n", - "\n", - "for a in ax:\n", - " a.get_xaxis().set_ticks([]);" - ] - }, - { - "cell_type": "markdown", - "id": "a05ba8a1", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "The result is a 2.4 kHz tone (between D and D#), whose _loudness_ encodes how bright the pixels are.\n", - "\n", - "This is a \"pure\" 2.4 kHz tone:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "aff2cb65", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import scipy\n", - "import IPython.display as ipd\n", - "\n", - "t = np.linspace(0, 10, 11025 * 10, endpoint=False)\n", - "samples = np.sin(2 * np.pi * 2400 * t)\n", - "\n", - "ipd.Audio(data=samples, rate=11025)" - ] - }, - { - "cell_type": "markdown", - "id": "fb46b471", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "And this is the modulated signal:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "089188b5", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sample_rate, channels = scipy.io.wavfile.read(\"assets/2023-04-20.wav\")\n", - "samples = channels[:, 0]\n", - "\n", - "t = 10\n", - "index = len(samples) // 4\n", - "offset = int(t * sample_rate)\n", - "\n", - "ipd.Audio(data=samples[index : index+offset], rate=sample_rate)" - ] - }, - { - "cell_type": "markdown", - "id": "933b39cb", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "This signal is subsequently transmitted using _frequency modulation_ (FM) on a radio frequency in a so-called satellite band (137 - 138 MHz)" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.ipynb_checkpoints/U01_DSP_Basics-checkpoint.ipynb b/.ipynb_checkpoints/U01_DSP_Basics-checkpoint.ipynb deleted file mode 100644 index 8f24e67..0000000 --- a/.ipynb_checkpoints/U01_DSP_Basics-checkpoint.ipynb +++ /dev/null @@ -1,1254 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "7b5ee112", - "metadata": { - "slideshow": { - "slide_type": "slide" - }, - "tags": [] - }, - "source": [ - "# DSP Basics" - ] - }, - { - "cell_type": "markdown", - "id": "f8999dbc", - "metadata": { - "editable": false, - "slideshow": { - "slide_type": "fragment" - }, - "tags": [] - }, - "source": [ - "\"**D**igital **S**ignal **P**rocessing\" = Digitale Signalverarbeitung" - ] - }, - { - "cell_type": "markdown", - "id": "aada2375", - "metadata": { - "slideshow": { - "slide_type": "subslide" - }, - "tags": [] - }, - "source": [ - "Signale können wir uns als _Funktionen_ über die Zeit vorstellen, zum Beispiel \"Welche Spannung liegt zum Zeitpunkt $t$ auf der Antenne an?\"" - ] - }, - { - "cell_type": "markdown", - "id": "2ca73e1f", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Digital können wir die (kontinuierliche) Zeit aber nur in _diskreten_ Schritten abbilden:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "a71d9181", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09]" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sampling_rate = 100 # Hz, Abtastrate\n", - "sample_distance = 1 / sampling_rate # Zeitabstand\n", - "\n", - "# 100 Samples -> 1 Sekunde\n", - "T = [i * sample_distance for i in range(100)]\n", - "\n", - "T[:10]" - ] - }, - { - "cell_type": "markdown", - "id": "27cd6d08", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Ein Signal können wir jetzt als die Werte (sogenannte *Samples*) darstellen, die es zu dem entsprechenden Zeitpunkt hat:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "ee0efab9", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [], - "source": [ - "from math import pi, sin, cos\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "9185d60d", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "f = 3 # Hz, Frequenz\n", - "x = [sin(2 * pi * f * t) for t in T] # Signal\n", - "plt.scatter(T, x);" - ] - }, - { - "cell_type": "markdown", - "id": "f4e9af21", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Wenn die Frequenz des Sinus zu hoch wird bekommen wir aber ein Problem:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "37e7a30e", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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paWlVnZ2NreJN1NL13rJkiVWRESE9corr1hlZWX+7cyZM+01hZDR0rX+R9xF1XwtXevDhw9b3bp1s2bOnGnt27fPevPNN62YmBjrmWeeaa8phIyWrnV2drbVrVs36w9/+IN14MAB691337X69u1r3Xvvve01hZBx5swZ69NPP7U+/fRTS5K1cuVK69NPP7W+/vpry7Isa/78+dakSZP8/c/fJv7YY49ZpaWlVm5uLreJdwTPPfec9dOf/tSKiIiwhg0bZn388cf+92699VZr8uTJAf3/+Mc/Wj/72c+siIgI6+c//7n11ltvtXHFoasla33NNddYki7YsrOz277wENTSv9d/j4DTMi1d648++shyu92W3W63+vTpYz377LPWuXPn2rjq0NSSta6rq7OefPJJq2/fvlZkZKSVkJBgPfTQQ9bf/va3ti88xLz33nuN/v/3/PpOnjzZuvXWWy/YZ8iQIVZERITVp08f66WXXrqsNdksi/NuAADALFyDAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBx/j9qhKUmIQmcxgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x = [sin(2 * pi * 50 * t) for t in T] # f = 50 Hz?\n", - "plt.ylim(-1.1, 1.1)\n", - "plt.scatter(T, x);" - ] - }, - { - "cell_type": "markdown", - "id": "2b9a74a0", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Bei $f = 50\\text{Hz}$ treffen die samples genau die Nullstellen!" - ] - }, - { - "cell_type": "markdown", - "id": "0bc9e6e2", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{prf:theorem} Nyquist-Shannon sampling theorem\n", - "Bei einer Abtastrate $f_s$ können wir das Signal $x$ genau dann eindeutig mit diskreten Samples darstellen, wenn es keine Frequenz enthält die größer ist als $f_s / 2$.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "1d444245", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Wir müssen also darauf achten, dass die Abtastrate mindestens doppelt so hoch ist wie die höchste Frequenz im Signal." - ] - }, - { - "cell_type": "markdown", - "id": "cde3df85", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Exkursion: Komplexe Zahlen" - ] - }, - { - "cell_type": "markdown", - "id": "2c93c683", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "\n", - "```{figure} img/complex.svg\n", - "---\n", - "name: fig:complex\n", - "height: 400px\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "61325c1c", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Komplexe Zahlen können wir uns vorstellen wie Vektoren $\\begin{pmatrix}x \\\\ y\\end{pmatrix}$ die wir als $x + yi$ schreiben.\n", - "\n", - "Intuitiv: \"$x$ nach rechts plus $y$ nach oben\".\n", - "\n", - "Mit dieser Schreibweise funktioniert die Addition wie normal:" - ] - }, - { - "cell_type": "markdown", - "id": "5826f800", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "(a + bi) + (c + di) = (a + c) + (b + d)i\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "0b64997b", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Für die Multiplikation ist es einfacher, die _Polar-Koordinaten_ zu benutzen.\n", - "\n", - "Dabei ist $r = |x + yi| = \\sqrt{x^2 + y^2}$ die Länge des Vektors, und $\\phi = \\texttt{atan2}(y, x)$ der Winkel zur reellen Achse." - ] - }, - { - "cell_type": "markdown", - "id": "30a87e63", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "(r, \\phi) \\cdot (s, \\psi) = (r \\cdot s, \\phi + \\psi)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "93c066b9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Signal-Analyse" - ] - }, - { - "cell_type": "markdown", - "id": "bb326e90", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Aus welchen Frequenzen ist das folgende Signal zusammengesetzt?" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "63e0f4b8", - "metadata": { - "slideshow": { - "slide_type": "-" - }, - "tags": [ - "remove-cell" - ] - }, - "outputs": [], - "source": [ - "# Cell-Tag \"remove-cell\" -> wird im Buch nicht angezeigt\n", - "import json\n", - "x = [sin(2 * pi * 2 * t) # 2 Hz\n", - " + sin(2 * pi * 3 * t) # 3 Hz\n", - " + sin(2 * pi * 7 * t) # 7 Hz\n", - " for t in T]\n", - "\n", - "with open(\"mystery_signal.json\", \"w\") as f:\n", - " json.dump(list(x), f)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "19850623", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGdCAYAAAAvwBgXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAu30lEQVR4nO3df3BU5Rno8WdBk2CbrPJzA8YfhFEbsaJYMIAVHVLRDqUzd9TRyoXeFi1C51Y6rVBaU2oVUaY6g9S21EpnsNIfV6UqNy0C1oGG8UrIjDSiTQClwFKJdjeiBMi+94/0hGSzv87m/Hjfc76fmfyRZcOenOzZ87zv87zPG1FKKQEAAPDBIL8PAAAAhBeBCAAA8A2BCAAA8A2BCAAA8A2BCAAA8A2BCAAA8A2BCAAA8A2BCAAA8M1Zfh9ALqlUSg4fPizl5eUSiUT8PhwAAFAApZR0dHTI6NGjZdCg3HMeWgcihw8flqqqKr8PAwAAFOHgwYNy/vnn53yO1oFIeXm5iHT/IhUVFT4fDQAAKEQymZSqqqqe+3guWgciVjqmoqKCQAQAAMMUUlZBsSoAAPANgQgAAPANgQgAAPANgQgAAPANgQgAAPANgQgAAPANgQgAAPANgQgAAPCN1g3NTNSVUvLG/g/l3x0nZGR5mUy6eKgMHsQ+OQAAZEIg4qCGPUdk+UstciRxouexymiZ1M+qkZnjK308MgAA9ERqxiENe47IgvVNfYIQEZF44oQsWN8kDXuO+HRkAADoi0DEAV0pJctfahGV4d+sx5a/1CJdqUzPAAAgvAhEHPDG/g/7zYT0pkTkSOKEvLH/Q+8OCgAAA1AjMgBWYer/LTDt8u+O7MEKAABhRCBSpEyFqfmMLC9z8YgAADAPgUgRrMLUQis+IiISi3Yv5QUAAGdQI2JTrsLUTKwOIvWzaugnAgBAGmZEbMpXmJouRh8RAACyIhCxqdCC0/9Ze6HcPL6SzqoAAORAIGJToQWnN4+vlNrqYdKVUtLY1k7LdwAAMiAQsWnSxUOlMlom8cSJjHUivQtTafkOAEBuFKvaNHhQROpn1YjImUJUS+/C1M0tcVq+AwCQB4FIEWaOr5Sn7rpaYtG+aZpYtEyeuutqqauJ0fIdAIACkJop0szxlVJXE5M39n/Yr/6jsa294JbvtdXDvDtoAHCA1VWa2jc4gUBkAAYPimQMJApdWUPLdwCmyVT7FqsolTsmXSAXDf8MgQlsczUQWbFihTz//POyd+9eGTJkiEyZMkVWrlwpl156qZsv67tCV9bQ8h2ASbJ1lY4nO+XxV//Z8z1F+bDD1RqRv/3tb7Jw4ULZuXOnbN68WU6dOiVf+tKX5Pjx426+rO+slTXZxgMR6b5QafkOwBR2ukpTlA87XJ0RaWho6PP9unXrZOTIkbJr1y754he/6OZL+8paWbNgfZNERPpcuLR8B2AiO12llXR/1i1/qUXqamJ81iEnT1fNJBIJEREZOjTzTEBnZ6ckk8k+X6bKt7KGKUsAJrFb09a7KB/IxbNi1VQqJd/5zndk6tSpMn78+IzPWbFihSxfvtyrQ3JdrpU1AGCSYmvaKMpHPp4FIgsXLpQ9e/bI9u3bsz5n6dKlsnjx4p7vk8mkVFVVeXF4rsm2sgYATJKvq3Q2FOUjH09SM4sWLZKXX35Ztm3bJueff37W55WWlkpFRUWfLwCA/3J1lc6EonwUytVARCklixYtkhdeeEG2bt0qF198sZsvBwBwUbbat3QU5cMOV1MzCxculN/97neyceNGKS8vl3g8LiIi0WhUhgwZ4uZLAwBckF77duDYJ/LcG+9LPNmrwRl9RGBDRCnl2oYnkUjmSPiZZ56RefPm5f35ZDIp0WhUEomE72kaWhoDQGZ8PiKdnfu3qzMiLsY4nsrU0pjOgQDQjaJ8DAS77+ZhtTROb+RD50AAAAaOQCSHXC2NrceWv9QiXalgzPwAAOA1ApEc8rU0pnMggKDrSilpbGuXjc2HpLGtnYEXHOdZQzMTFdoR0G7nQAq7AJiA+jh4gUAkh0I7AtrpHMiFDcAEVn1c+vyHVR/HnllwCqmZHKyWxtnmKux2DqTwFYAJqI+DlwhEcsjV0thu50AubACmcKI+jtoSFIrUTB5WS+P0dIrdzoF2LmzW4wPw00Dr40hBww4CkQKktzQupsDUrcJXAHDaQOrjqC2BXQQiBRpo50A3Cl8BwA1WfVw8cSJjOjki3bPC6fVx+VLQEelOQdfVxFgpiB7UiHjE6cJXt6Xnd0+eTpHvBUKi2Po4ei+hGMyIeMS6sBesb5KISJ8Rg25bZmfK7w6KiPSOPcj3AsFWTH0cKWgUg0DEQ04VvropW343fQKEfC8QfHbr40hBoxgEIh5zovDVLbnyu+nI9wLhYKc+rtjaEoQbNSI+sC7s2RPGSG31MG1u4vnyu+nI9wLozcneSwgPAhH0KDZvS74XgMVKQceifdMvsWgZqVxkRGoGPYrN25LvBdCbzilo6IdABD3y5XfTke8FkM1Aey8hPEjNoEeu/G468r0AACcQiKCPbPnd9FiDfC8AwAmkZtBPpvzuxAvPk13vfUS+FwDgKAIRSFdKZSwqS8/vku8FADiNQCTk2K4bAOAnakRCzGrnnt7EzGrf3rDniE9HBgAICwKRkMq3XbdId/t2dtkFALiJQCSknNiuuyulpLGtXTY2H5LGtnaCFgCAbdSIhNRAt+umtgQA4ARmREJqINt1U1sCAHAKgYgG/EhxWO3cs3UCiUj3DEd6+3ZqSwAATiI14zO/UhxWO/cF65skItInsMjVvt1ObQl9RwDzZOsrBLiFQMRHVoojfe7ASnG43ULdaueeHgjFcgRCA60tAaAvar/gBwIRn+RLcUSkO8VRVxNzdTRid7vugdSWANCX3wMjhBc1Ij5xYvmsU6x27rMnjJHa6mE5A59ia0sA6IvaL/iJQMQnpqY4rNoSEekXjOSqLQGgL50GRggfAhGfmJzisGpLYtG+xxaLljF9CxjI1IERgoEakSzcrhy3UhzxxImM06ER6b6x65risFtbAkBfJg+MYD4CkQy8qBwvdvmsTqzaEgBmM31gBLORmknjZddQUhwAdEDtF/wUUUppWwadTCYlGo1KIpGQiooK11+vK6Vk2sqtWYu2rFHB9vtvdPSCpIEQAB3QRwROsXP/JjXTi19dQ71OcRD4AMiE2i/4gUCklzBUjjPiAZCLWwMjBkDIhkCkl6BXjtM5EYAfGAAhF4pVewly11A6JwLwg5cLAGAmApFeglw5TudEAF5jAIRCEIikCeqS2jDUvwDQCwMgFIIakQyCWDke9PoXAPphAIRCEIhkEbSuoXROBOA1BkAoBKmZkAhy/QsAPQV5AQCcQyASIkGtfwGgJwZAKAQt3kOIxkIAvEQfkfCxc/8mEAFgG8Es7OI9Ey7sNQPANYxuUYygLQCAc6gR0VRXSkljW7tsbD4kjW3tNPyBFuiSCcBpzIhoiBEndJSvS2ZEurtk1tXEmHIHUDBmRDRj8oiTWZxgK7RL5uOb3+XvD6BgzIhoxOQRJ7M4wVdo98snt7XKk9ta+fsDKAgzIhoxdV8Gk2dxUDi73S/5+wMoBIGIRtzYl8HtdAm7a4ZHvi6Z6cL29yc1CRSH1IxGnN6XwYt0iZ1ZHJbumc3qkrlgfZNERDIGn+nC8vcnNQkUjxkRjTi5L4NX6RJ21wyXbNsE5BPkv3+2a+1I4oR8a32TPPjSP5ghAXIgENGIU/syeJkuYXfN8Jk5vlK233+jPDf/Wll0Q3VBPxPUv3+ua83y9I4DcsfanTJt5VbqZYAMCEQ048TGdF4WvbK7ZjhZXTLvq7s01H//fNdabxTvAplRI6KhmeMrpa4mVvS+DF6mS3LVDbC7ZnBk2yck7H9/O9eQ7kvwAb8QiGhqIPsyeJ0usWZx0ov1YhTrBUK+Qsww//3tXkO6Fe+yER10QCASQFa6JJ44kTF3HZHum4ST0+UDncWBnqxCzPT3kZVmsNKFYf3757vWstGheJeVPtCFqzUir7/+usyaNUtGjx4tkUhEXnzxRTdfDv/lVNFrMa9bWz1MZk8YI7XVwwJ/Ewo6u0XPYfz757rWcvG7eJcmhNCJq4HI8ePH5corr5Q1a9a4+TLIwImiV4SbqZ1+vWZnSbMOxbs0IYRuXE3N3HzzzXLzzTe7+RLIIazT5XAGPWIK1/ta29wSl9/sOKBt8S5NCKEbrWpEOjs7pbOzs+f7ZDLp49HopdiisoEUvSLc6BGTXbbrsbZ6mNRWD5NJFw/VtniXABO60SoQWbFihSxfvtzvw9AORWXwgx9FzyYo5HrUeTaSABO60aqh2dKlSyWRSPR8HTx40O9D8p2dojI23YKT/Cp61pmd61HX4l2aEEI3Ws2IlJaWSmlpqd+HoY18RWW9myNtbokzawLHhblHSDo716MuQUcmYW9CB/1oFYigr0KLyp7c2ipPvPpu3l4PQDF0TjN4yYkiT10aiBFgQieuBiIff/yxtLa29ny/f/9+aW5ulqFDh8oFF1zg5ksHQqHFYs/s2G/8KA16K6boWZebrlMGWuSpW60XASZ04Wog8uabb8oNN9zQ8/3ixYtFRGTu3Lmybt06N186EAotFvvPp6ey/htL8eAH3W66ThhIkWehHWq9xqo66MDVYtXp06eLUqrfF0FIYfIVldnBUjx4JahdO4st8qSBGJCbVqtm0Fex7aMzYSkevBDkm26xq4joUAvkRiCiOTvtozNhKR68FPSbbjFbJ9BADMiNVTMG6F1UtqP1A3lyW1tBP8dSPHgtDDddu0WeNBADciMQMYRVVGbnA5ylePBaWG66doo86VAL5EZqxjCFfoD/6Mufk+3330gQAk/RtbM/OtQCuRGIGKbQD/p5Uy/mgw2e46abWTG1JUBYRJRS2pavJ5NJiUajkkgkpKKiwu/D0Ya1PFIkc3tmPtjgtyD2EXFC0Jq8AdnYuX8TiBiKD3rojpsuEF4EIjaZ+oFp6nEDAILNzv079KtmTJ5ZoD0zAJMxmIJIyAMRXfd/AICgM3kQCGeFdtVMkFtRAwPRlVLS2NYuG5sPSWNbO9cAHBfU/YhQnNDOiNhpRU36A2HBKBVuyzcIjEj3ILCuJkaaJiRCOyMShlbUgB2MUuGFoO9HBPtCG4iEpRU1UAhSlfAKg0CkC20gQitq4AxGqfAKg0CkC20gQitq4AxGqdlRvOssBoFIF9piVZEz+z+kF+exay3ChlFqZm4X74axj4Y1CFywvkkiknmbCgaB4UJnVQnnhwHQW1dKybSVW/NuVb/9/htDc21k6zPk1J5OYV+hFPbfP+ho8Q7ANjZTPMMKzLLVzQw0MHM7yDEFg8DgsnP/Dm2NCLxBft0cbFV/hpvFu36uUNLterS2qZg9YYzUVg8jCAmpUNeIwF1MvZpn5vhKqauJhX6U6mbxrl/NFLkeoStmROAKmmOZi1Gqu8W7fqxQ4nqEzghE4DiaY8F0bi4x9XqFEtcjdEcgAsfRHAumc7PPkNd9NLgeoTsCETiO5lgIAreKd71upsj1CN1RrArH0RwLQeFW8a6XzRS5HqE7AhE4zpp6ztccixbO4WNi3wireNdpXq1Q4nqE7ghE4DhaOCMTlo/251aQk/4aXI/QGTUicAXNsdAby0f9xfUIndHiHa4ycSoeznK7XToKx/UIr9i5f5Oagau8mHqG3vzqJIr+uB6hI1IzAFzF8lEAuRCIAHAVy0cB5EIgAsBVXncSBWAWAhEArvK6kygAsxCIAHAdy0cBZMOqGQCe8KqTKACzEIgA8AzLRwGkIxABAI3QdAxhQyACAJpgPx6EEcWqAKAB9uNBWBGIAIDPulJKlr/UIpk2/rIeW/5Si3SltN0aDCgagQgA+MzOfjxA0BCIAIDP2I8HYUaxKhByrNLwH/vxIMwIRIAQY5WGHqz9eOKJExnrRCLS3YWW/XgQRKRmgJBilYY+3NiPpyulpLGtXTY2H5LGtnYKXaEtZkSAEMq3SiMi3as06mpioUvT+JWqsvbjSZ+hihUxQ8VMF0xCIAKEkJ1VGmFqye73DdyJ/Xisma70INOa6WKTQeiG1AwQQqzS6E+XVJW1H8/sCWOktnqY7XQM/UhgGgIRIIRYpdFXUG7g9COBiQhEgBCyVmlkG2tHpDslEZZVGkG5gTPTBRMRiAAh5MYqDZMF5QbOTBdMRCAChJS1SiMW7XtTikXLQlfQGJQbODNdMBGrZoAQc2KVRhAEpaGYNdO1YH2TRET6/C5hnOmCGZgRAUJuIKs0giJIqSpmumCaiFJK2zLwZDIp0WhUEomEVFRU+H04AALO7z4imRTbYI09hOAnO/dvAhEA6EWnG7iOgRFQCAIRADBctg6pVkhEmgU6s3P/pkYEADQTlAZrxWCzvvBh1QwAaCasewGRigonZkQAQDNBabBmhy57/cB7zIgADtGpyBFms9tgzfT3Xr5UVES6U1F1NTGjfi8UJpSBiOkXLfTDlHJxuBYzs9NgLQjvvbCmotDNk0BkzZo18thjj0k8Hpcrr7xSVq9eLZMmTfLipfsJwkULvWRb3WBNKbO6ITOuxewK7ZC6uSUeiPdeGFNROMP1GpHf//73snjxYqmvr5empia58sor5aabbpJ///vfbr90P+Qg4aSulJId/zwmS/7PW6Fc3TAQXIv55eqQuubOq6S89OzAvPeCstcPiuN6H5HJkyfLF77wBXnyySdFRCSVSklVVZV8+9vfliVLluT8WSf7iHSllExbuTXr9J811bn9/huZGkZemUbzuTw3/1qmlP+La9Ge9PTVR8dPyoOvBOu9Z70n8qWieE+YQ5s+IidPnpRdu3bJjBkzzrzgoEEyY8YMaWxs7Pf8zs5OSSaTfb6cYicHCeSSbTSfC1PKZ3At2tN7L6DEpydl4e+C994L0l4/sM/VQOTYsWPS1dUlo0aN6vP4qFGjJB6P93v+ihUrJBqN9nxVVVU5dizkIPVgerOiXNX9uTClfAbXYnGC/t5js77w0mrVzNKlS2Xx4sU93yeTSceCEXKQ/gtCcWK+0Xw6U7aP9xLXYnHC8N6bOb5S6mpirKQKGVcDkeHDh8vgwYPl6NGjfR4/evSoxGKxfs8vLS2V0tJSV47FznI4OC8oK0vsjNKZUs6Ma7E4YXnvWakohIerqZmSkhKZOHGibNmypeexVColW7ZskdraWjdfuh9ykP4J0r4Zdkbp1uqG6JASY1NRbuBaLI7d954pwT3gempm8eLFMnfuXLnmmmtk0qRJ8sQTT8jx48fl61//utsv3Y+Vg0xPD8QMSw+YJkjNivKN5kVEzh1ytqz52tWS+ORUv9UNpqWi3MK1aJ+d9961Y4cRyMEYrgcit99+u3zwwQfywAMPSDwelwkTJkhDQ0O/AlavkIP0XpCKEwtpNPXI/7hCOk6ckoW/Mz8V5SauRXsKfe9NHTfch6MDiud6H5GBcLKPCPzT2NYud6zdmfd5JvQ7sOQqvK2ridEnA64JQtE3gs/O/VurVTMIpiAWJ+YazTe2tQcmFQX9MJOEoCEQgesK3TfDtA/SbNX9QUpFQU+sLEGQuL7XDCASrmZF9MkAgMIxIwLPhGVKOYipKABwC4EIPBWGKeWgpqIAwA2kZgAX6JqKMn2vHwDBw4wIUID0rdgLSSnplopi2ScAHdFHBMgjCDfwbHv9WCFR0AqGAfjLzv2b1AyQg3UDT+8LYnVIbdhzxKcjK1yQ9vpxGqkqwH+kZoAs8t3AI9J9A6+riWldeBqkvX6cFISZLiAImBEBsrBzA9cZDdb6C8JMFxAUBCJAFkG5gdNgrS9SVYBeCESALIJyA7carGVLHkWkOyURlgZrQZnpAoKCQATIIig3cKvBmoj0+13C2GAtKDNdQFAQiABZuHED92uVhq4N1vwQlJkuIChYNQPkYN3A01dXxIpYXeH3Kg3dGqz5hb2AAL3Q0AwoQDGdVXujoZherL+HSOa9gPh7AANDQzPAYdZmfbMnjJHa6mG20zGs0tALqSpAH6RmAJfRUExPpKoAPRCIAC5jlYa+rJkuAP4hNQO4jFUaAJAdgQjgsqD0IwEANxCIAC6joRgAZEcgAniAVRoAkBnFqoBHWKUBAP0RiAAeYpUGAPRFIAJAKwPtYgvALAQiALTh9348ALxHsSoALVj7v6R3oY0nTsiC9U3SsOeIT0cGwE0EIgB8x348QHgRiADwnZ39eAAEC4EIAN+xHw8QXgQiAHzHfjxAeLFqBkjD8lHvWfvxxBMnMtaJRKS7Cy378YQP12PwEYgAvbB81B/WfjwL1jdJRKRPMMJ+POHF9RgOpGaA/2L5qL/Yjwe9cT2GR0Qppe16uGQyKdFoVBKJhFRUVPh9OAiwrpSSaSu3Zl25YaUGtt9/o+Ojcqae++J8wM/rEc6wc/8mNQOIveWjTu4V4/bUs4k3dfbjgV/XI/xBIAKIP8tHrann9ClJa+p5oOkI8uswFcu5w4UaEUC8Xz7qdidR8uswGcu5w4VABJAzy0ezJS0i0j2b4NTyUTc7idIuHabz+nqEvwhEADmzfFRE+n34ubF81M2pZ9qlw3ReX4/wF4EI8F9eLh91c+qZ/Hp2XSkljW3tsrH5kDS2tTMrpDGWc4cHxapALzPHV0pdTcz1lSZudhIlv54Zxbvm8ep6hL8IROA73ZaYerF81M1OorRL78/tFUpwD8u5g49ABL4K8yjVmnpO//1jA/z9aZfeV77i3Yh0F+/W1cRCc04AEX0GgXRWhW+yjVKtyyAso1S3PgzCHOT11tjWLnes3Zn3ec/Nv5aRN0LD7c8HOqtCe4xSz3Br6pn8ejeKd4G+dEtVEojAF7Rw9gb5dYp3gd50HASyfBe+YJQKr9AcCzhDxz5DBCLwBaNUeIXmWMAZOg4CCUTgC0ap8BLNsYBuOg4CqRGBL1hiCq9RvAvo2WeIGRH4hlEqvGYV786eMEZqq4cRhCB0dExV0kcEvtOlqQ4AFMPEzzCd+ogQiAAAUCSTGwe6GUARiAAIFBNHnAg+ukNnR2dVwGDcdPsyecSJ4NKxMZipCEQAjXDT7Uu3VtSAhe7QzmHVDKAJ66ab/uFm3XQb9hzx6cj8kW/EKdI94uxKaZtdRkB1pZTsaD1W0HPpDp0fgQigAW66/enYihpo2HNEpq3cKk9uay3o+XSHzo9ABNCAEzfdrpSSxrZ22dh8SBrb2o0PWnRsRY1wyzZrmc3Qz5wt8eSJQFyPbqJGBNDAQG+6Qawt0bEVNcIr16xlNh8ePyX3/b5ZRMy/Ht3EjAiggYHcdINaW8J+RNBJvlnLfEy/Ht1EIAJooNibbpBrS3RsRY3wKnTW8rOlgzM+bvr16CbXApGHHnpIpkyZIuecc46ce+65br0MEAjF3nSDXtDJfkTQRaGzlh93dmX9N9OvR7e4ViNy8uRJufXWW6W2tlaefvppt14GGDBdGohZN930Wo9YjtxyGAo62TUXOihk19rokLPlP5+eyvt/mXw9usG1QGT58uUiIrJu3Tq3XgIYMN2KPO3edMNS0GntmmuHLgEmgsGatVywvkkiIn2CEetd9fWpF8njr/4z7/9l+vXoNFbNILR07dpp56ZbyCgtFsKCTt0CTARDvlnLupqYbPh/B7kebdIqEOns7JTOzs6e75PJpI9HgyALyj4RhYzSwlbQqWuAiWDIN2vJ9WifrWLVJUuWSCQSyfm1d+/eog9mxYoVEo1Ge76qqqqK/r+AXEwr8szVrIyCzjOCvIoI+rBmLWdPGCO11cP6BBZcj/bZmhH57ne/K/Pmzcv5nLFjxxZ9MEuXLpXFixf3fJ9MJglG4AqTijwLSTNQ0NmNjcigA65He2wFIiNGjJARI0a4dSxSWloqpaWlrv3/gMWUIs9saYYjiRPyrfVN8o2pF8mMmljPh1zYb64mBZgwQ7FFz1yPhXOtRuT999+XDz/8UN5//33p6uqS5uZmEREZN26cfPazn3XrZYGCmFDkWUhL6ad3HJCndxygEPO/TAkwYQaKnr3hWkOzBx54QK666iqpr6+Xjz/+WK666iq56qqr5M0333TrJYGCmdC1005LadpHd6MtPJwS1K0TdORaILJu3TpRSvX7mj59ulsvCdiie1GZnfRB2AoxsxXvmhBgYuDc3mmaomdvabV8F/CazkVldtMHYSnEzDddXkyHWpjDi3QJRc/eIhBB6OlaVJavjiWbIBdiFtojROcAE8XzqkeMG0XPdPrNjkAE0FSuZmW5BLUQ024TOl0DTBTHyyaEThc9U/Sam2s1IgAGLlsdSyZBL8QsdLr88c3vulI3AH952YTQyaJnil7zIxABNDdzfKVsv/9GeW7+tfK/pl4kIuEsxCx0GvzJba1yx9qdMm3lVj7kA8TLHjFOFT1T9FoYAhHAAFaa4YFZl8svNF7p4ya7KSdGnMHidY8YJ1bVmbaVhF+oEQEME9ZCTLvFuyZtXoj8/GhCONBrjU6/hWFGBDBQrk23girXdHk2jDiDw68eMQO51uj0WxgCEQDGsFO821vYR5xBoXsTwnR0+i0MqRkARuk9Xb6j9QN5cltb3p8J+4gzSExKTeZagh+GAvNCMSMCwDjWdPl9dZcy4gwhk1KTps3i+IEZEQDGYsQJE5g0i+OHiFJK2wXMyWRSotGoJBIJqaio8PtwAGiKzpWAXuzcv5kRgZbYlwF2MOIEzEUgAu0wukUx2FsGA8UAyB8EItCKV7trAkBvDID8w6oZaIN9GQD4gY3p/EUgAm2wLwMArzEA8h+BCLTBvgwAvBaWAVBXSkljW7tsbD4kjW3tWgVW1IhAG+zLAMBrYRgA6V7/wowItMG+DAC8FvQBkAn1LwQi0IZfu2sCCK8gD4BMqX8hEIFW2JcBgJeCPAAypf6FGhFohy6ZALxkDYDS6yhiGtVRFMOU+hcCEWjJrS6ZdE4EkEkQB0Cm1L8QiCA0dK8cB+Avr7cJcHtgZNW/xBMnMtaJRKR71sfv+hcCEYQCreMB6MSLgZFV/7JgfZNERPp8/ulU/0KxKgLPlMpxAOHg5ZJaExYAMCOCwLNTOc7urYB5TKr9yjcwikj3wKiuJubY76B7/QuBCALPlMpxAPaZVvvl18DI6/oXO0jNIPBMqRwHYI8JXUPTMTDqj0AEgRfkzolAWJla+8XAqD8CEQRekDsnAmHlRNdQP3akZWDUHzUiCIWgdk4EwmqgKQ6/aktMWVLrJQIRhIbuleMACjeQFIfffYUYGPVFIIJQ0blyHEDhiu0a6sfy2UwYGJ1BjQgAwDjF1n7ptCOtNTCaPWGM1FYPC2UQIkIgAgAwVDFdQ1k+qx9SMwAAY9lNcbB8Vj8EIgAAo9mp/TJlR9owITUDAAgN+grph0AEABAqJuxIGyakZgAAocPyWX0QiAAAAqcrpfoEGRMvPE92vfdRv6CDvkL+IxABAARKpvbtgyIivbeS8aKdOwpDjQgAIDCs9u3pTcvS97Oz2rk37Dni4dEhEwIRAEAg5Grfns56zvKXWjzZdRfZEYjACH5s1w3ALPnat6fzsp07sqNGBNrza7tuAGYpti077dz9xYwItJYt30t+F0C6Ytuy087dXwQi0Fa+7bpFyO8COMNq315oJ5CIdM+u6tLOPawpaFIz0Jad7bqz9QJI7yVAwyIguKz27QvWN0lEJGfRqm7t3MOcgiYQgbYGul13mC9sIKys9u35+ojENPossFLQ6YGTlYIOett5AhFoayDbdYf9wgbCLFP79mydVf2WLwUdke4UdF1NTIvjdQOBCLRV7HbdXNgAMrVv17GduxMpaNNRrAptFbtdt50LGwD8NNAUdDYmFb4yIwKtZcv35srvunVhA4DTBpKCzsa0+jgCEWjP7nbdblzYAOCGYlPQ2ZhYH0dqBkaw8r2zJ4yR2uphOWs78vUS0K13AIDwKjYFnYmpvZcIRBA4Tl7YAOA2KwUdi/adpY1Fy2zNYJhaH0dqBoFUTG0JAPjFbgo6E1Pr4whEEFhOXNgA4JVMS47tMLU+jkAEgTbQCxsATOF04atXqBEBACAATK2PIxABACAgnCp89RKpGRiLnXUBoD/T6uNcC0QOHDggDz74oGzdulXi8biMHj1a7rrrLlm2bJmUlJS49bIIiUydA2MVpXLHpAvkouGf0f7CAwA3mVQf51ogsnfvXkmlUvLLX/5Sxo0bJ3v27JH58+fL8ePHZdWqVW69LEIga+fAZKc8/uo/e77XuaUxAKBbRCnlWYu1xx57TJ566inZt29fQc9PJpMSjUYlkUhIRUWFy0cHE3SllExbuTVn0x6LNReia14UAILKzv3b02LVRCIhQ4dmXzbU2dkpyWSyzxfQW77Ogb3p3NIYANDNs0CktbVVVq9eLffcc0/W56xYsUKi0WjPV1VVlVeHB0PY7Qioa0tjAChEV0pJY1u7bGw+JI1t7YEcVNkORJYsWSKRSCTn1969e/v8zKFDh2TmzJly6623yvz587P+30uXLpVEItHzdfDgQfu/EQKt2I6AurU0BoB8GvYckWkrt8oda3fK/97QLHes3SnTVm6Vhj1H/D40R9muEfnggw+kvb0953PGjh3bszLm8OHDMn36dLn22mtl3bp1MmhQ4bEPNSJIZ9WIZOscmM1z8681poIcALIV5ZtS+2bn/m171cyIESNkxIgRBT330KFDcsMNN8jEiRPlmWeesRWEAJlYnQMXrG+SiEjeYETXlsYAkE1XSsnyl1oyfr4p6f5cW/5Si9TVxALRosC1yODQoUMyffp0ueCCC2TVqlXywQcfSDwel3g87tZLIiSydQ5Mp3NLYwDIJl9RftBq31zrI7J582ZpbW2V1tZWOf/88/v8m4crhhFQ6Z0DDxz7RJ57432JJ3s1OKOPCAADFVrTFpTaN9cCkXnz5sm8efPc+u+Bfp0DF904zpiWxgCQTaFF+dbzTN/ugr1mEBgmtTQGgGwmXTxUKqNlWYvye9e+ZdruwrSu0lSPAgCgEasoX+RMrZuld+3b5pa4LFjf1K+eJJ44IQvWNxmzzJdABAAAzWQryo9Fy+Spu66WuppYzpU1IuZ0lSY1AwCAhtKL8keWl8nEC8+TXe99JI9vfqfglTW6p6wJRAAA0FTv2reGPUfk+se2FbzflogZK2sIRAAA0Fy2Tqv5FLsthpcIRAAA0FiuTqvZmNRVmmJVAAA0lq/TajrTukozIwIAgMbs1nmY1lWaQAQAAI0VWuex6IZxMnXccDqrAgAA5xTaafW+ukuMCkAs1IgAAKCxQjutmhiEiBCIAACgvXydVk2pB8mE1AwAAAbI1GnVtHqQTAhEAAAwRBB3GSc1AwAAfEMgAgAAfEMgAgAAfEMgAgAAfEMgAgAAfEMgAgAAfEMgAgAAfEMgAgAAfEMgAgAAfKN1Z1WluvcZTCaTPh8JAAAolHXftu7juWgdiHR0dIiISFVVlc9HAgAA7Oro6JBoNJrzORFVSLjik1QqJYcPH5by8nKJRJzd1CeZTEpVVZUcPHhQKioqHP2/0Rfn2juca+9wrr3DufaOU+daKSUdHR0yevRoGTQodxWI1jMigwYNkvPPP9/V16ioqOCN7RHOtXc4197hXHuHc+0dJ851vpkQC8WqAADANwQiAADAN6ENREpLS6W+vl5KS0v9PpTA41x7h3PtHc61dzjX3vHjXGtdrAoAAIIttDMiAADAfwQiAADANwQiAADANwQiAADAN4EORNasWSMXXXSRlJWVyeTJk+WNN97I+fw//vGPctlll0lZWZlcccUVsmnTJo+O1Hx2zvXatWvluuuuk/POO0/OO+88mTFjRt6/Dc6w+762bNiwQSKRiHz1q1919wADxO65/s9//iMLFy6UyspKKS0tlUsuuYTPkQLZPddPPPGEXHrppTJkyBCpqqqS++67T06cOOHR0Zrr9ddfl1mzZsno0aMlEonIiy++mPdnXnvtNbn66qultLRUxo0bJ+vWrXP2oFRAbdiwQZWUlKjf/OY36h//+IeaP3++Ovfcc9XRo0czPn/Hjh1q8ODB6tFHH1UtLS3qhz/8oTr77LPVW2+95fGRm8fuub7zzjvVmjVr1O7du9Xbb7+t5s2bp6LRqPrXv/7l8ZGbx+65tuzfv1+NGTNGXXfddWr27NneHKzh7J7rzs5Odc0116hbbrlFbd++Xe3fv1+99tprqrm52eMjN4/dc/3ss8+q0tJS9eyzz6r9+/erv/zlL6qyslLdd999Hh+5eTZt2qSWLVumnn/+eSUi6oUXXsj5/H379qlzzjlHLV68WLW0tKjVq1erwYMHq4aGBseOKbCByKRJk9TChQt7vu/q6lKjR49WK1asyPj82267TX35y1/u89jkyZPVPffc4+pxBoHdc53u9OnTqry8XP32t7916xADo5hzffr0aTVlyhT161//Ws2dO5dApEB2z/VTTz2lxo4dq06ePOnVIQaG3XO9cOFCdeONN/Z5bPHixWrq1KmuHmfQFBKIfP/731eXX355n8duv/12ddNNNzl2HIFMzZw8eVJ27dolM2bM6Hls0KBBMmPGDGlsbMz4M42NjX2eLyJy0003ZX0+uhVzrtN98skncurUKRk6dKhbhxkIxZ7rn/zkJzJy5Ej5xje+4cVhBkIx5/rPf/6z1NbWysKFC2XUqFEyfvx4efjhh6Wrq8urwzZSMed6ypQpsmvXrp70zb59+2TTpk1yyy23eHLMYeLFvVHrTe+KdezYMenq6pJRo0b1eXzUqFGyd+/ejD8Tj8czPj8ej7t2nEFQzLlOd//998vo0aP7vdnRVzHnevv27fL0009Lc3OzB0cYHMWc63379snWrVvla1/7mmzatElaW1vl3nvvlVOnTkl9fb0Xh22kYs71nXfeKceOHZNp06aJUkpOnz4t3/rWt+QHP/iBF4ccKtnujclkUj799FMZMmTIgF8jkDMiMMcjjzwiGzZskBdeeEHKysr8PpxA6ejokDlz5sjatWtl+PDhfh9O4KVSKRk5cqT86le/kokTJ8rtt98uy5Ytk1/84hd+H1rgvPbaa/Lwww/Lz3/+c2lqapLnn39eXnnlFXnwwQf9PjQUIZAzIsOHD5fBgwfL0aNH+zx+9OhRicViGX8mFovZej66FXOuLatWrZJHHnlEXn31Vfn85z/v5mEGgt1z3dbWJgcOHJBZs2b1PJZKpURE5KyzzpJ33nlHqqur3T1oQxXzvq6srJSzzz5bBg8e3PPY5z73OYnH43Ly5EkpKSlx9ZhNVcy5/tGPfiRz5syRb37zmyIicsUVV8jx48fl7rvvlmXLlsmgQYyxnZLt3lhRUeHIbIhIQGdESkpKZOLEibJly5aex1KplGzZskVqa2sz/kxtbW2f54uIbN68Oevz0a2Ycy0i8uijj8qDDz4oDQ0Ncs0113hxqMaze64vu+wyeeutt6S5ubnn6ytf+YrccMMN0tzcLFVVVV4evlGKeV9PnTpVWltbe4I9EZF3331XKisrCUJyKOZcf/LJJ/2CDSsAVGyf5ihP7o2Olb1qZsOGDaq0tFStW7dOtbS0qLvvvlude+65Kh6PK6WUmjNnjlqyZEnP83fs2KHOOusstWrVKvX222+r+vp6lu8WyO65fuSRR1RJSYn605/+pI4cOdLz1dHR4devYAy75zodq2YKZ/dcv//++6q8vFwtWrRIvfPOO+rll19WI0eOVD/96U/9+hWMYfdc19fXq/LycvXcc8+pffv2qb/+9a+qurpa3XbbbX79Csbo6OhQu3fvVrt371Yion72s5+p3bt3q/fee08ppdSSJUvUnDlzep5vLd/93ve+p95++221Zs0alu/asXr1anXBBReokpISNWnSJLVz586ef7v++uvV3Llz+zz/D3/4g7rkkktUSUmJuvzyy9Urr7zi8RGby865vvDCC5WI9Puqr6/3/sANZPd93RuBiD12z/Xf//53NXnyZFVaWqrGjh2rHnroIXX69GmPj9pMds71qVOn1I9//GNVXV2tysrKVFVVlbr33nvVRx995P2BG2bbtm0ZP3+t8zt37lx1/fXX9/uZCRMmqJKSEjV27Fj1zDPPOHpMEaWYxwIAAP4IZI0IAAAwA4EIAADwDYEIAADwDYEIAADwDYEIAADwDYEIAADwDYEIAADwDYEIAADwDYEIAADwDYEIAADwDYEIAADwDYEIAADwzf8Hm52AJggyAjsAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import json\n", - "with open(\"mystery_signal.json\", \"r\") as f:\n", - " x = json.load(f)\n", - "\n", - "plt.scatter(T, x);" - ] - }, - { - "cell_type": "markdown", - "id": "12fa321e", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Wir können das Signal mit der sogenannten _Fourier-Transformation_ zerlegen:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "03cb329c", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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aXPRbQ4dOqQhQ4aoZcuWio+P1zPPPKMzZ8406vW2b9+uO+64Q23atFFsbKyeeOIJnTp1yoffoL4vvvhCQ4cOVVxcnKKjo3X77bdr/fr1PtfdsGGDQkJCLrps3brVgc6/99///d9KT09XZGSk2rZtq3vuucex2tdcc80Fvc+YMcOx+pJUXV2tm266SSEhIdq5c6djde+++2516tRJERERSkpK0sMPP6ySkhKf6x48eFCjR49WSkqKIiMj1bVrV02bNk01NTUOdP29huxj3nj55Zd1zTXXKCIiQunp6frkk098b1LSxo0bddddd6l9+/YKCQnR22+/7UhdScrJydFtt92mqKgoxcfH65577lFRUZFj9RcsWKCePXt6buKUkZGh9957z7H655oxY4ZCQkI0YcIER+r96le/umC/TE1NdaT2WUeOHNFDDz2k2NhYRUZG6sYbb9S2bdt8rnuxvykhISHKzs52oGuptrZWzz33XL398ze/+U2DvvekISoqKjRhwgR17txZkZGR6tu3b6P/nl9p/zHG6Pnnn1dSUpIiIyOVmZmp/fv3+9R/UIePmpoa3XfffRo7duxFH6+trdWQIUNUU1OjTZs26bXXXtPixYv1/PPPe/1aJSUlyszM1LXXXqstW7ZozZo12rNnjx599FEff4v/c+edd+rMmTP68MMPVVhYqF69eunOO+9UaWmpT3X79u2ro0eP1lt++tOfKiUlRbfeeqsjvb/11lt6+OGHNWrUKH366af6+OOP9eCDDzpS+6xf//rX9X6HcePGOVr/2WefVfv27R2tKUn9+/fXX/7yFxUVFemtt97Sl19+qXvvvdfnuvv27VNdXZ0WLVqkPXv2aM6cOVq4cKH+/d//3YGuv3elfcwbb775piZOnKhp06Zp+/bt6tWrl7KysnTs2DGfa1dWVqpXr156+eWXfa51vvz8fGVnZ2vz5s1at26dTp8+rUGDBqmystKR+h07dtSMGTNUWFiobdu2acCAARo6dKj27NnjSP2ztm7dqkWLFqlnz56O1v3BD35Qb7/86KOPHKt94sQJ9evXTy1atNB7772nvXv36j/+4z/Utm1bn2tv3bq1Xt/r1q2TJN13330+15ak3//+91qwYIFeeuklff755/r973+vmTNnat68eY7U/+lPf6p169bpz3/+s3bv3q1BgwYpMzNTR44c8brWlfafmTNnau7cuVq4cKG2bNmiVq1aKSsrS1VVVY3/BUwTkJuba1wu1wXr3333XRMaGmpKS0s96xYsWGCio6NNdXW1V6+xaNEiEx8fb2praz3rdu3aZSSZ/fv3N7r3s7799lsjyWzcuNGzzu12G0lm3bp1Ptc/V01NjWnXrp359a9/7Ui906dPmw4dOpj//M//dKTexXTu3NnMmTPHb/Xfffddk5qaavbs2WMkmR07dvjttd555x0TEhJiampqHK89c+ZMk5KS4njdS+1j3ujdu7fJzs72/FxbW2vat29vcnJyfOyuPklm5cqVjtY817Fjx4wkk5+f77fXaNu2raP7U0VFhbnuuuvMunXrzD/90z+Z8ePHO1J32rRpplevXo7UupjJkyeb22+/3W/1zzV+/HjTtWtXU1dX50i9IUOGmMcee6zeumHDhpkRI0b4XPu7774zzZo1M6tXr663/pZbbjG/+MUvfKp9/v5TV1dnEhMTzaxZszzrTp48acLDw82yZcsa/TpBfeTjSgoKCnTjjTcqISHBsy4rK0tut9vr/6uorq5WWFhYvS/LiYyMlCRHkn5sbKxuuOEGvf7666qsrNSZM2e0aNEixcfHKy0tzef65/rb3/6mf/zjHxo1apQj9bZv364jR44oNDRUN998s5KSkjR48GB99tlnjtQ/a8aMGYqNjdXNN9+sWbNmNfr02fnKysr0+OOP689//rNatmzpSM1LOX78uJYuXaq+ffuqRYsWjtcvLy9XTEyM43V9VVNTo8LCQmVmZnrWhYaGKjMzUwUFBQHszHvl5eWS5Jdxrq2t1fLly1VZWamMjAzH6mZnZ2vIkCH1xt8p+/fvV/v27dWlSxeNGDFChw4dcqz23/72N91666267777FB8fr5tvvlmvvPKKY/XPqqmp0ZIlS/TYY4816AtNG6Jv377Ky8vTF198IUn69NNP9dFHH2nw4ME+1z5z5oxqa2sVERFRb31kZKSjR54kqbi4WKWlpfX+7bhcLqWnp/u07zbp8FFaWloveEjy/OztqYwBAwaotLRUs2bNUk1NjU6cOKEpU6ZIko4ePepzryEhIfrggw+0Y8cORUVFKSIiQrNnz9aaNWscOcR4rldffVVZWVmN+gK/i/nqq68kfX/+95e//KVWr16ttm3b6p//+Z91/PhxR17j5z//uZYvX67169frZz/7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q6KiwtObJDN79myzY8cO8/XXX/tce+zYscblcpkNGzbUG+PvvvvO59rGGDNlyhSTn59viouLza5du8yUKVNMSEiIef/99x2pfz4nT7tMmjTJbNiwwRQXF5uPP/7YZGZmmri4OHPs2DFH6n/yySemefPm5oUXXjD79+83S5cuNS1btjRLlixxpH5tba3p1KmTmTx5siP1zjVy5EjToUMHs3r1alNcXGz++te/mri4OPPss886Un/NmjXmvffeM1999ZV5//33Ta9evUx6enqjrqK70v4zY8YM06ZNG/POO++YXbt2maFDh5qUlBTzP//zP43uP6jDx8iRIy96vnr9+vWebQ4ePGgGDx5sIiMjTVxcnJk0aZI5ffp0o17v4YcfNjExMSYsLMz07NnTvP766w79Jt/bunWrGTRokImJiTFRUVGmT58+ns+mOOEnP/mJ6du3r2P1zlVTU2MmTZpk4uPjTVRUlMnMzDSfffaZI7ULCwtNenq6cblcJiIiwnTr1s387ne/8/nN+2KcDh+7du0y/fv3NzExMSY8PNxcc801ZsyYMeabb77xuXZubu4lP7PhlIbsY96YN2+e6dSpkwkLCzO9e/c2mzdvdqTP9evXX7TPkSNH+lz7UmOcm5vrc21jjHnsscdM586dTVhYmGnXrp0ZOHCg34KHMc6Gj/vvv98kJSWZsLAw06FDB3P//febAwcOOFL7rFWrVpkePXqY8PBwk5qaav74xz86Vnvt2rVGkikqKnKs5llut9uMHz/edOrUyURERJguXbqYX/ziF17f5uFS3nzzTdOlSxcTFhZmEhMTTXZ2tjl58mSjal1p/6mrqzPPPfecSUhIMOHh4WbgwIE+j1mIMQ7dbg0AAKABmvSltgAA4OpD+AAAAFYRPgAAgFWEDwAAYBXhAwAAWEX4AAAAVhE+AACAVYQPAABgFeEDAABYRfgAAABWET4AAIBVhA8AAGDV/wIaWQnAIWj8ZwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "X = np.fft.fft(x) # Spektrum\n", - "f = np.fft.fftfreq(len(x), d=sample_distance)\n", - "plt.xlim(-10.5, 10.5)\n", - "plt.xticks(np.arange(-10, 10+1))\n", - "plt.scatter(f, np.abs(X)); # Komplexe Zahl -> Betrag" - ] - }, - { - "cell_type": "markdown", - "id": "f88c740a", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Wir sehen Peaks bei $\\pm$2, 3 und 7 Hz.\n", - "Wenn wir Sinuskurven mit den entsprechenden Frequenzen addieren, erhalten wir das gleiche Signal:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "05be9581", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "plt.scatter(T, [\n", - " sin(2 * pi * 2 * t)\n", - " for t in T\n", - "]);" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1c670b5b", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "plt.scatter(T, [\n", - " sin(2 * pi * 2 * t)\n", - " + sin(2 * pi * 3 * t)\n", - " for t in T\n", - "]);" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "46b64d31", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "plt.scatter(T, [\n", - " sin(2 * pi * 2 * t)\n", - " + sin(2 * pi * 3 * t)\n", - " + sin(2 * pi * 7 * t)\n", - " for t in T\n", - "]);" - ] - }, - { - "cell_type": "markdown", - "id": "ebb9686a", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Intuitiv bedeutet der Wert des Spektrums:\n", - "- Realteil $\\mathfrak{Re}(X[f])$ = \"Wie viel Cosinus mit Frequenz $f$ ist in $x$ enthalten?\"\n", - "- Imaginärteil $\\mathfrak{Im}(X[f])$ = \"Wie viel Sinus mit Frequenz $f$ ist in $x$ enthalten?\"" - ] - }, - { - "cell_type": "markdown", - "id": "074d0173", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Oder in Polar-Koordinaten:\n", - "- Betrag $|X[f]|$ = \"Wie stark ist die Frequenz $f$ in $x$ enthalten?\"\n", - "- Winkel $\\arg(X[f])$ = \"Mit welcher Phase ist $f$ in $x$ enthalten?\"" - ] - }, - { - "cell_type": "markdown", - "id": "9174b1ee", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Formal:" - ] - }, - { - "cell_type": "markdown", - "id": "d0293fd2", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{prf:definition} Fourier-Transformation\n", - "Für das Signal $x$ mit $n$ Samples nennen wir\n", - "\n", - "$$\n", - "\\begin{align*}\n", - "X[f] &\\mathrel{\\vcenter{:}}= \\sum_{m=0}^{n-1} x[m] \\exp\\!\\left(-j 2\\pi f \\frac{m}{n}\\right)\n", - "\\end{align*}\n", - "$$\n", - "\n", - "das (diskrete) _Spektrum_ von $x$.\n", - "Die Berechnung, mit der wir es erhalten, heißt _Fourier-Transformation_\n", - "\n", - "Wir schreiben auch $x[t] \\,\\circ\\!\\!-\\!\\!\\bullet\\, X[f]$\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "5db55997", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "```{note}\n", - "Ingenieure benutzen oft $j$ statt $i$ und $\\exp(x)$ statt $e^x$.\n", - "Deswegen schreibt man $i$ in Python auch als `1j`.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "8ba9001d", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "### Beispiel" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2fbba675", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "x = [\n", - " # Purer Sinus, 5 Hz\n", - " 3 * sin(2 * pi * 5 * t)\n", - " \n", - " # Purer Cosinus, 7 Hz\n", - " + 2 * cos(2 * pi * 7 * t)\n", - " \n", - " # Pi/4 Phasenverschoben, 3 Hz\n", - " + sin(2 * pi * 3 * t + pi/4)\n", - " \n", - " for t in T\n", - "]\n", - "X = np.fft.fft(x)\n", - "f = np.fft.fftfreq(len(x), d=sample_distance)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e66265d8", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "plt.xlim(-10.5, 10.5)\n", - "plt.xticks(np.arange(-10, 11))\n", - "plt.scatter(f, np.real(X)); # Realteil -> Cosinus" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "024c165a", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "plt.xlim(-10.5, 10.5)\n", - "plt.xticks(np.arange(-10, 11))\n", - "plt.scatter(f, np.imag(X)); # Imaginärteil -> Sinus" - ] - }, - { - "cell_type": "markdown", - "id": "115fbb27", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Wir können sie mit der sogenannten _inversen Transformation_ rückgängig machen:" - ] - }, - { - "cell_type": "markdown", - "id": "624b22e7", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "\\begin{align*}\n", - "x[t] = \\frac{1}{n} \\sum_{m=0}^{n-1} X[m] \\exp\\!\\left(j 2\\pi \\frac{m}{n} t\\right)\n", - "\\end{align*}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "40a18e0a", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{note}\n", - "Der einzige Unterschied zur \"hin-Transformation\" ist der Faktor $\\frac{1}{n}$ und das Vorzeichen im $\\exp$.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "9f70ff44", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Die Fourier-Transformation ist _linear_:" - ] - }, - { - "cell_type": "markdown", - "id": "26d84954", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "a \\cdot x[t] + b \\cdot y[t] \\,\\circ\\!\\!-\\!\\!\\bullet\\, a \\cdot X[f] + b \\cdot Y[f] \\quad (a, b \\in \\mathbb{C})\n", - "$$" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8404d246", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "b7c974d1", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "x[a \\cdot t] \\,\\circ\\!\\!-\\!\\!\\bullet\\, \\frac{1}{|a|}X\\left[\\frac{f}{a}\\right]\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "14c90553", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Faltung" - ] - }, - { - "cell_type": "markdown", - "id": "de295080", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Die sogenannte *Faltung* ist eine Operation, in der zwei Signale kombiniert werden.\n", - "Sie sieht folgendermaßen aus:" - ] - }, - { - "cell_type": "markdown", - "id": "4537b596", - "metadata": {}, - "source": [ - "```{figure} img/convolution.gif\n", - "---\n", - "name: fig:convolution\n", - "---\n", - "Faltung\n", - "([source](https://commons.wikimedia.org/wiki/File:Convolution_of_spiky_function_with_box.gif), [cc](https://creativecommons.org/licenses/by-sa/3.0/deed.en))\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "c46c64df", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Formal:" - ] - }, - { - "cell_type": "markdown", - "id": "aab54caa", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{prf:definition} Faltung\n", - "Für Signale $x$ und $y$ nennen wir\n", - "\n", - "$$\n", - "\\begin{align*}\n", - "(x * y)[t] &\\mathrel{\\vcenter{:}}= \\sum_{m=-\\infty}^\\infty x[m] \\cdot y[t - m]\n", - "\\end{align*}\n", - "$$\n", - "\n", - "die _diskrete Faltung_ von $x$ mit $y$.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "fc676901", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Intuitiv:\n", - "- $y$ wird gespiegelt und um $t$ verschoben\n", - "- Dann ist $(x * y)[t]$ die Fläche, in der $x$ und $y$ überlappen." - ] - }, - { - "cell_type": "markdown", - "id": "24f005b4", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "### Beispiel" - ] - }, - { - "cell_type": "markdown", - "id": "94cdfcf2", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Hier ein einfaches Signal $x$:" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "bb52d60c", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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7RtSud8IIhLRlZGEhASlpaWFjH3961/XN77xjeB4Xl6e7rnnHpWUlEiSCgsLtWrVKr3xxhtav369ysvLdebMGf3zP//zOE0BADCZ1qWlqPTpDL36i/Mhi1ndLoe2b0jVurQUg90hFo37HVg7OjoUF/eHCy5ZWVk6ePCgXn75Zb300kuaP3++Dh8+fEOoAQDEjnVpKVqb6uYOrBgXNsuybvkvg/v9frlcLvl8PjmdTtPtAACAURjt+zc/lAcAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAqIjCSGlpqdLT0+V0OuV0OpWZman3338/bH1ZWZlsNlvI5nA4xtw0AACYOqZFUjx79mzt3LlT8+fPl2VZ+pd/+Rdt3LhRzc3NWrx48bD7OJ1OXbhwIfjYZrONrWMAADClRBRGNmzYEPL47/7u71RaWqrGxsawYcRms8ntdkffIQAAmNKiXjMyODio8vJy9ff3KzMzM2xdX1+f5syZI4/Ho40bN+rcuXM3/duBQEB+vz9kAwAAU1PEYaS1tVV33nmn7Ha7nnvuOVVUVCg1NXXY2gULFujtt9/WkSNHdODAAQ0NDSkrK0uXL18e8RglJSVyuVzBzePxRNomAACIETbLsqxIdvj888/V0dEhn8+nn//853rrrbdUW1sbNpB82bVr17Ro0SLl5uZqx44dYesCgYACgUDwsd/vl8fjkc/nk9PpjKRdAABgiN/vl8vluun7d0RrRiRpxowZmjdvniRp2bJlOn36tHbv3q19+/bddN/p06fr/vvv18WLF0ess9vtstvtkbYGAABi0JjvMzI0NBRyFWMkg4ODam1tVUpKylgPCwAApoiIrowUFxfriSee0L333qve3l4dPHhQNTU1On78uCQpLy9P99xzj0pKSiRJr732mlasWKF58+bp6tWrev3113Xp0iVt3bp1/GcCAABiUkRhpKenR3l5eerq6pLL5VJ6erqOHz+utWvXSpI6OjoUF/eHiy2f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AKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAqIjDSF1dnTZs2KBZs2bJZrPp8OHDI9bX1NTIZrPdsHm93mh7BgAAU0jEYaS/v1/33Xef9u7dG9F+Fy5cUFdXV3BLSkqK9NAAAGAKmhbpDk888YSeeOKJiA+UlJSku+66K+L9AADA1DZpa0aWLl2qlJQUrV27Vh988MGItYFAQH6/P2QDAABT04SHkZSUFL355pt677339N5778nj8Wj16tVqamoKu09JSYlcLldw83g8E90mAAAwxGZZlhX1zjabKioqlJOTE9F+q1at0r333quf/exnwz4fCAQUCASCj/1+vzwej3w+n5xOZ7TtAgCASeT3++VyuW76/h3xmpHxsHz5cp08eTLs83a7XXa7fRI7AgAAphi5z0hLS4tSUlJMHBoAANxiIr4y0tfXp4sXLwYft7e3q6WlRYmJibr33ntVXFys3//+9/rXf/1XSdJPf/pTzZ07V4sXL9bAwIDeeustVVdX61e/+tX4zQIAAMSsiMPImTNn9MgjjwQf//CHP5Qkbd68WWVlZerq6lJHR0fw+c8//1x//dd/rd///vf62te+pvT0dP36178O+RsAAOD2NaYFrJNltAtgAADArWO079/8Ng0AADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjJpmugFTBocsnWq/op7eASUlOLR8bqLi42ym2wIA4LYT8ZWRuro6bdiwQbNmzZLNZtPhw4dvuk9NTY0yMjJkt9s1b948lZWVRdHq+Kls69LKXdXK3d+owvIW5e5v1Mpd1aps6zLaFwAAt6OI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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x = [1, 2, 3, 4, 5]\n", - "plt.scatter(range(len(x)), x)" - ] - }, - { - "cell_type": "markdown", - "id": "c08b749f", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Wir falten $x$ mit einem Signal, das einen Peak hat und sonst überall null ist:" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "fe64e534", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdGElEQVR4nO3df5BV9X3/8dfuKrvYwEZDWUDXYtIfSlAQkB00aWu7FZuUjjP9YYwJhCZ24qBFd5oKUSDWyKqpDq2gVEZrZlJHkrS2SbVk7KbG2uBgIHTC+GtSNTLqLjI2uwQrpLv3+4d10/0KykXWz1328Zg5f3g85973x5PMfc65P7auUqlUAgBQSH3pAQCA0U2MAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUceUHuBQDAwM5MUXX8y4ceNSV1dXehwA4BBUKpXs2bMnU6ZMSX39we9/jIgYefHFF9Pa2lp6DADgMOzcuTMnnXTSQf/9iIiRcePGJXl9MePHjy88DQBwKPr6+tLa2jr4On4wIyJG3nhrZvz48WIEAEaYt/uIhQ+wAgBFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChqRPzoGYwk/QOVbHn2leza81omjmvK3FNOSEO9v6kEcDBV3xl5+OGHs2DBgkyZMiV1dXX5h3/4h7c956GHHsqsWbPS2NiYX/zFX8zdd999GKNC7du046V86MZv56INj2bpvdtz0YZH86Ebv51NO14qPRpAzao6Rvbu3ZsZM2Zk3bp1h3T8s88+m49+9KM599xzs3379lxxxRX5zGc+k29961tVDwu1bNOOl3LpV7blpd7Xhuzv7n0tl35lmyABOIi6SqVSOeyT6+py33335YILLjjoMVdddVXuv//+7NixY3Dfxz72sfz4xz/Opk2bDul5+vr60tzcnN7eXn+bhprUP1DJh2789ptC5A11SSY1N+WRq37DWzbAqHGor9/D/gHWzZs3p729fci++fPnZ/PmzQc9Z9++fenr6xuyQS3b8uwrBw2RJKkkean3tWx59pV3byiAEWLYY6S7uzstLS1D9rW0tKSvry///d//fcBzOjs709zcPLi1trYO95jwjuzac/AQOZzjAEaTmvxq7/Lly9Pb2zu47dy5s/RI8JYmjms6oscBjCbD/tXeSZMmpaenZ8i+np6ejB8/PmPHjj3gOY2NjWlsbBzu0eCImXvKCZnc3JTu3tdyoA9hvfGZkbmnnPBujwZQ84b9zsi8efPS1dU1ZN+DDz6YefPmDfdTw7umob4uqxZMS/J6ePxfb/zzqgXTfHgV4ACqjpGf/OQn2b59e7Zv357k9a/ubt++Pc8//3yS199iWbhw4eDxn/3sZ/PMM8/kz/7sz/Lkk0/mtttuy1e/+tVceeWVR2YFUCPOnz45t39iViY1D30rZlJzU27/xKycP31yockAalvVX+196KGHcu65575p/6JFi3L33XfnU5/6VJ577rk89NBDQ8658sor8/jjj+ekk07KihUr8qlPfeqQn9NXexlJ/AIrwOsO9fX7Hf3OyLtFjADAyFMzvzMCAPBWxAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAog4rRtatW5epU6emqakpbW1t2bJly1sev2bNmvzKr/xKxo4dm9bW1lx55ZV57bXXDmtgAODoUnWMbNy4MR0dHVm1alW2bduWGTNmZP78+dm1a9cBj7/nnnuybNmyrFq1Kk888UTuvPPObNy4MZ///Off8fAAwMhXdYzccsstueSSS7J48eJMmzYt69evz3HHHZe77rrrgMd/97vfzTnnnJOPf/zjmTp1as4777xcdNFFb3s3BQAYHaqKkf3792fr1q1pb2//2QPU16e9vT2bN28+4Dlnn312tm7dOhgfzzzzTB544IF85CMfOejz7Nu3L319fUM2AODodEw1B+/evTv9/f1paWkZsr+lpSVPPvnkAc/5+Mc/nt27d+dDH/pQKpVK/ud//ief/exn3/Jtms7Ozlx77bXVjAYAjFDD/m2ahx56KKtXr85tt92Wbdu25e///u9z//3357rrrjvoOcuX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KD3KqPXCCy/kE5/4RN73vvdl7NixOf300/O9732v9FijVn9/f1asWJFTTjklY8eOzQc+8IFcd911b/v3Vzi4URsjGzduTEdHR1atWpVt27ZlxowZmT9/fnbt2lV6tFHnO9/5TpYsWZJHH300Dz74YH7605/mvPPOy969e0uPNuo99thj+eu//uucccYZpUcZtf7rv/4r55xzTo499tj88z//cx5//PHcfPPNOf7440uPNmrdeOONuf3227N27do88cQTufHGG3PTTTfl1ltvLT3aiDVqv9rb1taWs846K2vXrk3y+t+/aW1tzeWXX55ly5YVnm50e/nllzNx4sR85zvfya/+6q+WHmfU+slPfpJZs2bltttuyxe/+MXMnDkza9asKT3WqLNs2bL8+7//e/7t3/6t9Cj8r9/5nd9JS0tL7rzzzsF9v/d7v5exY8fmK1/5SsHJRq5ReWdk//792bp1a9rb2wf31dfXp729PZs3by44GUnS29ubJDnhhBMKTzK6LVmyJB/96EeH/P+Ed983vvGNzJkzJ3/wB3+QiRMn5swzz8yGDRtKjzWqnX322enq6srTTz+dJPmP//iPPPLII/nt3/7twpONXCPiD+Udabt3705/f39aWlqG7G9pacmTTz5ZaCqS1+9QXXHFFTnnnHMyffr00uOMWvfee2+2bduWxx57rPQoo94zzzyT22+/PR0dHfn85z+fxx57LH/yJ3+SMWPGZNGiRaXHG5WWLVuWvr6+nHrqqWloaEh/f3+uv/76XHzxxaVHG7FGZYxQu5YsWZIdO3bkkUceKT3KqLVz584sXbo0Dz74YJqamkqPM+oNDAxkzpw5Wb16dZLkzDPPzI4dO7J+/XoxUshXv/rV/O3f/m3uueeefPCDH8z27dtzxRVXZMqUKa7JYRqVMTJhwoQ0NDSkp6dnyP6enp5MmjSp0FRcdtll+ad/+qc8/PDDOemkk0qPM2pt3bo1u3btyqxZswb39ff35+GHH87atWuzb9++NDQ0FJxwdJk8eXKmTZs2ZN9pp52Wv/u7vys0EZ/73OeybNmyfOxjH0uSnH766fnRj36Uzs5OMXKYRuVnRsaMGZPZs2enq6trcN/AwEC6uroyb968gpONTpVKJZdddlnuu+++fPvb384pp5xSeqRR7Td/8zfzgx/8INu3bx/c5syZk4svvjjbt28XIu+yc845501fdX/66afzC7/wC4Um4tVXX019/dCXz4aGhgwMDBSaaOQblXdGkqSjoyOLFi3KnDlzMnfu3KxZsyZ79+7N4sWLS4826ixZsiT33HNP/vEf/zHjxo1Ld3d3kqS5uTljx44tPN3oM27cuDd9Xufnfu7n8r73vc/neAq48sorc/bZZ2f16tX5wz/8w2zZsiV33HFH7rjjjtKjjVoLFizI9ddfn5NPPjkf/OAH8/3vfz+33HJL/uiP/qj0aCNXZRS79dZbKyeffHJlzJgxlblz51YeffTR0iONSkkOuP3N3/xN6dH4X7/2a79WWbp0aekxRq1vfvOblenTp1caGxsrp556auWOO+4oPdKo1tfXV1m6dGnl5JNPrjQ1NVXe//73V66++urKvn37So82Yo3a3xkBAGrDqPzMCABQO8QIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUf8Prv9DxkdFrisAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "y = [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]\n", - "plt.scatter(range(len(y)), y)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "7de101ef", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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5cr4wAc+EI8++mjeY+XqmmuuiUOHDsV3v/vdiIj4t3/7t3jmmWfixhtvzHmyytHb2xsDAwNTnkfFYjHWrVvndfdNSqVSVFVVxTve8Y68R5lX8/4jZKn98Ic/jLGxsVi1atWU5atWrYoXXnghp6kqx/j4eOzYsSOuvfbaaG1tzXucXD3++OPR3d0dx44dy3uUivEf//Ef0dnZGXfccUf8+Z//eRw7diz+5E/+JJYuXRpbt27Ne7xcfPrTn46hoaF4//vfHzU1NTE2Nhaf/exnY/PmzXmPVjEGBgYiIqZ93Z3424VuZGQk7rzzzrjlllsW/Q+T/awFHxa8tfb29jhx4kQ888wzeY+Sq76+vti+fXscPHgwamtr8x6nYoyPj8fatWvjc5/7XEREfOADH4gTJ07EQw89dMGGxd///d/HV77ylXjsscfi8ssvj56entixY0esXr36gt0nlOeNN96Ij33sY5FlWXR2duY9zrxb8IdC3vWud0VNTU289tprU5a/9tpr0dDQkNNUleH222+PJ554Ip566qk5/an6heD48eMxODgYa9asiSVLlsSSJUvi8OHDcd9998WSJUtibGws7xFz0djYGC0tLVOW/cqv/Eq88sorOU2Uvz/7sz+LT3/60/EHf/AHccUVV8Qf/uEfxqc+9ano6OjIe7SKMfHa6nX3bBNR8YMf/CAOHjx4wX1aEbEIwmLp0qVx9dVXx6FDhyaXjY+Px6FDh2L9+vU5TpafLMvi9ttvj3379sWTTz4Zzc3NeY+Uu+uvvz6ef/756OnpmbytXbs2Nm/eHD09PVFTU5P3iLm49tprz/oq8ne/+914z3vek9NE+fvJT34S1dVTXxprampifHw8p4kqT3NzczQ0NEx53R0aGornnnvugn3djfi/qHjppZfin//5n2PFihV5j5SLRXEo5I477oitW7fG2rVro62tLb7whS/E6dOn47bbbst7tFy0t7fHY489Ft/85jejrq5u8phnsViMZcuW5TxdPurq6s46x+Siiy6KFStWXNDnnnzqU5+Ka665Jj73uc/Fxz72sejq6opHHnkkHnnkkbxHy82mTZvis5/9bFxyySVx+eWXx7/+67/GvffeGx//+MfzHm1evf766/G9731v8n5vb2/09PREfX19XHLJJbFjx47467/+63jf+94Xzc3Ncdddd8Xq1avj5ptvzm/oOfZW+6SxsTF+7/d+L7q7u+OJJ56IsbGxydfe+vr6WLp0aV5jz7+8v5aSyv33359dcskl2dKlS7O2trbs6NGjeY+Um4iY9valL30p79Eqiq+bnrF///6stbU1KxQK2fvf//7skUceyXukXA0NDWXbt2/PLrnkkqy2tjZ773vfm/3FX/xFNjo6mvdo8+qpp56a9nVk69atWZad+crpXXfdla1atSorFArZ9ddfn7344ov5Dj3H3mqf9Pb2zvja+9RTT+U9+rzys+kAQDIL/hwLAKByCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBk/j+p6GR7Hr8+IgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "z = np.convolve(x, y)\n", - "plt.scatter(range(len(z)), z)" - ] - }, - { - "cell_type": "markdown", - "id": "a0c4af49", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Und mit zwei peaks:" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "4a3d9da1", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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5uaD7rds2bL09fUN3Xbu3PkuTgkAvJuOqWbniRMnprGxMb29vcO29/b2ZvLkyW957F/8xV/klltuyT//8z/nzDPPfMt9m5qa0tTUVM1oAMAIVdWVkbFjx2bWrFnp7u4e2jY4OJju7u7MnTv3oMfddtttufHGG7Nhw4bMnj378KcFAOpOVVdGkqSzszMLFy7M7NmzM2fOnKxatSp79+7NokWLkiQLFizISSedlK6uriTJrbfemuuvvz73339/pk6dOvTekve85z15z3vecwSXAgCMRFXHyMUXX5yXX345119/fXp6ejJz5sxs2LBh6E2tO3bsSEPDzy+43H333dm/f39+//d/f9j9rFixIl/4whfe2fQAwIhX9feMlOB7RgBg5Dkq3zMCAHCkiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUceUHqCUgcFKNj/3SnbteS2TxjdnzqknpLFhTOmxqlYv66gn9XJOrKO2WEdtqZd11IrDipE1a9bk9ttvT09PT2bMmJE777wzc+bMOej+X/va17J8+fI8//zz+eVf/uXceuut+chHPnLYQ79TG7a/lBu++URe6nttaNuUluasmD8tF06fUmyuatXLOupJvZwT66gt1lFb6mUdtaTql2nWr1+fzs7OrFixIlu3bs2MGTMyb9687Nq164D7f/e7380ll1yST3/60/nBD36Qiy66KBdddFG2b9/+joc/HBu2v5TLv7J12D+iJOnpey2Xf2VrNmx/qchc1aqXddSTejkn1lFbrKO21Ms6ak3VMbJy5cpcdtllWbRoUaZNm5a1a9fmuOOOy3333XfA/f/yL/8yF154YT73uc/l9NNPz4033pizzz47q1evfsfDV2tgsJIbvvlEKgf4uze23fDNJzIweKA9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NWtWuru7h7YNDg6mu7s7c+fOLTjZ6FSpVHLFFVfkwQcfzLe//e2ceuqppUca1X7zN38zP/zhD7Nt27ah2+zZs3PppZdm27ZtQuRddt55573po+7PPPNMfumXfqnQRLz66qtpaBj+9NnY2JjBwcFCE418o/LKSJJ0dnZm4cKFmT17dubMmZNVq1Zl7969WbRoUenRRp3Fixfn/vvvzz/8wz9k/Pjx6enpSZK0tLRk3LhxhacbfcaPH/+m9+v8wi/8Qt73vvd5H08BV199dc4999zcfPPN+cM//MNs3rw599xzT+65557So41a8+fPz0033ZRTTjklH/zgB/ODH/wgK1euzB/90R+VHm3kqoxid955Z+WUU06pjB07tjJnzpzK9773vdIjjUpJDnj7m7/5m9Kj8b9+/dd/vbJkyZLSY4xa3/zmNyvTp0+vNDU1VU477bTKPffcU3qkUa2/v7+yZMmSyimnnFJpbm6uvP/9769ce+21lX379pUebcQatd8zAgDUhlH5nhEAoHaIEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKL+L/78SoDxdAtEAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "y = [0, 0, 1, 0, 0, 0, 0, 0, 0, 1]\n", - "plt.scatter(range(len(y)), y)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "d9bf528b", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdBklEQVR4nO3dfWxd91348Y/tEDsU+25ul9hRXeY90OG6DUtDqj4AYk3XRFWgIDZRJSx0CInIFckiUGdQZyLY3K5iGn2Q+yCxIWVdtz8WIBUEhbRLVLHWWYxRTdauA3c11K4ZYfe6GfYq+/z+6C+mXuws1/na597k9ZLOH74+9v3otN/jd+69596aLMuyAABIoDbvAQCAC4ewAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZFYs9x3OzMzEa6+9Fo2NjVFTU7Pcdw8ALEKWZTExMRFr166N2tqFH5dY9rB47bXXoq2tbbnvFgBIYGRkJC6//PIFv7/sYdHY2BgRbw3W1NS03HcPACxCqVSKtra22b/jC1n2sDj99EdTU5OwAIAq8+NexuDFmwBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSWfY3yAIqy/RMFv3DJ2N8YjJWNzbExvbmqKv1OT5QbSplLZcVFn/yJ38Se/funXPblVdeGS+++GLSoYDlcXBoNPYeOBGjxcnZ21oLDdGztSM2d7bmOBlQjkpay2U/FXLVVVfF6Ojo7Pbss88uxVzAEjs4NBo79w3MORFFRIwVJ2PnvoE4ODSa02RAOSptLZcdFitWrIiWlpbZ7bLLLluKuYAlND2Txd4DJyKb53unb9t74ERMz8y3B1ApKnEtlx0WL7/8cqxduzbe8573xLZt2+LVV1896/5TU1NRKpXmbEC++odPnvGvm7fLImK0OBn9wyeXbyigbJW4lssKi+uuuy6++MUvxsGDB6Ovry+Gh4fjF37hF2JiYmLBn+nt7Y1CoTC7tbW1nffQwPkZn1j4RLSY/YB8VOJaLisstmzZEh/5yEfimmuuiVtvvTX+7u/+Lr7//e/HV7/61QV/pru7O4rF4uw2MjJy3kMD52d1Y0PS/YB8VOJaPq/LTd/xjnfEz/zMz8R3vvOdBfepr6+P+vr687kbILGN7c3RWmiIseLkvM/N1kRES+Gty9WAylWJa/m83iDrjTfeiH/7t3+L1laXpUE1qautiZ6tHRHx1onn7U5/3bO1w/tZQIWrxLVcVlj8wR/8QRw5ciReeeWV+Kd/+qf4tV/7tairq4s77rhjqeYDlsjmztbo274+WgpzHyJtKTRE3/b13scCqkSlreWyngr5j//4j7jjjjviv//7v+Nd73pX3HTTTfHcc8/Fu971rqWaD1hCmztb45aOlop4tz5g8SppLddkWbasF6qXSqUoFApRLBajqalpOe8aAFikc/377UPIAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACSzIu8B4GI1PZNF//DJGJ+YjNWNDbGxvTnqamvyHgsog3V8pvMKi3vvvTe6u7tj165d8fnPfz7RSHDhOzg0GnsPnIjR4uTsba2FhujZ2hGbO1tznAw4V9bx/Bb9VMixY8fi0UcfjWuuuSblPHDBOzg0Gjv3Dcw5GUVEjBUnY+e+gTg4NJrTZMC5so4XtqiweOONN2Lbtm3x+OOPxzvf+c7UM8EFa3omi70HTkQ2z/dO37b3wImYnplvD6ASWMdnt6iw6Orqittuuy02bdr0Y/edmpqKUqk0Z4OLVf/wyTP+hfN2WUSMFiejf/jk8g0FlMU6PruyX2Px5JNPxsDAQBw7duyc9u/t7Y29e/eWPRhciMYnFj4ZLWY/YPlZx2dX1iMWIyMjsWvXrvjSl74UDQ0N5/Qz3d3dUSwWZ7eRkZFFDQoXgtWN57ZuznU/YPlZx2dX1iMWx48fj/Hx8Vi/fv3sbdPT03H06NF46KGHYmpqKurq6ub8TH19fdTX16eZFqrcxvbmaC00xFhxct7nZ2sioqXw1iVrQGWyjs+urEcsbr755njhhRdicHBwdtuwYUNs27YtBgcHz4gKYK662pro2doREW+dfN7u9Nc9Wzsu+uvgoZJZx2dXVlg0NjZGZ2fnnO2SSy6JSy+9NDo7O5dqRrigbO5sjb7t66OlMPdh0pZCQ/RtX39RX/8O1cI6Xph33oQcbO5sjVs6WrxjH1Qx63h+NVmWLeuFtqVSKQqFQhSLxWhqalrOuwYAFulc/377EDIAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhmRd4DwHKansmif/hkjE9MxurGhtjY3hx1tTV5jwWUyVquXGWFRV9fX/T19cUrr7wSERFXXXVVfOpTn4otW7YsxWyQ1MGh0dh74ESMFidnb2stNETP1o7Y3Nma42RAOazlylbWUyGXX3553HvvvXH8+PH45je/GR/60IfiV3/1V+Nf//Vfl2o+SOLg0Gjs3Dcw50QUETFWnIyd+wbi4NBoTpMB5bCWK19NlmXZ+fyC5ubmuP/+++N3fud3zmn/UqkUhUIhisViNDU1nc9dwzmZnsnipvuePuNEdFpNRLQUGuLZuz/koVSoYNZyvs717/eiX7w5PT0dTz75ZJw6dSquv/76BfebmpqKUqk0Z4Pl1D98csETUUREFhGjxcnoHz65fEMBZbOWq0PZYfHCCy/ET/3UT0V9fX383u/9Xuzfvz86OjoW3L+3tzcKhcLs1tbWdl4DQ7nGJxY+ES1mPyAf1nJ1KDssrrzyyhgcHIznn38+du7cGTt27IgTJ04suH93d3cUi8XZbWRk5LwGhnKtbmxIuh+QD2u5OpR9uenKlSvjfe97X0REXHvttXHs2LH4i7/4i3j00Ufn3b++vj7q6+vPb0o4Dxvbm6O10BBjxcmY7wVFp5+X3djevNyjAWWwlqvDeb9B1szMTExNTaWYBZZEXW1N9Gx96+m6H3051+mve7Z2eLEXVDhruTqUFRbd3d1x9OjReOWVV+KFF16I7u7u+PrXvx7btm1bqvkgic2drdG3fX20FOY+RNpSaIi+7etd+w5VwlqufGU9FTI+Ph4f+9jHYnR0NAqFQlxzzTXxD//wD3HLLbcs1XyQzObO1rilo8W79UGVs5Yr23m/j0W5vI8FAFSfJX8fCwCAHyUsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMmsyHsALnzTM1n0D5+M8YnJWN3YEBvbm6OutibvsYAyWcuci7LCore3N772ta/Fiy++GKtWrYobbrgh7rvvvrjyyiuXaj6q3MGh0dh74ESMFidnb2stNETP1o7Y3Nma42RAOaxlzlVZT4UcOXIkurq64rnnnotDhw7Fm2++GR/+8Ifj1KlTSzUfVezg0Gjs3Dcw50QUETFWnIyd+wbi4NBoTpMB5bCWKUdNlmXZYn/4v/7rv2L16tVx5MiR+MVf/MVz+plSqRSFQiGKxWI0NTUt9q6pcNMzWdx039NnnIhOq4mIlkJDPHv3hzyUChXMWua0c/37fV4v3iwWixER0dzcvOA+U1NTUSqV5mxc+PqHTy54IoqIyCJitDgZ/cMnl28ooGzWMuVadFjMzMzE7t2748Ybb4zOzs4F9+vt7Y1CoTC7tbW1LfYuqSLjEwufiBazH5APa5lyLTosurq6YmhoKJ588smz7tfd3R3FYnF2GxkZWexdUkVWNzYk3Q/Ih7VMuRZ1ueldd90VTz31VBw9ejQuv/zys+5bX18f9fX1ixqO6rWxvTlaCw0xVpyM+V7Ec/p52Y3tCz+NBuTPWqZcZT1ikWVZ3HXXXbF///54+umno729fanmosrV1dZEz9aOiHjrxPN2p7/u2drhxV5Q4axlylVWWHR1dcW+ffviiSeeiMbGxhgbG4uxsbH43//936Wajyq2ubM1+ravj5bC3IdIWwoN0bd9vWvfoUpYy5SjrMtNa2rmL9IvfOEL8du//dvn9Dtcbnrx8W59cGGwli9u5/r3u6zXWJzHW15wEaurrYnr33tp3mMA58la5lz4EDIAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhmRd4DsHSmZ7LoHz4Z4xOTsbqxITa2N0ddbU3eYwFlsI6pNmWHxdGjR+P++++P48ePx+joaOzfvz9uv/32JRiN83FwaDT2HjgRo8XJ2dtaCw3Rs7UjNne25jgZcK6sY6pR2U+FnDp1KtatWxcPP/zwUsxDAgeHRmPnvoE5J6OIiLHiZOzcNxAHh0Zzmgw4V9Yx1arsRyy2bNkSW7ZsWYpZSGB6Jou9B05ENs/3soioiYi9B07ELR0tHk6FCmUdU82W/MWbU1NTUSqV5mwsnf7hk2f8C+ftsogYLU5G//DJ5RsKKIt1TDVb8rDo7e2NQqEwu7W1tS31XV7UxicWPhktZj9g+VnHVLMlD4vu7u4oFouz28jIyFLf5UVtdWND0v2A5WcdU82W/HLT+vr6qK+vX+q74f/b2N4crYWGGCtOzvv8bE1EtBTeumQNqEzWMdXMG2RdYOpqa6Jna0dEvHXyebvTX/ds7fCCL6hg1jHVrOyweOONN2JwcDAGBwcjImJ4eDgGBwfj1VdfTT0bi7S5szX6tq+PlsLch0lbCg3Rt32969+hCljHVKuaLMvme6RtQV//+tfjl3/5l8+4fceOHfHFL37xx/58qVSKQqEQxWIxmpqayrlryuQd+6D6WcdUinP9+112WJwvYQEA1edc/357jQUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACSzIu8BUpieyaJ/+GSMT0zG6saG2NjeHHW1NRf9LFBtKmn9VNIsUE0WFRYPP/xw3H///TE2Nhbr1q2LBx98MDZu3Jh6tnNycGg09h44EaPFydnbWgsN0bO1IzZ3tl60s0C1qaT1U0mzQLUp+6mQr3zlK7Fnz57o6emJgYGBWLduXdx6660xPj6+FPOd1cGh0di5b2DO4o+IGCtOxs59A3FwaPSinAWqTSWtn0qaBapR2WHxuc99Ln73d3837rzzzujo6IhHHnkkfvInfzL+8i//cinmW9D0TBZ7D5yIbJ7vnb5t74ETMT0z3x4X7ixQbSpp/VTSLFCtygqLH/7wh3H8+PHYtGnT//2C2trYtGlTfOMb35j3Z6ampqJUKs3ZUugfPnnGvyjeLouI0eJk9A+fTHJ/1TILVJtKWj+VNAtUq7LC4nvf+15MT0/HmjVr5ty+Zs2aGBsbm/dnent7o1AozG5tbW2Ln/ZtxicWXvyL2e98VNIsUG0qaf1U0ixQrZb8ctPu7u4oFouz28jISJLfu7qxIel+56OSZoFqU0nrp5JmgWpVVlhcdtllUVdXF6+//vqc219//fVoaWmZ92fq6+ujqalpzpbCxvbmaC00xEIXf9XEW6/i3tjenOT+qmUWqDaVtH4qaRaoVmWFxcqVK+Paa6+Nw4cPz942MzMThw8fjuuvvz75cGdTV1sTPVs7IiLOOAmc/rpna8eyXHdeSbNAtamk9VNJs0C1KvupkD179sTjjz8ef/VXfxXf+ta3YufOnXHq1Km48847l2K+s9rc2Rp929dHS2Huw5IthYbo275+Wa83r6RZoNpU0vqppFmgGtVkWVb2dVMPPfTQ7Btk/dzP/Vw88MADcd11153Tz5ZKpSgUClEsFpM9LVJJ75BXSbNAtamk9VNJs0AlONe/34sKi/OxFGEBACytc/377UPIAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZFYs9x2efqPPUqm03HcNACzS6b/bP+4Nu5c9LCYmJiIioq2tbbnvGgA4TxMTE1EoFBb8/rJ/VsjMzEy89tpr0djYGDU16T7Qp1QqRVtbW4yMjPgMkrdxXM7kmJzJMZmf43Imx+RMF8sxybIsJiYmYu3atVFbu/ArKZb9EYva2tq4/PLLl+z3NzU1XdD/YRfLcTmTY3Imx2R+jsuZHJMzXQzH5GyPVJzmxZsAQDLCAgBI5oIJi/r6+ujp6Yn6+vq8R6kojsuZHJMzOSbzc1zO5JicyTGZa9lfvAkAXLgumEcsAID8CQsAIBlhAQAkIywAgGQumLB4+OGH493vfnc0NDTEddddF/39/XmPlJve3t74+Z//+WhsbIzVq1fH7bffHi+99FLeY1WUe++9N2pqamL37t15j5K7//zP/4zt27fHpZdeGqtWrYqrr746vvnNb+Y9Vm6mp6fjnnvuifb29li1alW8973vjT/90z/9sZ+PcKE5evRobN26NdauXRs1NTXx13/913O+n2VZfOpTn4rW1tZYtWpVbNq0KV5++eV8hl0mZzsmb775Ztx9991x9dVXxyWXXBJr166Nj33sY/Haa6/lN3BOLoiw+MpXvhJ79uyJnp6eGBgYiHXr1sWtt94a4+PjeY+WiyNHjkRXV1c899xzcejQoXjzzTfjwx/+cJw6dSrv0SrCsWPH4tFHH41rrrkm71Fy9z//8z9x4403xk/8xE/E3//938eJEyfiz//8z+Od73xn3qPl5r777ou+vr546KGH4lvf+lbcd9998dnPfjYefPDBvEdbVqdOnYp169bFww8/PO/3P/vZz8YDDzwQjzzySDz//PNxySWXxK233hqTk5PLPOnyOdsx+cEPfhADAwNxzz33xMDAQHzta1+Ll156KX7lV34lh0lzll0ANm7cmHV1dc1+PT09na1duzbr7e3NcarKMT4+nkVEduTIkbxHyd3ExET2/ve/Pzt06FD2S7/0S9muXbvyHilXd999d3bTTTflPUZFue2227KPf/zjc2779V//9Wzbtm05TZS/iMj2798/+/XMzEzW0tKS3X///bO3ff/738/q6+uzL3/5yzlMuPx+9JjMp7+/P4uI7Lvf/e7yDFUhqv4Rix/+8Idx/Pjx2LRp0+xttbW1sWnTpvjGN76R42SVo1gsRkREc3NzzpPkr6urK2677bY5/79czP72b/82NmzYEB/5yEdi9erV8cEPfjAef/zxvMfK1Q033BCHDx+Ob3/72xER8S//8i/x7LPPxpYtW3KerHIMDw/H2NjYnHVUKBTiuuuuc959m2KxGDU1NfGOd7wj71GW1bJ/CFlq3/ve92J6ejrWrFkz5/Y1a9bEiy++mNNUlWNmZiZ2794dN954Y3R2duY9Tq6efPLJGBgYiGPHjuU9SsX493//9+jr64s9e/bEH/3RH8WxY8fi93//92PlypWxY8eOvMfLxSc/+ckolUrxgQ98IOrq6mJ6ejo+/elPx7Zt2/IerWKMjY1FRMx73j39vYvd5ORk3H333XHHHXdc8B9M9qOqPiw4u66urhgaGopnn30271FyNTIyErt27YpDhw5FQ0ND3uNUjJmZmdiwYUN85jOfiYiID37wgzE0NBSPPPLIRRsWX/3qV+NLX/pSPPHEE3HVVVfF4OBg7N69O9auXXvRHhPK8+abb8ZHP/rRyLIs+vr68h5n2VX9UyGXXXZZ1NXVxeuvvz7n9tdffz1aWlpymqoy3HXXXfHUU0/FM888s6QfVV8Njh8/HuPj47F+/fpYsWJFrFixIo4cORIPPPBArFixIqanp/MeMRetra3R0dEx57af/dmfjVdffTWnifL3h3/4h/HJT34yfvM3fzOuvvrq+K3f+q34xCc+Eb29vXmPVjFOn1udd890Oiq++93vxqFDhy66RysiLoCwWLlyZVx77bVx+PDh2dtmZmbi8OHDcf311+c4WX6yLIu77ror9u/fH08//XS0t7fnPVLubr755njhhRdicHBwdtuwYUNs27YtBgcHo66uLu8Rc3HjjTeecSnyt7/97fjpn/7pnCbK3w9+8IOorZ17aqyrq4uZmZmcJqo87e3t0dLSMue8WyqV4vnnn79oz7sR/xcVL7/8cvzjP/5jXHrppXmPlIsL4qmQPXv2xI4dO2LDhg2xcePG+PznPx+nTp2KO++8M+/RctHV1RVPPPFE/M3f/E00NjbOPudZKBRi1apVOU+Xj8bGxjNeY3LJJZfEpZdeelG/9uQTn/hE3HDDDfGZz3wmPvrRj0Z/f3889thj8dhjj+U9Wm62bt0an/70p+OKK66Iq666Kv75n/85Pve5z8XHP/7xvEdbVm+88UZ85zvfmf16eHg4BgcHo7m5Oa644orYvXt3/Nmf/Vm8//3vj/b29rjnnnti7dq1cfvtt+c39BI72zFpbW2N3/iN34iBgYF46qmnYnp6evbc29zcHCtXrsxr7OWX92UpqTz44IPZFVdcka1cuTLbuHFj9txzz+U9Um4iYt7tC1/4Qt6jVRSXm77lwIEDWWdnZ1ZfX5994AMfyB577LG8R8pVqVTKdu3alV1xxRVZQ0ND9p73vCf74z/+42xqairv0ZbVM888M+95ZMeOHVmWvXXJ6T333JOtWbMmq6+vz26++ebspZdeynfoJXa2YzI8PLzgufeZZ57Je/Rl5WPTAYBkqv41FgBA5RAWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyfw/N2asl4XyUyIAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "z = np.convolve(x, y)\n", - "plt.scatter(range(len(z)), z)" - ] - }, - { - "cell_type": "markdown", - "id": "c5aea429", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Wir sehen: jeder Peak in $y$ ergibt eine _Kopie_ von $x$!" - ] - }, - { - "cell_type": "markdown", - "id": "e60b8922", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "### Wie hängt das mit Signalverarbeitung zusammen?" - ] - }, - { - "cell_type": "markdown", - "id": "3edb1cfe", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Die Fourier-Transformation verknüpft Faltung und Multiplikation:" - ] - }, - { - "cell_type": "markdown", - "id": "5e7a4611", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "\\begin{align*}\n", - " x[t] * y[t] \\,&\\circ\\!\\!-\\!\\!\\bullet\\, X[f] \\cdot Y[f] \\\\\n", - " x[t] \\cdot y[t] \\,&\\circ\\!\\!-\\!\\!\\bullet\\, X[f] * Y[f] \\\\\n", - "\\end{align*}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "feb1446d", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Durch diese Eigenschaft können wir Signale (und ihre Spektren) effizient bearbeiten.\n", - "Wie genau sehen wir gleich im Projekt." - ] - }, - { - "cell_type": "markdown", - "id": "aeeb1557", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{note}\n", - "Der Zusammenhang zwischen Faltung und Multiplikation ist nicht nur für Signalverarbeitung wichtig.\n", - "Faltung kommt auch in **Künstlicher Intelligenz**, **Bildverarbeitung** und **Computer Vision** zum Einsatz.\n", - "Außerdem können wir damit z.B. einen **schnellen Algorithmus für Polynom-Multiplikation** umsetzen.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "2ec9766f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Recap" - ] - }, - { - "cell_type": "markdown", - "id": "03074ac1", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- Signale stellen wir digital als **Samples** mit einer fixen **Abtastrate** dar." - ] - }, - { - "cell_type": "markdown", - "id": "6dd62280", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- Diese Abtastrate muss **doppelt so hoch** sein wie die größte Frequenz im Signal." - ] - }, - { - "cell_type": "markdown", - "id": "943c15ca", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- Mit der **Fourier-Transformation** können wir ein Signal in sein Spektrum zerlegen." - ] - }, - { - "cell_type": "markdown", - "id": "9faf5ca3", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- Das Spektrum gibt pro Frequenz an, wie stark der Anteil von Sinus und Cosinus ist..." - ] - }, - { - "cell_type": "markdown", - "id": "d59296b4", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- ...auch wenn das Signal gar nicht direkt aus Sinus und Cosinus besteht." - ] - }, - { - "cell_type": "markdown", - "id": "9af7afe6", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Die Fourier-Transformation hat mehrere nützliche Eigenschaften:\n", - "\n", - "$$\n", - "\\begin{array}{lrr}\n", - "\\hline \\textbf{Eigenschaft} & \\textbf{Signal} & \\textbf{Spektrum} \\\\\n", - "\\hline\n", - "\\text{linear} & \\sum_i a_i x_i[t] & \\sum_i a_i X_i[f] \\\\\n", - "\\text{dual} & X[-t] & x[f] \\\\\n", - " & X[t] & x[-f] \\\\\n", - "\\text{Skalierung} & x[at] & \\frac{1}{|a|} X \\left[\\frac{f}{a}\\right] \\\\\n", - "\\text{Faltung} & x[t] * y[t] & X[f] \\cdot Y[f] \\\\\n", - " & x[t] \\cdot y[t] & X[f] * Y[f] \\\\\n", - "\\hline\n", - "\\end{array}\n", - "$$" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.ipynb_checkpoints/U01_DSP_Basics.en-checkpoint.ipynb b/.ipynb_checkpoints/U01_DSP_Basics.en-checkpoint.ipynb deleted file mode 100644 index 835c7f6..0000000 --- a/.ipynb_checkpoints/U01_DSP_Basics.en-checkpoint.ipynb +++ /dev/null @@ -1,1256 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "7b5ee112", - "metadata": { - "slideshow": { - "slide_type": "slide" - }, - "tags": [] - }, - "source": [ - "# DSP Basics" - ] - }, - { - "cell_type": "markdown", - "id": "f8999dbc", - "metadata": { - "slideshow": { - "slide_type": "fragment" - }, - "tags": [] - }, - "source": [ - "\"**D**igital **S**ignal **P**rocessing\"" - ] - }, - { - "cell_type": "markdown", - "id": "aada2375", - "metadata": { - "slideshow": { - "slide_type": "subslide" - }, - "tags": [] - }, - "source": [ - "We can think of signals as _functions_ over time, for example \"what voltage is present at the antenna at time $t$?" - ] - }, - { - "cell_type": "markdown", - "id": "2ca73e1f", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "We can represent (continuous) time only in _discrete_ steps:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "a71d9181", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09]" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sampling_rate = 100 # Hz\n", - "sample_distance = 1 / sampling_rate\n", - "\n", - "# 100 samples -> 1 second\n", - "T = [i * sample_distance for i in range(100)]\n", - "\n", - "T[:10]" - ] - }, - { - "cell_type": "markdown", - "id": "27cd6d08", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "We can now represent a signal as the values (so-called *samples*) that it has at the respective point in time:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "ee0efab9", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [], - "source": [ - "from math import pi, sin, cos\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "9185d60d", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "f = 3 # Hz, frequency\n", - "x = [sin(2 * pi * f * t) for t in T] # signal\n", - "plt.scatter(T, x);" - ] - }, - { - "cell_type": "markdown", - "id": "f4e9af21", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "If the frequency gets too high, we run into a problem:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "37e7a30e", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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paWlVnZ2NreJN1NL13rJkiVWRESE9corr1hlZWX+7cyZM+01hZDR0rX+R9xF1XwtXevDhw9b3bp1s2bOnGnt27fPevPNN62YmBjrmWeeaa8phIyWrnV2drbVrVs36w9/+IN14MAB691337X69u1r3Xvvve01hZBx5swZ69NPP7U+/fRTS5K1cuVK69NPP7W+/vpry7Isa/78+dakSZP8/c/fJv7YY49ZpaWlVm5uLreJdwTPPfec9dOf/tSKiIiwhg0bZn388cf+92699VZr8uTJAf3/+Mc/Wj/72c+siIgI6+c//7n11ltvtXHFoasla33NNddYki7YsrOz277wENTSv9d/j4DTMi1d648++shyu92W3W63+vTpYz377LPWuXPn2rjq0NSSta6rq7OefPJJq2/fvlZkZKSVkJBgPfTQQ9bf/va3ti88xLz33nuN/v/3/PpOnjzZuvXWWy/YZ8iQIVZERITVp08f66WXXrqsNdksi/NuAADALFyDAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBx/j9qhKUmIQmcxgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x = [sin(2 * pi * 50 * t) for t in T] # f = 50 Hz?\n", - "plt.ylim(-1.1, 1.1)\n", - "plt.scatter(T, x);" - ] - }, - { - "cell_type": "markdown", - "id": "2b9a74a0", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "For $f = 50\\text{Hz}$, we only hit the zeroes!" - ] - }, - { - "cell_type": "markdown", - "id": "0bc9e6e2", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{prf:theorem} Nyquist-Shannon sampling theorem\n", - "With a sampling rate of $f_s$, we can uniquely represent $x$ with discrete samples only if it contains no frequency larger than $f_s / 2$.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "1d444245", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "So we have to ensure that our sampling rate is at least twice as high as the highest frequency in the signal." - ] - }, - { - "cell_type": "markdown", - "id": "cde3df85", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Excursion: Complex Numbers" - ] - }, - { - "cell_type": "markdown", - "id": "2c93c683", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "\n", - "```{figure} img/complex.svg\n", - "---\n", - "name: fig:complex.en\n", - "height: 400px\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "61325c1c", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "We can think of complex numbers as vectors $\\begin{pmatrix}x \\\\ y\\end{pmatrix}$, which we write as $x + yi$.\n", - "\n", - "Intuitively: \"$x$ to the right plus $y$ upwards\".\n", - "\n", - "Addition works as expected:" - ] - }, - { - "cell_type": "markdown", - "id": "5826f800", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "(a + bi) + (c + di) = (a + c) + (b + d)i\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "0b64997b", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "For multiplication, it is easier to use _polar coordinates_.\n", - "\n", - "$r = |x + yi| = \\sqrt{x^2 + y^2}$ is the magnitude of the vector, and $\\phi = \\texttt{atan2}(y, x)$ is the angle to the real axis." - ] - }, - { - "cell_type": "markdown", - "id": "30a87e63", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "(r, \\phi) \\cdot (s, \\psi) = (r \\cdot s, \\phi + \\psi)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "93c066b9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Signal Analysis" - ] - }, - { - "cell_type": "markdown", - "id": "bb326e90", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "From which frequencies is the following signal constructed?" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "63e0f4b8", - "metadata": { - "slideshow": { - "slide_type": "-" - }, - "tags": [ - "remove-cell" - ] - }, - "outputs": [], - "source": [ - "# Cell-Tag \"remove-cell\" -> wird im Buch nicht angezeigt\n", - "import json\n", - "x = [sin(2 * pi * 2 * t) # 2 Hz\n", - " + sin(2 * pi * 3 * t) # 3 Hz\n", - " + sin(2 * pi * 7 * t) # 7 Hz\n", - " for t in T]\n", - "\n", - "with open(\"mystery_signal.json\", \"w\") as f:\n", - " json.dump(list(x), f)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "19850623", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import json\n", - "with open(\"mystery_signal.json\", \"r\") as f:\n", - " x = json.load(f)\n", - "\n", - "plt.scatter(T, x);" - ] - }, - { - "cell_type": "markdown", - "id": "12fa321e", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "We can deconstruct the signal using the so-called _Fourier Transform_:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "03cb329c", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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aXPRbQ4dOqQhQ4aoZcuWio+P1zPPPKMzZ8406vW2b9+uO+64Q23atFFsbKyeeOIJnTp1yoffoL4vvvhCQ4cOVVxcnKKjo3X77bdr/fr1PtfdsGGDQkJCLrps3brVgc6/99///d9KT09XZGSk2rZtq3vuucex2tdcc80Fvc+YMcOx+pJUXV2tm266SSEhIdq5c6djde+++2516tRJERERSkpK0sMPP6ySkhKf6x48eFCjR49WSkqKIiMj1bVrV02bNk01NTUOdP29huxj3nj55Zd1zTXXKCIiQunp6frkk098b1LSxo0bddddd6l9+/YKCQnR22+/7UhdScrJydFtt92mqKgoxcfH65577lFRUZFj9RcsWKCePXt6buKUkZGh9957z7H655oxY4ZCQkI0YcIER+r96le/umC/TE1NdaT2WUeOHNFDDz2k2NhYRUZG6sYbb9S2bdt8rnuxvykhISHKzs52oGuptrZWzz33XL398ze/+U2DvvekISoqKjRhwgR17txZkZGR6tu3b6P/nl9p/zHG6Pnnn1dSUpIiIyOVmZmp/fv3+9R/UIePmpoa3XfffRo7duxFH6+trdWQIUNUU1OjTZs26bXXXtPixYv1/PPPe/1aJSUlyszM1LXXXqstW7ZozZo12rNnjx599FEff4v/c+edd+rMmTP68MMPVVhYqF69eunOO+9UaWmpT3X79u2ro0eP1lt++tOfKiUlRbfeeqsjvb/11lt6+OGHNWrUKH366af6+OOP9eCDDzpS+6xf//rX9X6HcePGOVr/2WefVfv27R2tKUn9+/fXX/7yFxUVFemtt97Sl19+qXvvvdfnuvv27VNdXZ0WLVqkPXv2aM6cOVq4cKH+/d//3YGuv3elfcwbb775piZOnKhp06Zp+/bt6tWrl7KysnTs2DGfa1dWVqpXr156+eWXfa51vvz8fGVnZ2vz5s1at26dTp8+rUGDBqmystKR+h07dtSMGTNUWFiobdu2acCAARo6dKj27NnjSP2ztm7dqkWLFqlnz56O1v3BD35Qb7/86KOPHKt94sQJ9evXTy1atNB7772nvXv36j/+4z/Utm1bn2tv3bq1Xt/r1q2TJN13330+15ak3//+91qwYIFeeuklff755/r973+vmTNnat68eY7U/+lPf6p169bpz3/+s3bv3q1BgwYpMzNTR44c8brWlfafmTNnau7cuVq4cKG2bNmiVq1aKSsrS1VVVY3/BUwTkJuba1wu1wXr3333XRMaGmpKS0s96xYsWGCio6NNdXW1V6+xaNEiEx8fb2praz3rdu3aZSSZ/fv3N7r3s7799lsjyWzcuNGzzu12G0lm3bp1Ptc/V01NjWnXrp359a9/7Ui906dPmw4dOpj//M//dKTexXTu3NnMmTPHb/Xfffddk5qaavbs2WMkmR07dvjttd555x0TEhJiampqHK89c+ZMk5KS4njdS+1j3ujdu7fJzs72/FxbW2vat29vcnJyfOyuPklm5cqVjtY817Fjx4wkk5+f77fXaNu2raP7U0VFhbnuuuvMunXrzD/90z+Z8ePHO1J32rRpplevXo7UupjJkyeb22+/3W/1zzV+/HjTtWtXU1dX50i9IUOGmMcee6zeumHDhpkRI0b4XPu7774zzZo1M6tXr663/pZbbjG/+MUvfKp9/v5TV1dnEhMTzaxZszzrTp48acLDw82yZcsa/TpBfeTjSgoKCnTjjTcqISHBsy4rK0tut9vr/6uorq5WWFhYvS/LiYyMlCRHkn5sbKxuuOEGvf7666qsrNSZM2e0aNEixcfHKy0tzef65/rb3/6mf/zjHxo1apQj9bZv364jR44oNDRUN998s5KSkjR48GB99tlnjtQ/a8aMGYqNjdXNN9+sWbNmNfr02fnKysr0+OOP689//rNatmzpSM1LOX78uJYuXaq+ffuqRYsWjtcvLy9XTEyM43V9VVNTo8LCQmVmZnrWhYaGKjMzUwUFBQHszHvl5eWS5Jdxrq2t1fLly1VZWamMjAzH6mZnZ2vIkCH1xt8p+/fvV/v27dWlSxeNGDFChw4dcqz23/72N91666267777FB8fr5tvvlmvvPKKY/XPqqmp0ZIlS/TYY4816AtNG6Jv377Ky8vTF198IUn69NNP9dFHH2nw4ME+1z5z5oxqa2sVERFRb31kZKSjR54kqbi4WKWlpfX+7bhcLqWnp/u07zbp8FFaWloveEjy/OztqYwBAwaotLRUs2bNUk1NjU6cOKEpU6ZIko4ePepzryEhIfrggw+0Y8cORUVFKSIiQrNnz9aaNWscOcR4rldffVVZWVmN+gK/i/nqq68kfX/+95e//KVWr16ttm3b6p//+Z91/PhxR17j5z//uZYvX67169frZz/7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q6KiwtObJDN79myzY8cO8/XXX/tce+zYscblcpkNGzbUG+PvvvvO59rGGDNlyhSTn59viouLza5du8yUKVNMSEiIef/99x2pfz4nT7tMmjTJbNiwwRQXF5uPP/7YZGZmmri4OHPs2DFH6n/yySemefPm5oUXXjD79+83S5cuNS1btjRLlixxpH5tba3p1KmTmTx5siP1zjVy5EjToUMHs3r1alNcXGz++te/mri4OPPss886Un/NmjXmvffeM1999ZV5//33Ta9evUx6enqjrqK70v4zY8YM06ZNG/POO++YXbt2maFDh5qUlBTzP//zP43uP6jDx8iRIy96vnr9+vWebQ4ePGgGDx5sIiMjTVxcnJk0aZI5ffp0o17v4YcfNjExMSYsLMz07NnTvP766w79Jt/bunWrGTRokImJiTFRUVGmT58+ns+mOOEnP/mJ6du3r2P1zlVTU2MmTZpk4uPjTVRUlMnMzDSfffaZI7ULCwtNenq6cblcJiIiwnTr1s387ne/8/nN+2KcDh+7du0y/fv3NzExMSY8PNxcc801ZsyYMeabb77xuXZubu4lP7PhlIbsY96YN2+e6dSpkwkLCzO9e/c2mzdvdqTP9evXX7TPkSNH+lz7UmOcm5vrc21jjHnsscdM586dTVhYmGnXrp0ZOHCg34KHMc6Gj/vvv98kJSWZsLAw06FDB3P//febAwcOOFL7rFWrVpkePXqY8PBwk5qaav74xz86Vnvt2rVGkikqKnKs5llut9uMHz/edOrUyURERJguXbqYX/ziF17f5uFS3nzzTdOlSxcTFhZmEhMTTXZ2tjl58mSjal1p/6mrqzPPPfecSUhIMOHh4WbgwIE+j1mIMQ7dbg0AAKABmvSltgAA4OpD+AAAAFYRPgAAgFWEDwAAYBXhAwAAWEX4AAAAVhE+AACAVYQPAABgFeEDAABYRfgAAABWET4AAIBVhA8AAGDV/wIaWQnAIWj8ZwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "X = np.fft.fft(x) # spectrum\n", - "f = np.fft.fftfreq(len(x), d=sample_distance)\n", - "plt.xlim(-10.5, 10.5)\n", - "plt.xticks(np.arange(-10, 10+1))\n", - "plt.scatter(f, np.abs(X)); # complex number -> magnitude" - ] - }, - { - "cell_type": "markdown", - "id": "f88c740a", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "We see peaks at $\\pm$2, 3, and 7 Hz.\n", - "If we add sine waves with respective frequencies, we obtain the same signal:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "05be9581", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.scatter(T, [\n", - " sin(2 * pi * 2 * t)\n", - " for t in T\n", - "]);" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1c670b5b", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.scatter(T, [\n", - " sin(2 * pi * 2 * t)\n", - " + sin(2 * pi * 3 * t)\n", - " for t in T\n", - "]);" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "46b64d31", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.scatter(T, [\n", - " sin(2 * pi * 2 * t)\n", - " + sin(2 * pi * 3 * t)\n", - " + sin(2 * pi * 7 * t)\n", - " for t in T\n", - "]);" - ] - }, - { - "cell_type": "markdown", - "id": "ebb9686a", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Intuitively, value of the spectrum means:\n", - "- real part $\\mathfrak{Re}(X[f])$ = \"how much cosine with frequency $f$ is contained in $x$?\"\n", - "- imaginary part $\\mathfrak{Im}(X[f])$ = \"how much sine with frequency $f$ is contained in $x$?\"" - ] - }, - { - "cell_type": "markdown", - "id": "074d0173", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Or in polar coordinates:\n", - "- magnitude $|X[f]|$ = \"how stronlgy is $f$ contained in $x$?\"\n", - "- Winkel $\\arg(X[f])$ = \"with what phase is $f$ contained in $x$?\"" - ] - }, - { - "cell_type": "markdown", - "id": "9174b1ee", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Formally:" - ] - }, - { - "cell_type": "markdown", - "id": "d0293fd2", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{prf:definition} Fourier Transformation\n", - "For a signal $x$ with $n$ samples, we call\n", - "\n", - "$$\n", - "\\begin{align*}\n", - "X[f] &\\mathrel{\\vcenter{:}}= \\sum_{m=0}^{n-1} x[m] \\exp\\!\\left(-j 2\\pi f \\frac{m}{n}\\right)\n", - "\\end{align*}\n", - "$$\n", - "\n", - "the (discrete) _spectrum_ of $x$.\n", - "The calculation by which we obtain it is called _Fourier Transformation_\n", - "\n", - "We also write $x[t] \\,\\circ\\!\\!-\\!\\!\\bullet\\, X[f]$\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "5db55997", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "```{note}\n", - "Engineers often use $j$ instead of $i$ and $\\exp(x)$ instead of $e^x$.\n", - "That's why you can use `1j` in Python to obtain $i$.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "8ba9001d", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "### Example" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "2fbba675", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "x = [\n", - " # Pure sine, 5 Hz\n", - " 3 * sin(2 * pi * 5 * t)\n", - " \n", - " # Pure cosine, 7 Hz\n", - " + 2 * cos(2 * pi * 7 * t)\n", - " \n", - " # Pi/4 phase shifted, 3 Hz\n", - " + sin(2 * pi * 3 * t + pi/4)\n", - " \n", - " for t in T\n", - "]\n", - "X = np.fft.fft(x)\n", - "f = np.fft.fftfreq(len(x), d=sample_distance)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "e66265d8", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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j0cTJkxwpN6///u/n7Bvdu7c2ZHakrR3717ddtttSkxMVGxsrC699FJ9/PHHjtSu63XF4/EoOzvbkfo1NTWaOnVq0P752GOPndHv1JyJ8vJyTZgwQe3bt1dsbKz69OnT4Nfz0+0/xhhNmzZNqampio2NVVZWlnbv3h1S/2d9QKmurtZNN92kMWPG1Hl7TU2NBg8erOrqan300UdatmyZli5dqmnTptX7sUpKSpSVlaWLL75YmzZtUm5urnbu3Kk777wzxGdx1HXXXacjR45o3bp1KigoUPfu3XXdddeptLQ05Np9+vTRvn37gpbf//73Sk9P1xVXXOFA99Krr76q22+/XSNHjtQnn3yiDz/8ULfeeqsjtSXp0UcfDep/3LhxjtU+5uGHH1ZaWprjda+++mr99a9/VWFhoV599VV9/fXX+u1vfxty3S+//FK1tbVatGiRdu7cqaeeekoLFy7Uv/7rvzrQ9VGn28fq4+WXX9YDDzyg6dOna+vWrerevbsGDhyo/fv3h1y7oqJC3bt31zPPPBNyreOtX79e2dnZ2rhxo9auXavDhw9rwIABqqiocKT+hRdeqJkzZ6qgoEAff/yxrrnmGt1www3auXOnI/WP2bJlixYtWqTLLrvM0bq//OUvg/bNDz74wJG6Bw8eVN++fdW8eXO99dZb+vzzz/XHP/5RrVq1cqT+li1bgvpeu3atJOmmm25ypP6sWbO0YMECzZ8/X1988YVmzZql2bNna968eY7U//3vf6+1a9fqL3/5iz777DMNGDBAWVlZ2rt3b71rnW7/mT17tubOnauFCxdq06ZNatGihQYOHKjKysqGPwFzjliyZInxer0njL/55psmIiLClJaWBsYWLFhg4uPjTVVVVb0eY9GiRSYpKcnU1NQExj799FMjyezevbvBvRtjzA8//GAkmQ0bNgTG/H6/kWTWrl0bUu26VFdXmzZt2phHH33UkXqHDx82F1xwgfnP//xPR+odr3379uapp54KS+1j3nzzTdO5c2ezc+dOI8ls27YtbI/1+uuvG4/HY6qrqx2vPXv2bJOenu543ZPtY/XRu3dvk52dHfi7pqbGpKWlmZycnBC7CybJrFq1ytGaP7d//34jyaxfvz5sj9GqVStH96fy8nLTqVMns3btWvOP//iPZvz48Y7UnT59uunevbsjtY43adIk069fv7DUrsv48eNNx44dTW1trSP1Bg8ebO66666gsRtvvNEMHz485No//fSTiYyMNGvWrAka79mzp/nDH/4QUu3j95/a2lqTkpJinnzyycDYoUOHTHR0tHnppZca/Dhn/RGU08nPz9ell16q5OTkwNjAgQPl9/vr/b+TqqoqRUVFBf0AUmxsrCSF/D+GxMRE/eIXv9ALL7ygiooKHTlyRIsWLVJSUpJ69eoVUu26vPHGG/rf//1fjRw50pF6W7du1d69exUREaEePXooNTVVgwYN0o4dOxypLx09NJ2YmKgePXroySefbPDHdHUpKyvT3Xffrb/85S8677zzHKtblwMHDmjFihXq06ePmjdv7nh9n8+nhIQEx+uGqrq6WgUFBcrKygqMRUREKCsrS/n5+U3YWf35fD5JCss819TUaOXKlaqoqFBmZqZjdbOzszV48OCg+XfK7t27lZaWpg4dOmj48OHas2ePI3XfeOMNXXHFFbrpppuUlJSkHj166LnnnnOk9vGqq6u1fPly3XXXXWf0I7Vnok+fPsrLy9OuXbskSZ988ok++OADDRo0KOTaR44cUU1NjWJiYoLGY2NjHTuCdUxRUZFKS0uDth2v16uMjIyQ9t1zPqCUlpYGhRNJgb/r+9HJNddco9LSUj355JOqrq7WwYMHNXnyZEnSvn37QurT4/Ho3Xff1bZt2xQXF6eYmBjNmTNHubm5jh3O/Lnnn39eAwcObNCPMtblm2++kXT08+h/+7d/05o1a9SqVSv90z/9kw4cOBBy/fvuu08rV67Ue++9p3vuuUdPPPGEHn744ZDrSkc/W73zzjt17733OvZxV10mTZqkFi1aKDExUXv27NHrr7/u+GN89dVXmjdvnu655x7Ha4fq73//u2pqaurcH534GLOx1NbWasKECerbt6+6devmWN3PPvtM559/vqKjo3Xvvfdq1apV6tq1qyO1V65cqa1btyonJ8eRej+XkZGhpUuXKjc3VwsWLFBRUZH+4R/+QeXl5SHX/uabb7RgwQJ16tRJb7/9tsaMGaP77rtPy5Ytc6DzYK+99poOHTrk2Ef2kjR58mTdcsst6ty5s5o3b64ePXpowoQJGj58eMi14+LilJmZqccee0wlJSWqqanR8uXLlZ+fH/L70fGO7Z+O77shHOVpMpMmTTKSTrl88cUXQfc52eHnu+++2wwYMCBorKKiwkgyb775Zr0fb8WKFSY5OdlERkaaqKgo8+CDD5rk5GQzc+bMkJ5LbW2tuf76682gQYPMBx98YAoKCsyYMWPMBRdcYEpKShydq+LiYhMREWH+67/+y7F/ixUrVhhJZtGiRYH7VlZWmtatW5uFCxc61vsxzz//vGnWrJmprKwMufenn37a9O3b1xw5csQYY0xRUdEZfcRT3/5/+OEHU1hYaN555x3Tt29f85vf/Oakh5IbMjfff/+96dixoxk1atQp+25o/VA/4tm7d6+RZD766KOg8Yceesj07t27wXXrojB+xHPvvfea9u3bm+LiYkfrVlVVmd27d5uPP/7YTJ482bRu3drs3Lkz5Lp79uwxSUlJ5pNPPgmMOfkRz/EOHjxo4uPjHfl4qnnz5iYzMzNobNy4ceaqq64KufbxBgwYYK677jpHa7700kvmwgsvNC+99JL59NNPzQsvvGASEhLM0qVLHan/1VdfmV/96ldGkomMjDRXXnmlGT58uOncuXNIdY/ffz788EMj6YT3optuusn87ne/a/DjNDvzKGOPiRMnnjbFdujQ4YxqpaSknHCWQFlZWeC2+j7erbfeqltvvVVlZWVq0aKFPB6P5syZc9J+zrT2unXrtGbNGh08eDDwk9bPPvus1q5dq2XLlgWO1DS0/s8tWbJEiYmJuv766095v/rUP5bYf/4/vujoaHXo0OGkh3tD+XfOyMjQkSNH9O233+oXv/hFSPXXrVun/Pz8E35r4oorrtDw4cNP+r+1+vbfunVrtW7dWpdccom6dOmitm3bauPGjXUexq9v7ZKSEl199dXq06ePFi9efMr7NaS+E1q3bq3IyMjA/ndMWVlZYF+03dixY7VmzRpt2LDBsaOPx0RFReniiy+WJPXq1UtbtmzR008/rUWLFoVUt6CgQPv371fPnj0DYzU1NdqwYYPmz5+vqqoqRUZGhvQYP9eyZUtdcskl+uqrr0KulZqaesJRpC5duujVV18NufbPfffdd3r33Xf1t7/9zdG6Dz30UOAoiiRdeuml+u6775STk6MRI0aEXL9jx45av369Kioq5Pf7lZqaqptvvtnxfffY/llWVqbU1NTAeFlZmS6//PIG13VlQGnTpo3atGnjSK3MzEzNmDFD+/fvV1JSkiRp7dq1io+PD2z4DXm8Y4e6/vznPysmJka//vWv61zvTGv/9NNPkhT0/ZZjf9fW1p70fvXt3RijJUuW6I477jij7z+caf1evXopOjpahYWF6tevnyTp8OHD+vbbb9W+fXtHev+57du3KyIiIvBvGkr9uXPn6vHHHw/8XVJSooEDB+rll19WRkZGyPXrcuzftKqqKuTae/fu1dVXX61evXppyZIlJ2xDodZ3SlRUlHr16qW8vLzA6ee1tbXKy8vT2LFjG7WX+jLGaNy4cVq1apXef/99paenh/0xa2trT7p91Ef//v312WefBY2NHDlSnTt31qRJkxwNJ5L0448/6uuvv9btt98ecq2+ffuecDr3rl27Tvqa0lBLlixRUlKSBg8e7Gjdn3766YT9MTIy8pSv6Q3RokULtWjRQgcPHtTbb7+t2bNnO1o/PT1dKSkpysvLCwQSv9+vTZs2hXZ2X4OPvbjEd999Z7Zt22YeeeQRc/7555tt27aZbdu2mfLycmOMMUeOHDHdunUzAwYMMNu3bze5ubmmTZs2ZsqUKQ16vHnz5pmCggJTWFho5s+fb2JjY83TTz8d8vP44YcfTGJiornxxhvN9u3bTWFhoXnwwQdN8+bNzfbt20Ouf8y77757yo9OQjF+/HhzwQUXmLffftt8+eWXZtSoUSYpKckcOHAgpLofffSReeqpp8z27dvN119/bZYvX27atGlj7rjjDoc6D3amH/GcqY0bN5p58+aZbdu2mW+//dbk5eWZPn36mI4dO57yI6oz8f3335uLL77Y9O/f33z//fdm3759gcUpp9vH6mPlypUmOjraLF261Hz++edm9OjRpmXLlkFn2TVUeXl5oDdJZs6cOWbbtm3mu+++C7n2mDFjjNfrNe+//37QHP/0008h1zbGmMmTJ5v169eboqIi8+mnn5rJkycbj8dj3nnnHUfqH8/Jj3gmTpxo3n//fVNUVGQ+/PBDk5WVZVq3bm32798fcu3NmzebZs2amRkzZpjdu3ebFStWmPPOO88sX77cgc6PqqmpMe3atTOTJk1yrOYxI0aMMBdccIFZs2aNKSoqMn/7299M69atzcMPP+xI/dzcXPPWW2+Zb775xrzzzjume/fuJiMjo0FnB55u/5k5c6Zp2bKlef31182nn35qbrjhBpOenm7+7//+r8H9n/UBZcSIEXV+fv7ee+8F1vn222/NoEGDTGxsrGndurWZOHGiOXz4cIMe7/bbbzcJCQkmKirKXHbZZeaFF15w6JkYs2XLFjNgwACTkJBg4uLizFVXXRX4noxT/vmf/9n06dPH0ZrHVFdXm4kTJ5qkpCQTFxdnsrKyzI4dO0KuW1BQYDIyMozX6zUxMTGmS5cu5oknngj5zf1knA4on376qbn66qtNQkKCiY6ONhdddJG59957zffffx9y7SVLlpz0OyROOZN9rD7mzZtn2rVrZ6Kiokzv3r3Nxo0bHenzvffeq7PPESNGhFz7ZHO8ZMmSkGsbY8xdd91l2rdvb6KiokybNm1M//79wxZOjHE2oNx8880mNTXVREVFmQsuuMDcfPPN5quvvnKktjHGrF692nTr1s1ER0ebzp07m8WLFztW2xhj3n77bSPJFBYWOlrXmKOXihg/frxp166diYmJMR06dDB/+MMf6n2Ji5N5+eWXTYcOHUxUVJRJSUkx2dnZ5tChQw2qdbr9p7a21kydOtUkJyeb6Oho079//5DnzGOMQ5esAwAAcMg5f5oxAACwDwEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANb5f/PeNLsv8UnOAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.xlim(-10.5, 10.5)\n", - "plt.xticks(np.arange(-10, 11))\n", - "plt.scatter(f, np.real(X)); # real part -> cosine" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "024c165a", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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11wjh8OhrKwsn9S89dZb1aJFCwUHBysuLk733XefDh065JPa+/fv17Bhw5SQkKCQkBC1bt1aU6dOVUlJiU/qV2Ybq4qXX35Zl112mYKDg5WYmKhNmzbVvElJ69ev14ABAxQfHy+Hw6H33nvPJ3VPmTFjhn73u98pNDRU0dHRuv3227Vnzx6f1J4/f746duzouSlZUlKSPvroI5/UrsjMmTPlcDg0ZswYn9R76qmnzto227Zt65PakvTDDz/o3nvvVdOmTRUSEqKrr75aX3zxhU9qV/TvisPh0KhRo2pcu6ysTFOmTPHaNp955pkLfmdRVRQVFWnMmDFq2bKlQkJC1L1792r/e36hbcgYoyeffFJxcXEKCQlRcnKy9u7dW+3eCTOnKSkp0cCBA5Wamlrh8rKyMvXv318lJSX6/PPPtWTJEi1evFhPPvlkldd16NAhJScnq02bNtq4caPS0tK0c+dODR06tIav4l9uueUWlZaWas2aNdqyZYs6deqkW265RXl5eTWu3b17d+Xm5npNDz30kBISEnTttdfWuP4777yj++67Tw888IC+/PJLffbZZ7rnnntqXPd0Tz/9tFf/Dz/8sE/rS9KECRMUHx/v05q9evXS22+/rT179uidd97Rt99+q3//93/3Se3du3ervLxcCxcu1M6dO/XCCy9owYIF+q//+i+f1L/QNlYVb731lsaNG6epU6dq69at6tSpk1JSUnT48OEa1z5+/Lg6deqkl19+uca1KrJu3TqNGjVKGzZsUHp6uk6ePKk+ffro+PHjNa7drFkzzZw5U1u2bNEXX3yhG2+8Ubfddpt27tzpg869bd68WQsXLlTHjh19Wveqq67y2jY//fRTn9Q9cuSIevTooYYNG+qjjz7Srl279Pzzz6tJkyY+qb9582avvtPT0yVJAwcOrHHt5557TvPnz9dLL72kr7/+Ws8995xmzZqlefPm1bj2KQ899JDS09P117/+VV999ZX69Omj5ORk/fDDD1WudaFtaNasWZo7d64WLFigjRs3qnHjxkpJSdGJEyeq17zBWRYtWmRcLtdZ8z/88EMTEBBg8vLyPPPmz59vwsLCTHFxcZXWsXDhQhMdHW3Kyso887Zv324kmb1791a791N+/PFHI8msX7/eM8/tdhtJJj09vcb1z1RSUmKioqLM008/XeNaJ0+eNJdeeqn5n//5Hx90VrGWLVuaF154wW/1jfn196Vt27Zm586dRpLZtm2bX9bz/vvvG4fDYUpKSvxSf9asWSYhIcGnNc+1jVVFt27dzKhRozyPy8rKTHx8vJkxY0YNu/Mmybz77rs+rXmmw4cPG0lm3bp1fqnfpEkTn29PRUVF5vLLLzfp6enm3/7t38yjjz7qk7pTp041nTp18kmtM02cONH07NnTL7Ur8uijj5rWrVub8vLyGtfq37+/efDBB73m3XHHHWbw4ME1rm2MMT///LMJDAw0K1eu9JrfpUsX88QTT9So9pnbUHl5uYmNjTWzZ8/2zDt69KhxOp3mzTffrNY62DNTBZmZmbr66qsVExPjmZeSkiK3213lv3qKi4sVFBTk9cVZISEhkuSTv0KaNm2qK6+8Um+88YaOHz+u0tJSLVy4UNHR0eratWuN65/pH//4h3766Sc98MADNa61detW/fDDDwoICFDnzp0VFxenfv36aceOHT7o9F9mzpyppk2bqnPnzpo9e3a1DxdWJD8/X8OHD9df//pXNWrUyGd1z1RQUKBly5ape/fuatiwoV/WUVhYqIiICL/Urq6SkhJt2bJFycnJnnkBAQFKTk5WZmZmLXZWPYWFhZLk8/e5rKxMy5cv1/Hjx5WUlOTT2qNGjVL//v29fga+snfvXsXHx6tVq1YaPHiwcnJyfFL3H//4h6699loNHDhQ0dHR6ty5s1599VWf1D5TSUmJli5dqgcffLBSX3B8Id27d9fq1av1zTffSJK+/PJLffrpp+rXr1+Na0tSaWmpysrKFBwc7DU/JCTEZ3vGTsnOzlZeXp7X747L5VJiYmK1t1/CTBXk5eV5BRlJnsdVPXRz4403Ki8vT7Nnz1ZJSYmOHDmiSZMmSZJyc3Nr3KvD4dAnn3yibdu2KTQ0VMHBwZozZ47S0tJ8tkv1dK+99ppSUlKq9YWeZ/ruu+8k/Xrs/I9//KNWrlypJk2a6IYbblBBQUGN60vSI488ouXLl2vt2rX6wx/+oGeffVYTJkzwSW1jjIYOHaqRI0f65JBbRSZOnKjGjRuradOmysnJ0fvvv++X9ezbt0/z5s3TH/7wB7/Ur65//vOfKisrq3B79MVh1IupvLxcY8aMUY8ePdShQwef1Pzqq690ySWXyOl0auTIkXr33XfVvn17n9SWpOXLl2vr1q2aMWOGz2qekpiYqMWLFystLU3z589Xdna2rr/+ehUVFdW49nfffaf58+fr8ssv16pVq5SamqpHHnlES5Ys8UHn3t577z0dPXrUZ6cOTJo0SYMGDVLbtm3VsGFDde7cWWPGjNHgwYN9Uj80NFRJSUl65plndOjQIZWVlWnp0qXKzMz0yWfS6U5toz7dfmu078gCEydONJLOO3399ddezznXLvDhw4ebPn36eM07fvy4kWQ+/PDDKq9v2bJlJiYmxgQGBpqgoCDz2GOPmZiYGDNz5swav57y8nJz6623mn79+plPP/3UbNmyxaSmpppLL73UHDp0yKfv14EDB0xAQID5v//7P5/8LJYtW2YkmYULF3qee+LECRMZGWkWLFjg095Pee2110yDBg3MiRMnalz/xRdfND169DClpaXGGGOys7MveJipqr3/+OOPZs+ePebjjz82PXr0MDfffPN5d2VX5705ePCgad26tRk2bNg561a3dk0PM/3www9Gkvn888+95j/++OOmW7du1a5bEfn5MNPIkSNNy5YtzYEDB3xWs7i42Ozdu9d88cUXZtKkSSYyMtLs3LnTJ7VzcnJMdHS0+fLLLz3zfHmY6UxHjhwxYWFhPjlM1rBhQ5OUlOQ17+GHHzbXXXddjWufqU+fPuaWW27xWb0333zTNGvWzLz55ptm+/bt5o033jARERFm8eLFPlvHvn37zO9//3sjyQQGBprf/e53ZvDgwaZt27Y1qnvmNvTZZ58ZSWd9Fg0cOND8x3/8R7XW0aDyscdO48ePv2AybtWqVaVqxcbGnnW1RH5+vmdZVdd3zz336J577lF+fr4aN24sh8OhOXPmnLefytZfs2aNVq5cqSNHjni+Zv2VV15Renq6lixZ4tkLVN36p1u0aJGaNm2qW2+99bzPq2ztU38FnP6XpNPpVKtWrc67u7kmP+vExESVlpZq//79uvLKK2tUf82aNcrMzDzru0euvfZaDR48uMK/Aqvae2RkpCIjI3XFFVeoXbt2at68uTZs2HDOQwlVrX/o0CH16tVL3bt311/+8pfzPs+X21hlRUZGKjAw0LP9nZKfn+/ZFm0wevRorVy5UuvXr/fJXs1TgoKC1KZNG0lS165dtXnzZr344otauHBhjWtv2bJFhw8fVpcuXTzzysrKtH79er300ksqLi5WYGBgjddzSnh4uK644grt27evxrXi4uLO2kPVrl07vfPOOzWufbrvv/9en3zyif7+97/7rObjjz/u2TsjSVdffbW+//57zZgxQ0OGDPHJOlq3bq1169bp+PHjcrvdiouL01133eXz7ffUNpqfn6+4uDjP/Pz8fF1zzTXVqlnvw0xUVJSioqJ8UispKUnTp0/X4cOHFR0dLUlKT09XWFiYZwOpzvpO7Wp7/fXXFRwcrJtuuumcYytb/+eff5Ykr3NyTj0uLy+vcf1TjDFatGiR7r///gues1HZ2l27dpXT6dSePXvUs2dPSdLJkye1f/9+tWzZ0me9ny4rK0sBAQGen2tN6s+dO1d/+tOfPI8PHTqklJQUvfXWW0pMTKxR7Yqc+nkWFxefc0xV6v/www/q1auXunbtqkWLFp31O1ST2r4SFBSkrl27avXq1Z5L9svLy7V69WqNHj36ovZSHcYYPfzww3r33XeVkZGhhIQEv66vvLz8vL8fVdG7d2999dVXXvMeeOABtW3bVhMnTvRpkJGkY8eO6dtvv9V9991X41o9evQ46xL4b7755rz/rlTHokWLFB0drf79+/us5s8//3zWthgYGHjef8+rq3HjxmrcuLGOHDmiVatWadasWT6tn5CQoNjYWK1evdoTXtxutzZu3Fj9Kx2rv+Oo/vn+++/Ntm3bzLRp08wll1xitm3bZrZt22aKioqMMcaUlpaaDh06mD59+pisrCyTlpZmoqKizOTJk6u1vnnz5pktW7aYPXv2mJdeesmEhISYF1980Sev5ccffzRNmzY1d9xxh8nKyjJ79uwxjz32mGnYsKHJysryyTqMMeaTTz457+Gb6nr00UfNpZdealatWmV2795thg0bZqKjo01BQUGNa3/++efmhRdeMFlZWebbb781S5cuNVFRUeb+++/3Qednq8xhpsrasGGDmTdvntm2bZvZv3+/Wb16tenevbtp3br1eQ+RVdbBgwdNmzZtTO/evc3BgwdNbm6uZ/KFC21jVbF8+XLjdDrN4sWLza5du8yIESNMeHi419WG1VVUVOTpTZKZM2eO2bZtm/n+++9rXNsYY1JTU43L5TIZGRle7/HPP/9c49qTJk0y69atM9nZ2Wb79u1m0qRJxuFwmI8//tgHnVfMl4eZxo8fbzIyMkx2drb57LPPTHJysomMjDSHDx+uce1NmzaZBg0amOnTp5u9e/eaZcuWmUaNGpmlS5f6oPNflZWVmRYtWpiJEyf6rKYxxgwZMsRceumlZuXKlSY7O9v8/e9/N5GRkWbChAk+W0daWpr56KOPzHfffWc+/vhj06lTJ5OYmFitKyUvtA3NnDnThIeHm/fff99s377d3HbbbSYhIcH88ssv1eqdMHOaIUOGVHi8f+3atZ4x+/fvN/369TMhISEmMjLSjB8/3pw8ebJa67vvvvtMRESECQoKMh07djRvvPGGj17JrzZv3mz69OljIiIiTGhoqLnuuus85/b4yt133226d+/u05rG/Hqp9/jx4010dLQJDQ01ycnJZseOHT6pvWXLFpOYmGhcLpcJDg427dq1M88++6xPwkBFfBlmtm/fbnr16mUiIiKM0+k0l112mRk5cqQ5ePBgzRs1v57LUtE24Ku/eyqzjVXFvHnzTIsWLUxQUJDp1q2b2bBhg0/6XLt2bYV9DhkyxCf1z/UeL1q0qMa1H3zwQdOyZUsTFBRkoqKiTO/evf0aZIzxbZi56667TFxcnAkKCjKXXnqpueuuu8y+fft8UtsYY1asWGE6dOhgnE6nadu2rfnLX/7is9rGGLNq1SojyezZs8endd1ut3n00UdNixYtTHBwsGnVqpV54oknqnxbkPN56623TKtWrUxQUJCJjY01o0aNMkePHq1WrQttQ+Xl5WbKlCkmJibGOJ1O07t37xq9Zw5jfHj7QAAAgIuMS7MBAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsNr/A0bA3UyJIZXgAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.xlim(-10.5, 10.5)\n", - "plt.xticks(np.arange(-10, 11))\n", - "plt.scatter(f, np.imag(X)); # imaginary part -> sine" - ] - }, - { - "cell_type": "markdown", - "id": "115fbb27", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "We can undo the Fourier transformation using the so-called _inverse transformation_:" - ] - }, - { - "cell_type": "markdown", - "id": "624b22e7", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "\\begin{align*}\n", - "x[t] = \\frac{1}{n} \\sum_{m=0}^{n-1} X[m] \\exp\\!\\left(j 2\\pi \\frac{m}{n} t\\right)\n", - "\\end{align*}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "40a18e0a", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{note}\n", - "The only difference is a factor of $\\frac{1}{n}$ and the sign in $\\exp$.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "9f70ff44", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "The Fourier transformation is _linear_:" - ] - }, - { - "cell_type": "markdown", - "id": "26d84954", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "a \\cdot x[t] + b \\cdot y[t] \\,\\circ\\!\\!-\\!\\!\\bullet\\, a \\cdot X[f] + b \\cdot Y[f] \\quad (a, b \\in \\mathbb{C})\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "d4df26ce", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [] - }, - { - "cell_type": "markdown", - "id": "b7c974d1", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "x[a \\cdot t] \\,\\circ\\!\\!-\\!\\!\\bullet\\, \\frac{1}{|a|}X\\left[\\frac{f}{a}\\right]\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "14c90553", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Convolution" - ] - }, - { - "cell_type": "markdown", - "id": "de295080", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "The so-called *convolution* is an operation that combines two signals.\n", - "It looks like this:" - ] - }, - { - "cell_type": "markdown", - "id": "4537b596", - "metadata": {}, - "source": [ - "```{figure} img/convolution.gif\n", - "---\n", - "name: fig:convolution.en\n", - "---\n", - "Convolution\n", - "([source](https://commons.wikimedia.org/wiki/File:Convolution_of_spiky_function_with_box.gif), [cc](https://creativecommons.org/licenses/by-sa/3.0/deed.en))\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "c46c64df", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Formally:" - ] - }, - { - "cell_type": "markdown", - "id": "aab54caa", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{prf:definition} Convolution\n", - "For signals $x$ and $y$, we call\n", - "\n", - "$$\n", - "\\begin{align*}\n", - "(x * y)[t] &\\mathrel{\\vcenter{:}}= \\sum_{m=-\\infty}^\\infty x[m] \\cdot y[t - m]\n", - "\\end{align*}\n", - "$$\n", - "\n", - "the _discrete convolution_ of $x$ with $y$.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "fc676901", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Intuitively:\n", - "- $y$ is mirrored and shifted by $t$\n", - "- Then, $(x * y)[t]$ equals the area where $x$ and $y$ overlap." - ] - }, - { - "cell_type": "markdown", - "id": "24f005b4", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "### Example" - ] - }, - { - "cell_type": "markdown", - "id": "94cdfcf2", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Here is a simple signal $x$:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "bb52d60c", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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7RtSud8IIhLRlZGEhASlpaWFjH3961/XN77xjeB4Xl6e7rnnHpWUlEiSCgsLtWrVKr3xxhtav369ysvLdebMGf3zP//zOE0BADCZ1qWlqPTpDL36i/Mhi1ndLoe2b0jVurQUg90hFo37HVg7OjoUF/eHCy5ZWVk6ePCgXn75Zb300kuaP3++Dh8+fEOoAQDEjnVpKVqb6uYOrBgXNsuybvkvg/v9frlcLvl8PjmdTtPtAACAURjt+zc/lAcAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAqIjCSGlpqdLT0+V0OuV0OpWZman3338/bH1ZWZlsNlvI5nA4xtw0AACYOqZFUjx79mzt3LlT8+fPl2VZ+pd/+Rdt3LhRzc3NWrx48bD7OJ1OXbhwIfjYZrONrWMAADClRBRGNmzYEPL47/7u71RaWqrGxsawYcRms8ntdkffIQAAmNKiXjMyODio8vJy9ff3KzMzM2xdX1+f5syZI4/Ho40bN+rcuXM3/duBQEB+vz9kAwAAU1PEYaS1tVV33nmn7Ha7nnvuOVVUVCg1NXXY2gULFujtt9/WkSNHdODAAQ0NDSkrK0uXL18e8RglJSVyuVzBzePxRNomAACIETbLsqxIdvj888/V0dEhn8+nn//853rrrbdUW1sbNpB82bVr17Ro0SLl5uZqx44dYesCgYACgUDwsd/vl8fjkc/nk9PpjKRdAABgiN/vl8vluun7d0RrRiRpxowZmjdvniRp2bJlOn36tHbv3q19+/bddN/p06fr/vvv18WLF0ess9vtstvtkbYGAABi0JjvMzI0NBRyFWMkg4ODam1tVUpKylgPCwAApoiIrowUFxfriSee0L333qve3l4dPHhQNTU1On78uCQpLy9P99xzj0pKSiRJr732mlasWKF58+bp6tWrev3113Xp0iVt3bp1/GcCAABiUkRhpKenR3l5eerq6pLL5VJ6erqOHz+utWvXSpI6OjoUF/eHiy2f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AKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAqIjDSF1dnTZs2KBZs2bJZrPp8OHDI9bX1NTIZrPdsHm93mh7BgAAU0jEYaS/v1/33Xef9u7dG9F+Fy5cUFdXV3BLSkqK9NAAAGAKmhbpDk888YSeeOKJiA+UlJSku+66K+L9AADA1DZpa0aWLl2qlJQUrV27Vh988MGItYFAQH6/P2QDAABT04SHkZSUFL355pt677339N5778nj8Wj16tVqamoKu09JSYlcLldw83g8E90mAAAwxGZZlhX1zjabKioqlJOTE9F+q1at0r333quf/exnwz4fCAQUCASCj/1+vzwej3w+n5xOZ7TtAgCASeT3++VyuW76/h3xmpHxsHz5cp08eTLs83a7XXa7fRI7AgAAphi5z0hLS4tSUlJMHBoAANxiIr4y0tfXp4sXLwYft7e3q6WlRYmJibr33ntVXFys3//+9/rXf/1XSdJPf/pTzZ07V4sXL9bAwIDeeustVVdX61e/+tX4zQIAAMSsiMPImTNn9MgjjwQf//CHP5Qkbd68WWVlZerq6lJHR0fw+c8//1x//dd/rd///vf62te+pvT0dP36178O+RsAAOD2NaYFrJNltAtgAADArWO079/8Ng0AADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjCKMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAMIowAgAAjJpmugFTBocsnWq/op7eASUlOLR8bqLi42ym2wIA4LYT8ZWRuro6bdiwQbNmzZLNZtPhw4dvuk9NTY0yMjJkt9s1b948lZWVRdHq+Kls69LKXdXK3d+owvIW5e5v1Mpd1aps6zLaFwAAt6OI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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x = [1, 2, 3, 4, 5]\n", - "plt.scatter(range(len(x)), x);" - ] - }, - { - "cell_type": "markdown", - "id": "c08b749f", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "We convolve $x$ with a signal that has one peak, and is zero everywhere else:" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "fe64e534", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdGElEQVR4nO3df5BV9X3/8dfuKrvYwEZDWUDXYtIfSlAQkB00aWu7FZuUjjP9YYwJhCZ24qBFd5oKUSDWyKqpDq2gVEZrZlJHkrS2SbVk7KbG2uBgIHTC+GtSNTLqLjI2uwQrpLv3+4d10/0KykXWz1328Zg5f3g85973x5PMfc65P7auUqlUAgBQSH3pAQCA0U2MAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUceUHuBQDAwM5MUXX8y4ceNSV1dXehwA4BBUKpXs2bMnU6ZMSX39we9/jIgYefHFF9Pa2lp6DADgMOzcuTMnnXTSQf/9iIiRcePGJXl9MePHjy88DQBwKPr6+tLa2jr4On4wIyJG3nhrZvz48WIEAEaYt/uIhQ+wAgBFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChqRPzoGYwk/QOVbHn2leza81omjmvK3FNOSEO9v6kEcDBV3xl5+OGHs2DBgkyZMiV1dXX5h3/4h7c956GHHsqsWbPS2NiYX/zFX8zdd999GKNC7du046V86MZv56INj2bpvdtz0YZH86Ebv51NO14qPRpAzao6Rvbu3ZsZM2Zk3bp1h3T8s88+m49+9KM599xzs3379lxxxRX5zGc+k29961tVDwu1bNOOl3LpV7blpd7Xhuzv7n0tl35lmyABOIi6SqVSOeyT6+py33335YILLjjoMVdddVXuv//+7NixY3Dfxz72sfz4xz/Opk2bDul5+vr60tzcnN7eXn+bhprUP1DJh2789ptC5A11SSY1N+WRq37DWzbAqHGor9/D/gHWzZs3p729fci++fPnZ/PmzQc9Z9++fenr6xuyQS3b8uwrBw2RJKkkean3tWx59pV3byiAEWLYY6S7uzstLS1D9rW0tKSvry///d//fcBzOjs709zcPLi1trYO95jwjuzac/AQOZzjAEaTmvxq7/Lly9Pb2zu47dy5s/RI8JYmjms6oscBjCbD/tXeSZMmpaenZ8i+np6ejB8/PmPHjj3gOY2NjWlsbBzu0eCImXvKCZnc3JTu3tdyoA9hvfGZkbmnnPBujwZQ84b9zsi8efPS1dU1ZN+DDz6YefPmDfdTw7umob4uqxZMS/J6ePxfb/zzqgXTfHgV4ACqjpGf/OQn2b59e7Zv357k9a/ubt++Pc8//3yS199iWbhw4eDxn/3sZ/PMM8/kz/7sz/Lkk0/mtttuy1e/+tVceeWVR2YFUCPOnz45t39iViY1D30rZlJzU27/xKycP31yockAalvVX+196KGHcu65575p/6JFi3L33XfnU5/6VJ577rk89NBDQ8658sor8/jjj+ekk07KihUr8qlPfeqQn9NXexlJ/AIrwOsO9fX7Hf3OyLtFjADAyFMzvzMCAPBWxAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAog4rRtatW5epU6emqakpbW1t2bJly1sev2bNmvzKr/xKxo4dm9bW1lx55ZV57bXXDmtgAODoUnWMbNy4MR0dHVm1alW2bduWGTNmZP78+dm1a9cBj7/nnnuybNmyrFq1Kk888UTuvPPObNy4MZ///Off8fAAwMhXdYzccsstueSSS7J48eJMmzYt69evz3HHHZe77rrrgMd/97vfzTnnnJOPf/zjmTp1as4777xcdNFFb3s3BQAYHaqKkf3792fr1q1pb2//2QPU16e9vT2bN28+4Dlnn312tm7dOhgfzzzzTB544IF85CMfOejz7Nu3L319fUM2AODodEw1B+/evTv9/f1paWkZsr+lpSVPPvnkAc/5+Mc/nt27d+dDH/pQKpVK/ud//ief/exn3/Jtms7Ozlx77bXVjAYAjFDD/m2ahx56KKtXr85tt92Wbdu25e///u9z//3357rrrjvoOcuX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KD3KqPXCCy/kE5/4RN73vvdl7NixOf300/O9732v9FijVn9/f1asWJFTTjklY8eOzQc+8IFcd911b/v3Vzi4URsjGzduTEdHR1atWpVt27ZlxowZmT9/fnbt2lV6tFHnO9/5TpYsWZJHH300Dz74YH7605/mvPPOy969e0uPNuo99thj+eu//uucccYZpUcZtf7rv/4r55xzTo499tj88z//cx5//PHcfPPNOf7440uPNmrdeOONuf3227N27do88cQTufHGG3PTTTfl1ltvLT3aiDVqv9rb1taWs846K2vXrk3y+t+/aW1tzeWXX55ly5YVnm50e/nllzNx4sR85zvfya/+6q+WHmfU+slPfpJZs2bltttuyxe/+MXMnDkza9asKT3WqLNs2bL8+7//e/7t3/6t9Cj8r9/5nd9JS0tL7rzzzsF9v/d7v5exY8fmK1/5SsHJRq5ReWdk//792bp1a9rb2wf31dfXp729PZs3by44GUnS29ubJDnhhBMKTzK6LVmyJB/96EeH/P+Ed983vvGNzJkzJ3/wB3+QiRMn5swzz8yGDRtKjzWqnX322enq6srTTz+dJPmP//iPPPLII/nt3/7twpONXCPiD+Udabt3705/f39aWlqG7G9pacmTTz5ZaCqS1+9QXXHFFTnnnHMyffr00uOMWvfee2+2bduWxx57rPQoo94zzzyT22+/PR0dHfn85z+fxx57LH/yJ3+SMWPGZNGiRaXHG5WWLVuWvr6+nHrqqWloaEh/f3+uv/76XHzxxaVHG7FGZYxQu5YsWZIdO3bkkUceKT3KqLVz584sXbo0Dz74YJqamkqPM+oNDAxkzpw5Wb16dZLkzDPPzI4dO7J+/XoxUshXv/rV/O3f/m3uueeefPCDH8z27dtzxRVXZMqUKa7JYRqVMTJhwoQ0NDSkp6dnyP6enp5MmjSp0FRcdtll+ad/+qc8/PDDOemkk0qPM2pt3bo1u3btyqxZswb39ff35+GHH87atWuzb9++NDQ0FJxwdJk8eXKmTZs2ZN9pp52Wv/u7vys0EZ/73OeybNmyfOxjH0uSnH766fnRj36Uzs5OMXKYRuVnRsaMGZPZs2enq6trcN/AwEC6uroyb968gpONTpVKJZdddlnuu+++fPvb384pp5xSeqRR7Td/8zfzgx/8INu3bx/c5syZk4svvjjbt28XIu+yc845501fdX/66afzC7/wC4Um4tVXX019/dCXz4aGhgwMDBSaaOQblXdGkqSjoyOLFi3KnDlzMnfu3KxZsyZ79+7N4sWLS4826ixZsiT33HNP/vEf/zHjxo1Ld3d3kqS5uTljx44tPN3oM27cuDd9Xufnfu7n8r73vc/neAq48sorc/bZZ2f16tX5wz/8w2zZsiV33HFH7rjjjtKjjVoLFizI9ddfn5NPPjkf/OAH8/3vfz+33HJL/uiP/qj0aCNXZRS79dZbKyeffHJlzJgxlblz51YeffTR0iONSkkOuP3N3/xN6dH4X7/2a79WWbp0aekxRq1vfvOblenTp1caGxsrp556auWOO+4oPdKo1tfXV1m6dGnl5JNPrjQ1NVXe//73V66++urKvn37So82Yo3a3xkBAGrDqPzMCABQO8QIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUf8Prv9DxkdFrisAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "y = [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]\n", - "plt.scatter(range(len(y)), y);" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "7de101ef", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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5cr4wAc+EI8++mjeY+XqmmuuiUOHDsV3v/vdiIj4t3/7t3jmmWfixhtvzHmyytHb2xsDAwNTnkfFYjHWrVvndfdNSqVSVFVVxTve8Y68R5lX8/4jZKn98Ic/jLGxsVi1atWU5atWrYoXXnghp6kqx/j4eOzYsSOuvfbaaG1tzXucXD3++OPR3d0dx44dy3uUivEf//Ef0dnZGXfccUf8+Z//eRw7diz+5E/+JJYuXRpbt27Ne7xcfPrTn46hoaF4//vfHzU1NTE2Nhaf/exnY/PmzXmPVjEGBgYiIqZ93Z3424VuZGQk7rzzzrjlllsW/Q+T/awFHxa8tfb29jhx4kQ888wzeY+Sq76+vti+fXscPHgwamtr8x6nYoyPj8fatWvjc5/7XEREfOADH4gTJ07EQw89dMGGxd///d/HV77ylXjsscfi8ssvj56entixY0esXr36gt0nlOeNN96Ij33sY5FlWXR2duY9zrxb8IdC3vWud0VNTU289tprU5a/9tpr0dDQkNNUleH222+PJ554Ip566qk5/an6heD48eMxODgYa9asiSVLlsSSJUvi8OHDcd9998WSJUtibGws7xFz0djYGC0tLVOW/cqv/Eq88sorOU2Uvz/7sz+LT3/60/EHf/AHccUVV8Qf/uEfxqc+9ano6OjIe7SKMfHa6nX3bBNR8YMf/CAOHjx4wX1aEbEIwmLp0qVx9dVXx6FDhyaXjY+Px6FDh2L9+vU5TpafLMvi9ttvj3379sWTTz4Zzc3NeY+Uu+uvvz6ef/756OnpmbytXbs2Nm/eHD09PVFTU5P3iLm49tprz/oq8ne/+914z3vek9NE+fvJT34S1dVTXxprampifHw8p4kqT3NzczQ0NEx53R0aGornnnvugn3djfi/qHjppZfin//5n2PFihV5j5SLRXEo5I477oitW7fG2rVro62tLb7whS/E6dOn47bbbst7tFy0t7fHY489Ft/85jejrq5u8phnsViMZcuW5TxdPurq6s46x+Siiy6KFStWXNDnnnzqU5+Ka665Jj73uc/Fxz72sejq6opHHnkkHnnkkbxHy82mTZvis5/9bFxyySVx+eWXx7/+67/GvffeGx//+MfzHm1evf766/G9731v8n5vb2/09PREfX19XHLJJbFjx47467/+63jf+94Xzc3Ncdddd8Xq1avj5ptvzm/oOfZW+6SxsTF+7/d+L7q7u+OJJ56IsbGxydfe+vr6WLp0aV5jz7+8v5aSyv33359dcskl2dKlS7O2trbs6NGjeY+Um4iY9valL30p79Eqiq+bnrF///6stbU1KxQK2fvf//7skUceyXukXA0NDWXbt2/PLrnkkqy2tjZ773vfm/3FX/xFNjo6mvdo8+qpp56a9nVk69atWZad+crpXXfdla1atSorFArZ9ddfn7344ov5Dj3H3mqf9Pb2zvja+9RTT+U9+rzys+kAQDIL/hwLAKByCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBk/j+p6GR7Hr8+IgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "z = np.convolve(x, y)\n", - "plt.scatter(range(len(z)), z);" - ] - }, - { - "cell_type": "markdown", - "id": "a0c4af49", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "And with two peaks:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "4a3d9da1", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdYUlEQVR4nO3dfZCV9X338Q+7yi42sNFQFtS1mExbJSgoyA6atPXuVmxSOs70wRgTCE3sxEGL7jQVokis0fWhMrSCUhltMpM6kqR1mlRLxm5KrA0ZDIROqE+TqoFRd5Gx2SVYId099x/Wzb23oBwEf2fPvl4z5w8uruuc728u2POe6zzsmEqlUgkAQCENpQcAAEY3MQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEUdU3qAQzE4OJgXX3wx48ePz5gxY0qPAwAcgkqlkj179uTEE09MQ8PBr3+MiBh58cUX09bWVnoMAOAw7Ny5MyeffPJB/35ExMj48eOTvL6YCRMmFJ4GADgU/f39aWtrG3oeP5gRESNvvDQzYcIEMQIAI8zbvcXCG1gBgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFDUivvSM+jcwWMnm517Jrj2vZdL45sw59YQ0Nvg9RABHU6387K06Rh599NHcfvvt2bJlS1566aU8+OCDueiii97ymI0bN6azszP/8R//kba2tlx33XX51Kc+dZgjU282bH8pN3zzibzU99rQtiktzVkxf1ounD6l4GQA9auWfvZW/TLN3r17M2PGjKxZs+aQ9n/uuefy0Y9+NOeff362bduWq666Kp/5zGfyrW99q+phqT8btr+Uy7+yddh/hiTp6Xstl39lazZsf6nQZAD1q9Z+9o6pVCqVwz54zJi3vTJyzTXX5KGHHsr27duHtn3sYx/LT37yk2zYsOGQHqe/vz8tLS3p6+vzu2nqyMBgJR+69dtv+s/whjFJJrc057Fr/o+XbACOkHfzZ++hPn8f9Tewbtq0KR0dHcO2zZs3L5s2bTroMfv27Ut/f/+wG/Vn83OvHPQ/Q5JUkrzU91o2P/fKuzcUQJ2rxZ+9Rz1Genp60traOmxba2tr+vv789///d8HPKarqystLS1Dt7a2tqM9JgXs2nPw/wyHsx8Ab68Wf/bW5Ed7ly1blr6+vqHbzp07S4/EUTBpfPMR3Q+At1eLP3uP+kd7J0+enN7e3mHbent7M2HChIwbN+6AxzQ1NaWpqeloj0Zhc049IVNamtPT91oO9MalN163nHPqCe/2aAB1qxZ/9h71KyNz585Nd3f3sG2PPPJI5s6de7QfmhrX2DAmK+ZPS/L6P/7/1xt/XjF/mjevAhxBtfizt+oY+elPf5pt27Zl27ZtSV7/6O62bduyY8eOJK+/xLJgwYKh/T/72c/m2WefzZ/92Z/lqaeeyl133ZWvfvWrufrqq4/MChjRLpw+JXd/4uxMbhl+OXByS3Pu/sTZvmcE4CiotZ+9VX+0d+PGjTn//PPftH3hwoX50pe+lE996lN5/vnns3HjxmHHXH311XniiSdy8sknZ/ny5VV96ZmP9ta/WvkWQIDR5Gj/7D3U5+939D0j7xYxAgAjT818zwgAwFsRIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKOqwYWbNmTaZOnZrm5ua0t7dn8+bNb7n/qlWr8qu/+qsZN25c2tracvXVV+e11147rIEBgPpSdYysX78+nZ2dWbFiRbZu3ZoZM2Zk3rx52bVr1wH3v//++7N06dKsWLEiTz75ZO69996sX78+n//859/x8ADAyFd1jKxcuTKXXXZZFi1alGnTpmXt2rU57rjjct999x1w/+9+97s577zz8vGPfzxTp07NBRdckEsuueRtr6YAAKNDVTGyf//+bNmyJR0dHT+/g4aGdHR0ZNOmTQc85txzz82WLVuG4uPZZ5/Nww8/nI985CMHfZx9+/alv79/2A0AqE/HVLPz7t27MzAwkNbW1mHbW1tb89RTTx3wmI9//OPZvXt3PvShD6VSqeR//ud/8tnPfvYtX6bp6urKDTfcUM1oAMAIddQ/TbNx48bcfPPNueuuu7J169b8/d//fR566KHceOONBz1m2bJl6evrG7rt3LnzaI8JABRS1ZWRiRMnprGxMb29vcO29/b2ZvLkyQc8Zvny5fnkJz+Zz3zmM0mSM844I3v37s0f//Ef59prr01Dw5t7qKmpKU1NTdWMBgCMUFVdGRk7dmxmzZqV7u7uoW2Dg4Pp7u7O3LlzD3jMq6+++qbgaGxsTJJUKpVq5wUA6kxVV0aSpLOzMwsXLszs2bMzZ86crFq1Knv37s2iRYuSJAsWLMhJJ52Urq6uJMn8+fOzcuXKnHXWWWlvb8+PfvSjLF++PPPnzx+KEgBg9Ko6Ri6++OK8/PLLuf7669PT05OZM2dmw4YNQ29q3bFjx7ArIdddd13GjBmT6667Li+88EJ+8Rd/MfPnz89NN9105FYBAIxYYyoj4LWS/v7+tLS0pK+vLxMmTCg9DgBwCA71+dvvpgEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQ1GHFyJo1azJ16tQ0Nzenvb09mzdvfsv9f/KTn2Tx4sWZMmVKmpqa8iu/8it5+OGHD2tgAKC+HFPtAevXr09nZ2fWrl2b9vb2rFq1KvPmzcvTTz+dSZMmvWn//fv357d+67cyadKkfP3rX89JJ52UH//4x3nve997JOYHAEa4MZVKpVLNAe3t7TnnnHOyevXqJMng4GDa2tpy5ZVXZunSpW/af+3atbn99tvz1FNP5dhjjz2sIfv7+9PS0pK+vr5MmDDhsO4DAHh3Herzd1Uv0+zfvz9btmxJR0fHz++goSEdHR3ZtGnTAY/5xje+kblz52bx4sVpbW3N9OnTc/PNN2dgYOCgj7Nv37709/cPuwEA9amqGNm9e3cGBgbS2to6bHtra2t6enoOeMyzzz6br3/96xkYGMjDDz+c5cuX54477sgXv/jFgz5OV1dXWlpahm5tbW3VjAkAjCBH/dM0g4ODmTRpUu65557MmjUrF198ca699tqsXbv2oMcsW7YsfX19Q7edO3ce7TEBgEKqegPrxIkT09jYmN7e3mHbe3t7M3ny5AMeM2XKlBx77LFpbGwc2nb66aenp6cn+/fvz9ixY990TFNTU5qamqoZDQAYoaq6MjJ27NjMmjUr3d3dQ9sGBwfT3d2duXPnHvCY8847Lz/60Y8yODg4tO2ZZ57JlClTDhgiAMDoUvXLNJ2dnVm3bl2+/OUv58knn8zll1+evXv3ZtGiRUmSBQsWZNmyZUP7X3755XnllVeyZMmSPPPMM3nooYdy8803Z/HixUduFQDAiFX194xcfPHFefnll3P99denp6cnM2fOzIYNG4be1Lpjx440NPy8cdra2vKtb30rV199dc4888ycdNJJWbJkSa655pojtwoAYMSq+ntGSvA9IwAw8hyV7xkBADjSxAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABR1WDGyZs2aTJ06Nc3NzWlvb8/mzZsP6bgHHnggY8aMyUUXXXQ4DwsA1KGqY2T9+vXp7OzMihUrsnXr1syYMSPz5s3Lrl273vK4559/Pn/6p3+aD3/4w4c9LABQf6qOkZUrV+ayyy7LokWLMm3atKxduzbHHXdc7rvvvoMeMzAwkEsvvTQ33HBD3v/+97+jgQGA+lJVjOzfvz9btmxJR0fHz++goSEdHR3ZtGnTQY/78z//80yaNCmf/vSnD+lx9u3bl/7+/mE3AKA+VRUju3fvzsDAQFpbW4dtb21tTU9PzwGPeeyxx3Lvvfdm3bp1h/w4XV1daWlpGbq1tbVVMyYAMIIc1U/T7NmzJ5/85Cezbt26TJw48ZCPW7ZsWfr6+oZuO3fuPIpTAgAlHVPNzhMnTkxjY2N6e3uHbe/t7c3kyZPftP9//ud/5vnnn8/8+fOHtg0ODr7+wMcck6effjof+MAH3nRcU1NTmpqaqhkNABihqroyMnbs2MyaNSvd3d1D2wYHB9Pd3Z25c+e+af/TTjstP/zhD7Nt27ah2+/+7u/m/PPPz7Zt27z8AgBUd2UkSTo7O7Nw4cLMnj07c+bMyapVq7J3794sWrQoSbJgwYKcdNJJ6erqSnNzc6ZPnz7s+Pe+971J8qbtAMDoVHWMXHzxxXn55Zdz/fXXp6enJzNnzsyGDRuG3tS6Y8eONDT4YlcA4NCMqVQqldJDvJ3+/v60tLSkr68vEyZMKD0OAHAIDvX52yUMAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEUdVoysWbMmU6dOTXNzc9rb27N58+aD7rtu3bp8+MMfzvHHH5/jjz8+HR0db7k/ADC6VB0j69evT2dnZ1asWJGtW7dmxowZmTdvXnbt2nXA/Tdu3JhLLrkk//Iv/5JNmzalra0tF1xwQV544YV3PDwAMPKNqVQqlWoOaG9vzznnnJPVq1cnSQYHB9PW1pYrr7wyS5cufdvjBwYGcvzxx2f16tVZsGDBIT1mf39/Wlpa0tfXlwkTJlQzLgBQyKE+f1d1ZWT//v3ZsmVLOjo6fn4HDQ3p6OjIpk2bDuk+Xn311fzsZz/LCSeccNB99u3bl/7+/mE3AKA+VRUju3fvzsDAQFpbW4dtb21tTU9PzyHdxzXXXJMTTzxxWND8/7q6utLS0jJ0a2trq2ZMAGAEeVc/TXPLLbfkgQceyIMPPpjm5uaD7rds2bL09fUN3Xbu3PkuTgkAvJuOqWbniRMnprGxMb29vcO29/b2ZvLkyW957F/8xV/klltuyT//8z/nzDPPfMt9m5qa0tTUVM1oAMAIVdWVkbFjx2bWrFnp7u4e2jY4OJju7u7MnTv3oMfddtttufHGG7Nhw4bMnj378KcFAOpOVVdGkqSzszMLFy7M7NmzM2fOnKxatSp79+7NokWLkiQLFizISSedlK6uriTJrbfemuuvvz73339/pk6dOvTekve85z15z3vecwSXAgCMRFXHyMUXX5yXX345119/fXp6ejJz5sxs2LBh6E2tO3bsSEPDzy+43H333dm/f39+//d/f9j9rFixIl/4whfe2fQAwIhX9feMlOB7RgBg5Dkq3zMCAHCkiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUWIEAChKjAAARYkRAKAoMQIAFCVGAICixAgAUJQYAQCKEiMAQFFiBAAoSowAAEWJEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKLECABQlBgBAIoSIwBAUceUHqCUgcFKNj/3SnbteS2TxjdnzqknpLFhTOmxqlYv66gn9XJOrKO2WEdtqZd11IrDipE1a9bk9ttvT09PT2bMmJE777wzc+bMOej+X/va17J8+fI8//zz+eVf/uXceuut+chHPnLYQ79TG7a/lBu++URe6nttaNuUluasmD8tF06fUmyuatXLOupJvZwT66gt1lFb6mUdtaTql2nWr1+fzs7OrFixIlu3bs2MGTMyb9687Nq164D7f/e7380ll1yST3/60/nBD36Qiy66KBdddFG2b9/+joc/HBu2v5TLv7J12D+iJOnpey2Xf2VrNmx/qchc1aqXddSTejkn1lFbrKO21Ms6ak3VMbJy5cpcdtllWbRoUaZNm5a1a9fmuOOOy3333XfA/f/yL/8yF154YT73uc/l9NNPz4033pizzz47q1evfsfDV2tgsJIbvvlEKgf4uze23fDNJzIweKA9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NWtWuru7h7YNDg6mu7s7c+fOLTjZ6FSpVHLFFVfkwQcfzLe//e2ceuqppUca1X7zN38zP/zhD7Nt27ah2+zZs3PppZdm27ZtQuRddt55573po+7PPPNMfumXfqnQRLz66qtpaBj+9NnY2JjBwcFCE418o/LKSJJ0dnZm4cKFmT17dubMmZNVq1Zl7969WbRoUenRRp3Fixfn/vvvzz/8wz9k/Pjx6enpSZK0tLRk3LhxhacbfcaPH/+m9+v8wi/8Qt73vvd5H08BV199dc4999zcfPPN+cM//MNs3rw599xzT+65557So41a8+fPz0033ZRTTjklH/zgB/ODH/wgK1euzB/90R+VHm3kqoxid955Z+WUU06pjB07tjJnzpzK9773vdIjjUpJDnj7m7/5m9Kj8b9+/dd/vbJkyZLSY4xa3/zmNyvTp0+vNDU1VU477bTKPffcU3qkUa2/v7+yZMmSyimnnFJpbm6uvP/9769ce+21lX379pUebcQatd8zAgDUhlH5nhEAoHaIEQCgKDECABQlRgCAosQIAFCUGAEAihIjAEBRYgQAKEqMAABFiREAoCgxAgAUJUYAgKL+L/78SoDxdAtEAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "y = [0, 0, 1, 0, 0, 0, 0, 0, 0, 1]\n", - "plt.scatter(range(len(y)), y);" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "d9bf528b", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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tamk9VNJs0AlONe/34sKi/OxFGEBACytc/377UPIAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZFYs9x2efqPPUqm03HcNACzS6b/bP+4Nu5c9LCYmJiIioq2tbbnvGgA4TxMTE1EoFBb8/rJ/VsjMzEy89tpr0djYGDU16T7Qp1QqRVtbW4yMjPgMkrdxXM7kmJzJMZmf43Imx+RMF8sxybIsJiYmYu3atVFbu/ArKZb9EYva2tq4/PLLl+z3NzU1XdD/YRfLcTmTY3Imx2R+jsuZHJMzXQzH5GyPVJzmxZsAQDLCAgBI5oIJi/r6+ujp6Yn6+vq8R6kojsuZHJMzOSbzc1zO5JicyTGZa9lfvAkAXLgumEcsAID8CQsAIBlhAQAkIywAgGQumLB4+OGH493vfnc0NDTEddddF/39/XmPlJve3t74+Z//+WhsbIzVq1fH7bffHi+99FLeY1WUe++9N2pqamL37t15j5K7//zP/4zt27fHpZdeGqtWrYqrr746vvnNb+Y9Vm6mp6fjnnvuifb29li1alW8973vjT/90z/9sZ+PcKE5evRobN26NdauXRs1NTXx13/913O+n2VZfOpTn4rW1tZYtWpVbNq0KV5++eV8hl0mZzsmb775Ztx9991x9dVXxyWXXBJr166Nj33sY/Haa6/lN3BOLoiw+MpXvhJ79uyJnp6eGBgYiHXr1sWtt94a4+PjeY+WiyNHjkRXV1c899xzcejQoXjzzTfjwx/+cJw6dSrv0SrCsWPH4tFHH41rrrkm71Fy9z//8z9x4403xk/8xE/E3//938eJEyfiz//8z+Od73xn3qPl5r777ou+vr546KGH4lvf+lbcd9998dnPfjYefPDBvEdbVqdOnYp169bFww8/PO/3P/vZz8YDDzwQjzzySDz//PNxySWXxK233hqTk5PLPOnyOdsx+cEPfhADAwNxzz33xMDAQHzta1+Ll156KX7lV34lh0lzll0ANm7cmHV1dc1+PT09na1duzbr7e3NcarKMT4+nkVEduTIkbxHyd3ExET2/ve/Pzt06FD2S7/0S9muXbvyHilXd999d3bTTTflPUZFue2227KPf/zjc2779V//9Wzbtm05TZS/iMj2798/+/XMzEzW0tKS3X///bO3ff/738/q6+uzL3/5yzlMuPx+9JjMp7+/P4uI7Lvf/e7yDFUhqv4Rix/+8Idx/Pjx2LRp0+xttbW1sWnTpvjGN76R42SVo1gsRkREc3NzzpPkr6urK2677bY5/79czP72b/82NmzYEB/5yEdi9erV8cEPfjAef/zxvMfK1Q033BCHDx+Ob3/72xER8S//8i/x7LPPxpYtW3KerHIMDw/H2NjYnHVUKBTiuuuuc959m2KxGDU1NfGOd7wj71GW1bJ/CFlq3/ve92J6ejrWrFkz5/Y1a9bEiy++mNNUlWNmZiZ2794dN954Y3R2duY9Tq6efPLJGBgYiGPHjuU9SsX493//9+jr64s9e/bEH/3RH8WxY8fi93//92PlypWxY8eOvMfLxSc/+ckolUrxgQ98IOrq6mJ6ejo+/elPx7Zt2/IerWKMjY1FRMx73j39vYvd5ORk3H333XHHHXdc8B9M9qOqPiw4u66urhgaGopnn30271FyNTIyErt27YpDhw5FQ0ND3uNUjJmZmdiwYUN85jOfiYiID37wgzE0NBSPPPLIRRsWX/3qV+NLX/pSPPHEE3HVVVfF4OBg7N69O9auXXvRHhPK8+abb8ZHP/rRyLIs+vr68h5n2VX9UyGXXXZZ1NXVxeuvvz7n9tdffz1aWlpymqoy3HXXXfHUU0/FM888s6QfVV8Njh8/HuPj47F+/fpYsWJFrFixIo4cORIPPPBArFixIqanp/MeMRetra3R0dEx57af/dmfjVdffTWnifL3h3/4h/HJT34yfvM3fzOuvvrq+K3f+q34xCc+Eb29vXmPVjFOn1udd890Oiq++93vxqFDhy66RysiLoCwWLlyZVx77bVx+PDh2dtmZmbi8OHDcf311+c4WX6yLIu77ror9u/fH08//XS0t7fnPVLubr755njhhRdicHBwdtuwYUNs27YtBgcHo66uLu8Rc3HjjTeecSnyt7/97fjpn/7pnCbK3w9+8IOorZ17aqyrq4uZmZmcJqo87e3t0dLSMue8WyqV4vnnn79oz7sR/xcVL7/8cvzjP/5jXHrppXmPlIsL4qmQPXv2xI4dO2LDhg2xcePG+PznPx+nTp2KO++8M+/RctHV1RVPPPFE/M3f/E00NjbOPudZKBRi1apVOU+Xj8bGxjNeY3LJJZfEpZdeelG/9uQTn/hE3HDDDfGZz3wmPvrRj0Z/f3889thj8dhjj+U9Wm62bt0an/70p+OKK66Iq666Kv75n/85Pve5z8XHP/7xvEdbVm+88UZ85zvfmf16eHg4BgcHo7m5Oa644orYvXt3/Nmf/Vm8//3vj/b29rjnnnti7dq1cfvtt+c39BI72zFpbW2N3/iN34iBgYF46qmnYnp6evbc29zcHCtXrsxr7OWX92UpqTz44IPZFVdcka1cuTLbuHFj9txzz+U9Um4iYt7tC1/4Qt6jVRSXm77lwIEDWWdnZ1ZfX5994AMfyB577LG8R8pVqVTKdu3alV1xxRVZQ0ND9p73vCf74z/+42xqairv0ZbVM888M+95ZMeOHVmWvXXJ6T333JOtWbMmq6+vz26++ebspZdeynfoJXa2YzI8PLzgufeZZ57Je/Rl5WPTAYBkqv41FgBA5RAWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyfw/N2asl4XyUyIAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "z = np.convolve(x, y)\n", - "plt.scatter(range(len(z)), z);" - ] - }, - { - "cell_type": "markdown", - "id": "c5aea429", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "We observe: every peak of $y$ results in a _copy_ of $x$!" - ] - }, - { - "cell_type": "markdown", - "id": "e60b8922", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "### How is this related to signal processing?" - ] - }, - { - "cell_type": "markdown", - "id": "3edb1cfe", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "The Fourier transformation connects multiplication with convolution:" - ] - }, - { - "cell_type": "markdown", - "id": "5e7a4611", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "\\begin{align*}\n", - " x[t] * y[t] \\,&\\circ\\!\\!-\\!\\!\\bullet\\, X[f] \\cdot Y[f] \\\\\n", - " x[t] \\cdot y[t] \\,&\\circ\\!\\!-\\!\\!\\bullet\\, X[f] * Y[f] \\\\\n", - "\\end{align*}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "feb1446d", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Using this property, we can efficiently work on signals (and their spectra).\n", - "We'll see how in the project." - ] - }, - { - "cell_type": "markdown", - "id": "aeeb1557", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{note}\n", - "The connection between convolution and multiplication is not only important for signal processing.\n", - "Convolution is also used in **artificial intelligence**, **image processing**, and **computer vision**.\n", - "In addition, we can use it to implement, for example, a **fast algorithm for polynomial multiplication**.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "2ec9766f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Recap" - ] - }, - { - "cell_type": "markdown", - "id": "03074ac1", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- We represent signals as **samples** at a fixed **sampling rate**." - ] - }, - { - "cell_type": "markdown", - "id": "6dd62280", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- This rate must be **twice as high** as the highest frequency in the signal." - ] - }, - { - "cell_type": "markdown", - "id": "943c15ca", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- Using the **fourier transformation**, we can decompose a signal into its **spectrum**." - ] - }, - { - "cell_type": "markdown", - "id": "9faf5ca3", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- The spectrum indicates how strongly sine and cosine contribute to the signal..." - ] - }, - { - "cell_type": "markdown", - "id": "d59296b4", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- ...even if the signal is not directly constructed from sine and cosine." - ] - }, - { - "cell_type": "markdown", - "id": "9af7afe6", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "The fourier transformation has multiple useful properties:\n", - "\n", - "$$\n", - "\\begin{array}{lrr}\n", - "\\hline \\textbf{Eigenschaft} & \\textbf{Signal} & \\textbf{Spektrum} \\\\\n", - "\\hline\n", - "\\text{linear} & \\sum_i a_i x_i[t] & \\sum_i a_i X_i[f] \\\\\n", - "\\text{dual} & X[-t] & x[f] \\\\\n", - " & X[t] & x[-f] \\\\\n", - "\\text{Skalierung} & x[at] & \\frac{1}{|a|} X \\left[\\frac{f}{a}\\right] \\\\\n", - "\\text{Faltung} & x[t] * y[t] & X[f] \\cdot Y[f] \\\\\n", - " & x[t] \\cdot y[t] & X[f] * Y[f] \\\\\n", - "\\hline\n", - "\\end{array}\n", - "$$" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.ipynb_checkpoints/U02_1_Input.en-checkpoint.ipynb b/.ipynb_checkpoints/U02_1_Input.en-checkpoint.ipynb deleted file mode 100644 index ff75a2f..0000000 --- a/.ipynb_checkpoints/U02_1_Input.en-checkpoint.ipynb +++ /dev/null @@ -1,116 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "d709b880", - "metadata": {}, - "source": [ - "# Input" - ] - }, - { - "cell_type": "markdown", - "id": "5f40e11b", - "metadata": {}, - "source": [ - "Here you can download the input files (right click / save as...):\n", - "* 2024-03-16\n", - "* 2023-04-20\n", - "* 2023-06-15\n", - "* 2023-03-14" - ] - }, - { - "cell_type": "markdown", - "id": "6ab69020", - "metadata": {}, - "source": [ - "In diesem Projekt arbeiten wir mit Audio-Daten.\n", - "Um das Einlesen möglichst unkompliziert zu halten, stellen wir die Eingabe in einem einfachen Format bereit:\n", - "\n", - "```{admonition} Format\n", - "Die erste Zeile enthält $n$, die Anzahl der Samples ($0 \\leq n < 2^{32}$).\n", - "\n", - "Danach folgen $n$ Zeilen mit jeweils einem Sample $x$ als ganze Zahl ($-2^{15} \\leq x < 2^{15}$)\n", - "```\n", - "\n", - "Die Abtastrate $f_S$ ist dabei 16640 Hz.\n", - "\n", - "## Beispiel\n", - "```\n", - "10\n", - "623\n", - "-310\n", - "-273\n", - "3404\n", - "4745\n", - "655\n", - "-454\n", - "3463\n", - "3375\n", - "-5350\n", - "```\n", - "\n", - "```{note}\n", - "Die Werte der Samples sind hier zwar ganze Zahlen, aber für den Rest des Projekts ergibt es Sinn sie hier schon in Floating-Point Werte umzuwandeln.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "cfcac6c9", - "metadata": {}, - "source": [ - "# Visualisierung\n", - "\n", - "In diesem Projekt kann es sehr hilfreich sein, sich nach jedem Arbeitsschritt das Ergebnis zu visualisieren.\n", - "Das können wir zum Beispiel so tun:\n", - "- Das Signal enthält 2 Zeilen mit je 2080 Pixeln pro Sekunde. Mit $f_S = 16640\\text{Hz}$ haben wir also 4 Samples pro Pixel.\n", - "- Wir nehmen jedes 4. Sample, falls es komplex ist berechnen wir den Betrag $(a + ib \\mapsto \\sqrt{a^2+b^2} =\\mathrel{\\vcenter{:}} v)$.\n", - "- Wir finden $v_{min}$ und $v_{max}$, den kleinsten bzw. größten so erhaltenen Wert.\n", - " Dann skalieren wir jedes $v$ nach $255 \\cdot (v - v_{min}) / (v_{max} - v_{min})$.\n", - " Damit bekommen wir einen Wert zwischen 0 und 255.\n", - "- Diese Werte können wir jetzt als Pixel in einer Bilddatei abspeichern.\n", - " Dazu können wir zum Beispiel das [](pgm-format) benutzen.\n", - " \n", - "```{figure} img/reference/raw_full_scaled.webp\n", - "---\n", - "name: fig:raw_full.en\n", - "---\n", - "Visualisierung direkt nach dem Einlesen.\n", - "Man kann das Bild fast schon erkennen, es ist aber noch sehr dunkel.\n", - "```\n", - "\n", - "```{figure} img/reference/raw_detail.webp\n", - "---\n", - "name: fig:raw_detail.en\n", - "---\n", - "Detailansicht.\n", - "Hier sieht man deutliche vertikale Streifen, die von der Modulation auf den 2.4kHz Carrier kommen.\n", - "```" - ] - } - ], - "metadata": { - "celltoolbar": "Tags", - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.ipynb_checkpoints/U02_2_Freq_Shift.en-checkpoint.ipynb b/.ipynb_checkpoints/U02_2_Freq_Shift.en-checkpoint.ipynb deleted file mode 100644 index e58bfbc..0000000 --- a/.ipynb_checkpoints/U02_2_Freq_Shift.en-checkpoint.ipynb +++ /dev/null @@ -1,112 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e67c2a43", - "metadata": {}, - "source": [ - "# Frequenz-Shift" - ] - }, - { - "cell_type": "markdown", - "id": "6482d25c", - "metadata": {}, - "source": [ - "```{figure} img/reference/raw_waterfall.webp\n", - "---\n", - "name: fig:raw_waterfall.en\n", - "---\n", - "Wasserfall-Diagramm. Wir können die beiden Kopien des Spektrums bei $\\pm2.4\\text{kHz}$ erkennen.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "cbe50415", - "metadata": {}, - "source": [ - "Als ersten Schritt wollen wir die Kopie des Spektrums bei 2.4kHz \"auf die 0\" verschieben.\n", - "\n", - "Im Frequenz-Bereich können wir diese Verschiebung als eine Faltung mit einem Peak bei -2.4kHz darstellen.\n", - "Wie können wir so einen Peak erzeugen?\n", - "\n", - "Wir erinnern uns:\n", - "$\\sin(2\\pi f t)$ und $\\cos(2\\pi f t)$ hatten Peaks bei $\\pm f$.\n", - "\n", - "Genauer gesagt:\n", - "```{math}\n", - "\\begin{align*}\n", - "\\sin(2\\pi f_0 t) \\,&\\circ\\!\\!-\\!\\!\\bullet\\, \\left\\{\\begin{array}{rcl}\n", - " \\frac{1}{2}i &∶& f = -f_0 \\\\\n", - " -\\frac{1}{2}i &:& f = f_0 \\\\\n", - " 0 &:& \\text{sonst} \\\\\n", - "\\end{array}\\right. \\\\\n", - "\\cos(2\\pi f_0 t) \\,&\\circ\\!\\!-\\!\\!\\bullet\\, \\left\\{\\begin{array}{rcl}\n", - " \\frac{1}{2} &∶& f \\in \\{-f_0, f_0\\} \\\\\n", - " 0 &:& \\text{sonst} \\\\\n", - "\\end{array}\\right. \\\\\n", - "\\end{align*}\n", - "```\n", - "\n", - "Damit haben wir jeweils zwei Peaks.\n", - "Wir können Sinus und Cosinus aber geschickt kombinieren so dass sich einer davon aufhebt:\n", - "Wenn wir den Sinus mit $i$ multiplizieren bekommen wir:\n", - "```{math}\n", - "i \\cdot \\sin(2\\pi f_0 t) \\,&\\circ\\!\\!-\\!\\!\\bullet\\, \\left\\{\\begin{array}{rcl}\n", - " i \\cdot \\frac{1}{2}i = -\\frac{1}{2} &∶& f = -f_0 \\\\\n", - " i \\cdot -\\frac{1}{2}i = \\frac{1}{2} &:& f = f_0 \\\\\n", - " 0 &:& \\text{sonst} \\\\\n", - "\\end{array}\\right.\n", - "```\n", - "Und wenn wir jetzt noch den Cosinus addieren:\n", - "```{math}\n", - "\\cos(2\\pi f_0 t) + i\\sin(2\\pi f_0 t) \\,&\\circ\\!\\!-\\!\\!\\bullet\\, \\left\\{\\begin{array}{rcl}\n", - " \\frac{1}{2} -\\frac{1}{2} = 0 &∶& f = -f_0 \\\\\n", - " \\frac{1}{2} + \\frac{1}{2} = 1 &:& f = f_0 \\\\\n", - " 0 &:& \\text{sonst} \\\\\n", - "\\end{array}\\right.\n", - "```\n", - "Damit haben wir genau den Peak bei $f_0$.\n", - "\n", - "```{note}\n", - "Den Ausdruck $\\cos(x) + i\\sin(x)$ habt ihr vielleicht schon mal in der [Eulerschen Formel](https://de.wikipedia.org/wiki/Eulersche_Formel) gesehen.\n", - "```\n", - "\n", - "Um den Frequenz-Shift durchzuführen, können wir also einfach in der Zeit-Domain (= auf den Samples) mit dieser Funktion multiplizieren.\n", - "Dazu gehen wir so vor:\n", - "- Für jedes Sample $s$ berechnen wir den aktuellen Zeitpunkt $t$.\n", - " Durch die Abtastrate $f_S = 16640\\text{Hz}$ wissen wir, dass der Zeitabstand zwischen zwei Samples genau $1/16640\\text{s}$ ist.\n", - "- Dann berechnen wir $\\cos(2\\pi \\cdot -2400 \\cdot t) + i \\cdot \\sin(2\\pi \\cdot -2400 \\cdot t)$ und erhalten einen komplexen Wert $a + bi$.\n", - "- Diesen multiplizieren wir mit $s$ und erhalten $a \\cdot s + (b \\cdot s)i$ und speichern ihn als neues, komplexes Sample.\n", - "\n", - "```{note}\n", - "Für dieses Projekt reicht es theoretisch aus, komplexe Zahlen als Paare von jeweils zwei reelle Zahlen zu speichern.\n", - "In manchen Programmiersprachen gibt es aber auch explizite Typen, um komplexe Zahlen darzustellen, z.B. [std::complex](https://en.cppreference.com/w/cpp/numeric/complex) in C++.\n", - "In Python kann man sie sogar einfach mit `a + b * 1j` erzeugen.\n", - "```" - ] - } - ], - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.ipynb_checkpoints/U02_3_Low_Pass.en-checkpoint.ipynb b/.ipynb_checkpoints/U02_3_Low_Pass.en-checkpoint.ipynb deleted file mode 100644 index 5f1c670..0000000 --- a/.ipynb_checkpoints/U02_3_Low_Pass.en-checkpoint.ipynb +++ /dev/null @@ -1,318 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "1a219eb5", - "metadata": {}, - "source": [ - "# Low-Pass Filter" - ] - }, - { - "cell_type": "markdown", - "id": "70bc7f0d", - "metadata": {}, - "source": [ - "```{figure} img/reference/shifted_waterfall.webp\n", - "---\n", - "name: fig:shifted_waterfall.en\n", - "---\n", - "Wasserfall-Diagramm nach dem Frequenz-Shift. Eine Kopie ist zur 0 gewandert, die andere auf -4.8kHz.\n", - "Außerdem ist die sogenannte *DC-Komponente*, die vorher auf der 0 war, jetzt bei -2.4kHz.\n", - "```\n", - "\n", - "Im nächsten Schritt filtern wir das Signal, so dass nur die Kopie des Basisbands übrig bleibt.\n", - "Weil darin 4160 Pixel pro Sekunde übertragen werden, reicht es im Spektrum von -2080 bis 2080 Hz (Das hängt mit dem Nyquist-Kriterium zusammen).\n", - "\n", - "Wir wollen also im Spektrum alles entfernen, was nicht in diesem Frequenz-Intervall liegt.\n", - "Das können wir als Multiplikation mit einer sogenannten Rechteck-Funktion ausdrücken:\n", - "```{math}\n", - "\\text{rect}(f) = \\left\\{\\begin{array}{rcl}\n", - " 1 &∶& -\\frac{1}{2} < f < \\frac{1}{2} \\\\\n", - " 0 &:& \\text{sonst} \\\\\n", - "\\end{array}\\right.\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "3706c744", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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/P391atXL61evdphuWEYmjVrlsLDw9WsWTMlJiZq79699fmVTOfgwYOaNGmSOnfurGbNmunSSy9Venq6ysrKHPqxvxqfBQsWKCoqSv7+/oqPj1deXp6nSzK9jIwM9evXTy1btlS7du00evRo7d6926HPmTNnlJKSojZt2qhFixa64YYbVFRU5NDn0KFDGjFihAICAtSuXTvNmDFD586dc+iTk5Ojvn37ymq1qkuXLlq2bFl9fz3Ty8zMlMVi0bRp0+xtpthfBurFvffeawwfPtyQZGzdutXefvLkSSM0NNQYN26csWPHDuO1114zmjVrZjz//PP2Phs3bjR8fX2N2bNnG19//bXxyCOPGE2bNjW2b99u75OZmWkEBQUZq1atMrZt22Zcf/31RufOnY3Tp0835Nds1D744ANjwoQJxtq1a439+/cb77zzjtGuXTvjvvvus/dhfzU+K1asMPz8/IwlS5YYX331lZGcnGwEBwcbRUVFni7N1JKSkoylS5caO3bsMAoKCozrrrvO6Nixo/Hzzz/b+0yePNmIjIw0srOzjc2bNxu/+93vjAEDBtiXnzt3zujZs6eRmJhobN261Vi9erUREhJizJw5097nm2++MQICAoy0tDTj66+/Np599lnD19fXWLNmTYN+XzPJy8szoqKijN69extTp061t5thfxFy6sHq1auNbt26GV999VWVkLNw4UKjVatWRmlpqb3twQcfNC6//HL7+5tuuskYMWKEwzbj4+ONu+66yzAMw6ioqDDCwsKMp59+2r78p59+MqxWq/Haa6/V07e6OMyePdvo3Lmz/T37q/Hp37+/kZKSYn9fXl5uREREGBkZGR6s6uJz7NgxQ5Lx8ccfG4bxy3/zTZs2Nd544w17n507dxqSjNzcXMMwfvm308fHxygsLLT3ee6554zAwED7MfjAAw8YPXr0cPisMWPGGElJSfX9lUypuLjY6Nq1q/Hhhx8agwcPtoccs+wvLle5WVFRkZKTk/Xyyy8rICCgyvLc3FxdddVV8vPzs7clJSVp9+7d+vHHH+19EhMTHdZLSkpSbm6uJOnAgQMqLCx06BMUFKT4+Hh7H9TNyZMn1bp1a/t79lfjUlZWpvz8fIeftY+PjxITE/lZN7CTJ09Kkv14ys/P19mzZx32Tbdu3dSxY0f7vsnNzVWvXr0UGhpq75OUlCSb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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "n = 8192\n", - "f_s = 2080 * 4\n", - "f = np.roll(np.fft.fftfreq(n, d = 1/f_s), -n//2)\n", - "\n", - "def rect(f):\n", - " return np.where(np.abs(f) < 0.5, 1, 0)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(f, rect(1/4160 * f));\n", - "ax.set_xlabel(\"Frequenz [Hz]\");\n", - "ax.set_ylabel(\"$rect(f/4160)$\");" - ] - }, - { - "cell_type": "markdown", - "id": "515f4212", - "metadata": {}, - "source": [ - "Hier haben wir das Rechteck bereits so skaliert, dass es für Frequenzen zwischen -2080 und 2080 den Wert 1 hat und sonst 0.\n", - "Das erreichen wir folgendermaßen:\n", - "```{math}\n", - "\\text{rect}\\left(\\frac{1}{4160} \\cdot f\\right) = \\left\\{\\begin{array}{rcl}\n", - " 1 &∶& -\\frac{1}{2} < \\frac{1}{4160} \\cdot f < \\frac{1}{2} \\Leftrightarrow -2080 < f < 2080 \\\\\n", - " 0 &:& \\text{sonst} \\\\\n", - "\\end{array}\\right.\n", - "```\n", - "\n", - "In der Zeit-Domain entspricht das Rechteck der sogenannten $\\text{sinc}$ Funktion.\n", - "Sie ist definiert als\n", - "```{math}\n", - "\\text{sinc}(t) \\mathrel{\\vcenter{:}}= \\left\\{\\begin{array}{ccl}\n", - " \\frac{\\sin(\\pi t)}{\\pi t} &∶& t \\neq 0 \\\\\n", - " 0 &:& t = 0 \\\\\n", - "\\end{array}\\right.\n", - "```\n", - "\n", - "Mit der Skalierung auf den Bereich von -2080 bis 2080 Hz (wegen $x[at] \\,\\circ\\!\\!-\\!\\!\\bullet\\, \\frac{1}{|a|} X \\left[\\frac{f}{a}\\right]$):\n", - "```{math}\n", - "\\text{rect}\\left(\\frac{1}{4160} \\cdot f\\right) \\,\\bullet\\!\\!-\\!\\!\\circ\\, 4160 \\cdot \\text{sinc}(4160 \\cdot t)\n", - "```\n", - "\n", - "Um das Signal zu filtern wollen wir also eine Faltung mit der $\\text{sinc}$ Funktion implementieren.\n", - "Dabei haben wir allerdings ein Problem:\n", - "Die $\\text{sinc}$ Funktion hat einen *unendlichen Träger*, also wir müssten sie an unendlich vielen Stellen auswerten.\n", - "\n", - "Damit unser Programm in endlicher Zeit fertig wird, können wir nur ein endlich großes Fenster an Samples für die Faltung benutzen.\n", - "Damit ist die Berechnung nicht mehr exakt.\n", - "Den so entstehenden Fehler können wir aber mit Hilfe einer sogenannten *window function* klein halten.\n", - "Eine häufig verwendete window function ist das sogenannte [Hamming-Window](https://de.wikipedia.org/wiki/Fensterfunktion#Hamming-Fenster):\n", - "```{math}\n", - "w[n] \\mathrel{\\vcenter{:}}= 0.54 - 0.46 \\cdot \\cos\\left(\\frac{2 \\pi \\cdot n}{N - 1}\\right), \\quad n = 0,\\dots,N-1\n", - "```\n", - "wobei $N$ die Größe des Fensters ist.\n", - "\n", - "Wir gehen also folgendermaßen vor:\n", - "- Als erstes wählen wir die Größe des Fensters.\n", - " Je mehr Samples das Fenster umfasst, desto besser wird das Ergebnis, aber die Laufzeit wird schlechter.\n", - " Für dieses Projekt können wir ein Fenster mit 64 Samples benutzen.\n", - "- Wir berechnen die sogenannten *Filter-Koeffizienten*. Für jeden Eintrag $a[n]$ setzt er sich zusammen aus $w[n]$ und einem Funktionswert $\\text{sinc}(t)$.\n", - " Der Zeitpunkt $t$ hängt von $n$ ab:\n", - " Wie schon beim Frequenz-Shift ist der Zeitabstand $1/f_S$.\n", - " Der Zeitbereich den wir abbilden wollen ist symmetrisch um die 0.\n", - " Gegeben $n$ und $N$ haben wir also\n", - " ```{math}\n", - " t = \\frac{1}{f_S} \\cdot \\left(n - \\frac{N-1}{2}\\right)\n", - " ```\n", - " Und insgesamt\n", - " ```{math}\n", - " a[n] = w[n] \\cdot \\text{sinc}(4160 \\cdot t)\n", - " ```\n", - "- Wir skalieren $a$ noch so, dass\n", - " ```{math}\n", - " \\sum_{n=0}^{N-1} a[n] = 1\n", - " ```\n", - " Deshalb haben wir auch den konstanten Faktor vor der $\\text{sinc}$ Funktion weg gelassen.\n", - " \n", - "Hier sehen wir die $\\text{sinc}$ Funktion:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "949bb97c", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAGwCAYAAABiu4tnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABs2UlEQVR4nO3dd3xT5f4H8E92uie0hRbK3hQoggUVlCqgF8WJoCKICArXwdUrOMDxU9CLuBUX4lUQHIheQVBRHFBWoey9KbRQSvdM8vz+SM5pStM246RtyOf9evUFTU5ynlNo8s33+T7fRyWEECAiIiIil6kbewBEREREvoqBFBEREZGbGEgRERERuYmBFBEREZGbGEgRERERuYmBFBEREZGbGEgRERERuUnb2APwFRaLBadPn0ZISAhUKlVjD4eIiIicIIRAYWEhWrRoAbVa+fwRAyknnT59GgkJCY09DCIiInLDyZMnER8fr/jzMpByUkhICADrP0RoaGgjj4aIiIicUVBQgISEBPl9XGkMpJwkTeeFhoYykCIiIvIx3irLYbE5ERERkZsYSBERERG5iYEUERERkZsYSBERERG5iYEUERERkZsYSBERERG5iYEUERERkZsYSBERERG5iYEUERERkZsYSBERERG5yScDqT///BMjRoxAixYtoFKpsHz58nofs3btWvTp0wcGgwHt27fHwoULvT5OIiIiurT5ZCBVXFyMpKQkvPvuu04df/ToUdxwww24+uqrkZGRgUcffRT3338/Vq9e7eWREhER0aXMJzctHj58OIYPH+708fPnz0ebNm3w2muvAQC6dOmCv//+G6+//jqGDh3qrWESkY8qrTAjQK9p7GEQkQ/wyYyUq9LS0pCamlrttqFDhyItLa3Wx5SXl6OgoKDaFxFd+t5acxA9nluN9OMXGnsoROQD/CKQysrKQkxMTLXbYmJiUFBQgNLSUoePmT17NsLCwuSvhISEhhgqETWyTUdzYbIIZJzMa+yhEJEP8ItAyh0zZsxAfn6+/HXy5MnGHhIRNYALJRUAgDzbn0REdfHJGilXxcbGIjs7u9pt2dnZCA0NRUBAgMPHGAwGGAyGhhgeETUheSWV1f4kIqqLX2SkUlJSsGbNmmq3/fLLL0hJSWmkERFRU5VfagukShlIEVH9fDKQKioqQkZGBjIyMgBY2xtkZGTgxIkT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onXr1h5elWONfa2LFy8WRqNRLF++XOlLc6ixr1fizWLzqVOnyt+bzWbRsmXLOotW//GPf1S7LSUlpUbR6ty5c+X78/PzHRabu/IzVUJjXKu9xig2b4zrPXXqlOjQoYO48847hclkUvKSatXY/7aS48ePCwDi999/9+Bq6tcY13v8+PFq762rV68WAMQ333wjTp486fTYGUi5YNiwYaJ3795i48aN4u+//xYdOnSotrz51KlTolOnTmLjxo3ybZMnTxatWrUSv/32m9iyZUuNpaTSkvHrrrtOZGRkiFWrVolmzZo5bH8gaYhVe0I03vW+88474ocffhAHDhwQBw4cEB9//LEICQkRTz/99CV3rYsWLRJarVa8++674syZM/JXXl6e1661Ma9XCCG2bdsmtm3bJpKTk8WYMWPEtm3bxO7duxW7tiVLlgiDwSAWLlwo9uzZIx544AERHh4urya85557xPTp0+Xj161bJ7RarZg7d67Yu3evmDVrlsNl1OHh4eL7778XO3bsEDfddJPD9gd1/Uy9obGu9fjx42Lbtm3i+eefF8HBwfK/aWFh4SV3vadOnRLt27cXQ4YMEadOnar2e3qpXeuGDRvE22+/LbZt2yaOHTsm1qxZIwYMGCDatWtX5wddX73eix09epTtD7zt/PnzYvTo0SI4OFiEhoaK8ePHV3vhkP4R7CP30tJS8dBDD4mIiAgRGBgobr755hq/gMeOHRPDhw8XAQEBIjo6WvzrX/8SlZWVtY6joQKpxrret956S3Tr1k0EBgaK0NBQ0bt3b/Hee+8Js9l8yV3roEGDBIAaX/fee6/XrrUxr1cI4fB6lc42vv3226JVq1ZCr9eLfv36iQ0bNsj3DRo0qMbP96uvvhIdO3YUer1edOvWTaxYsaLa/RaLRTz77LMiJiZGGAwGMWTIELF///5qx9T3M/WWxrjWe++91+G/o7ezFkI0/PV++umnDq+1ISZ0Gvpad+zYIa6++moRGRkpDAaDSExMFJMnTxanTp3y6nVKGuP/sj13AymVEJdgBRkRERFRA/D7VXtERERE7mIgRUREROQmBlJEREREbmIgRUREROQmBlJEREREbmIgRUREROQmBlJEREREbmIgRUREROQmBlJE5FcGDx6MRx991OXHqVQqqFSqaps212Xt2rXyY0aOHOny+YjINzCQIqImzz4ocfR19dVXO/1cy5Ytw4svvih/n5iYiDfeeMOpx3766ac4cOCAU8cOGDAAZ86cwR133OH02IjI92gbewBERPWRgpKL/fDDD5g8eTIeeughp58rMjLS7XGEh4ejefPmTh2r1+sRGxuLgIAAlJeXu31OImramJEioiZPCkrsvy5cuIDHH38cTz31FG6//Xb52F27dmH48OEIDg5GTEwM7rnnHuTk5Mj320/tDR48GMePH8djjz0mZ7dcsX37dlx99dUICQlBaGgokpOTsWXLFkWumYh8AwMpIvI5eXl5uOmmmzB48OBq03R5eXm45ppr0Lt3b2zZsgWrVq1CdnZ2rdNry5YtQ3x8PF544QWcOXPGYdarLnfddRfi4+OxefNmpKenY/r06dDpdB5dGxH5Fk7tEZFPsVgsGDNmDLRaLRYtWlQti/TOO++gd+/eePnll+XbFixYgISEBBw4cAAdO3as9lyRkZHQaDQICQlBbGysy2M5ceIEnnjiCXTu3BkA0KFDBzevioh8FTNSRORTnnrqKaSlpeH7779HSEhItfu2b9+O33//HcHBwfKXFOQcPnxY8bFMmzYN999/P1JTUzFnzhyvnIOImjYGUkTkM5YsWYK5c+diyZIlDrM/RUVFGDFiBDIyMqp9HTx4EFdddZXi43nuueewe/du3HDDDfjtt9/QtWtXfPfdd4qfh4iaLk7tEZFPyMjIwIQJEzBnzhwMHTrU4TF9+vTBt99+i8TERGi1zr286fV6mM1mt8fVsWNHdOzYEY899hhGjx6NTz/9FDfffLPbz0dEvoUZKSJq8nJycjBy5EgMHjwYd999N7Kysqp9nTt3DgAwZcoU5ObmYvTo0di8eTMOHz6M1atXY/z48bUGS4mJifjzzz+RmZlZbXVffUpLSzF16lSsXbsWx48fx7p167B582Z06dJFkWsmIt/AjBQRNXkrVqzA8ePHcfz4ccTFxdW4v3Xr1jh27BhatGiBdevW4cknn8R1112H8vJytG7dGsOGDYNa7fhz4wsvvIBJkyahXbt2KC8vhxDCqTFpNBqcP38eY8eORXZ2NqKjo3HLLbfg+eef9+haici3qISzrxpERH5MpVLhu+++c3m7l3HjxiEvLw/Lly/3yriIqHFxao+IyEmjR49GfHy8U8f+9ddfCA4OxqJFi7w8KiJqTMxIERE54dChQwCsU3pt2rSp9/jS0lJkZmYCAIKDg93qU0VETR8DKSIiIiI3cWqPiIiIyE0MpIiIiIjcxECKiIiIyE0MpIiIiIjcxECKiIiIyE0MpIiIiIjcxECKiIiIyE0MpIiIiIjc9P8UO0/YHbx3FwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ntaps = 64\n", - "M = ntaps - 1\n", - "n = np.arange(ntaps)\n", - "\n", - "window = 0.54 - 0.46 * np.cos(2 * np.pi * n / M)\n", - "\n", - "M //= 2\n", - "t = (M - n).astype(np.float64)\n", - "t /= f_s\n", - "\n", - "taps = np.sinc(4160 * t)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(t, taps)\n", - "ax.set_xlabel(\"Zeit [s]\")\n", - "ax.set_ylabel(\"$sinc(4160 t)$\");" - ] - }, - { - "cell_type": "markdown", - "id": "9808b2f0", - "metadata": {}, - "source": [ - "Und hier das Hamming-Window:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "f1c92eaf", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "ax.plot(t, window)\n", - "ax.set_xlabel(\"Zeit [s]\")\n", - "ax.set_ylabel(\"Hamming Window\");" - ] - }, - { - "cell_type": "markdown", - "id": "730a4714", - "metadata": {}, - "source": [ - "Und hier das Produkt von beiden:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "0143e3d8", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAGdCAYAAAAWp6lMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABW3UlEQVR4nO3deXiU1d0+8Hv2yWQPgQRCIKwGBAklEIMLohFcaqu1iksFKVKt0to3tm+lC0iXH7al1L5KxaW4oqLWqrWK2igWMYBAwr5vSYBJCFkm60xm5vz+mDyTmWSSTDLPkzyZuT/XNRcweWbmnAAzd875nnM0QggBIiIiojCm7e8GEBERESmNgYeIiIjCHgMPERERhT0GHiIiIgp7DDxEREQU9hh4iIiIKOwx8BAREVHYY+AhIiKisKfv7wbIze124+zZs4iNjYVGo+nv5hAREVEQhBCoq6vDsGHDoNXKPx4TdoHn7NmzSE9P7+9mEBERUS+UlpZi+PDhsj9v2AWe2NhYAJ5vWFxcXD+3hoiIiIJhs9mQnp7u/RyXW9gFHmkaKy4ujoGHiIhogFGqHIVFy0RERBT2GHiIiIgo7DHwEBERUdhj4CEiIqKwx8BDREREYY+Bh4iIiMIeAw8RERGFPQYeIiIiCnsMPERERBT2GHiIiIgo7PVJ4FmzZg0yMjJgNpuRk5OD7du3d3rtiy++CI1G43czm8190UwiIiIKU4oHng0bNiA/Px/Lly/Hrl27MGXKFMydOxcVFRWdPiYuLg7nzp3z3k6fPq10M4mIiCiMKR54Vq9ejcWLF2PhwoWYOHEi1q5dC4vFgnXr1nX6GI1Gg9TUVO8tJSVF6WYS0QD0zq4ybDrc+Q9PREQSRQOPw+HAzp07kZeX1/aCWi3y8vJQWFjY6ePq6+sxcuRIpKen49vf/jb279/f6bV2ux02m83vRkThr8LWjPw3d+NHrxdBCNHfzSEilVM08FRWVsLlcnUYoUlJSYHVag34mIsuugjr1q3De++9h1dffRVutxszZ85EWVlZwOtXrlyJ+Ph47y09PV32fhCR+lTU2QEAdc1ONLe4+7k1RKR2qlullZubi/nz5yMrKwuzZs3CO++8g8GDB+OZZ54JeP3SpUtRW1vrvZWWlvZxi4moP9Q0trT9vsnRjy0hooFAr+STJycnQ6fToby83O/+8vJypKamBvUcBoMBU6dOxbFjxwJ+3WQywWQyhdxWIhpYfENOTWMLhsZH9WNriEjtFB3hMRqNmDZtGgoKCrz3ud1uFBQUIDc3N6jncLlc2Lt3L4YOHapUM4loAPIb4fH5PRFRIIqO8ABAfn4+FixYgOzsbMyYMQNPPPEEGhoasHDhQgDA/PnzkZaWhpUrVwIAfvOb3+DSSy/F2LFjUVNTgz/96U84ffo07rvvPqWbSkQDSG1Ti8/vOaVFRF1TPPDMmzcP58+fx7Jly2C1WpGVlYWNGzd6C5lLSkqg1bYNNFVXV2Px4sWwWq1ITEzEtGnT8NVXX2HixIlKN5WIBpCaRv8pLSKirmhEmK3ntNlsiI+PR21tLeLi4vq7OUSkkJ+9tRtv7fSs3nz0+kw8MGtMP7eIiEKh9Oe36lZpEREFo5o1PETUAww8RDQg+dbtsIaHiLrDwENEAxJXaRFRTzDwENGAVNPEwENEwWPgIaIBRwiBWr+dlhl4iKhrDDxENOA0tbjgcLWdn1XbyBoeIuoaAw8RDTjtp7A4wkNE3WHgIaIBp7p1RMek97yFNTpcsDtd/dkkIlI5Bh4iGnCk+p3hiVHQalrv4ygPEXWBgYeIBhxpCisp2oj4KAMA+BUxExG1x8BDRAOOVMMTH2VEgsXouY8jPETUBQYeIhpwalp3Vk6wGLwjPNyLh4i6wsBDRAOONH2VEGVAgkUKPFyaTkSdY+AhogFHWqWVGG1EglTDwyktIuoCAw8RDThtNTyGthoeTmkRURcYeIhowJEKlP1qeHhiOhF1gYGHiAacthoeo08ND0d4iKhzDDxENOD4rtKSAg9reIioKww8RDTg+NXwRLGGh4i6x8BDRANKc4sLdqfnpPQEiwHxFtbwEFH3GHiIaECRlqTrtRrEmPTeZekc4SGirjDwENGAIgWbBIsBGo3Guyy9rtkJp8vdn00jIhVj4CGiAcW3fgcA4sx679dszc5+aRMRqR8DDxENKLXeFVqekR29TovY1tDD4yWIqDMMPEQ0oNT4nKMl8e7Fw6XpRNQJBh4iGlCkUCOtzgLgXZpey8JlIuoEAw8RDSjSKi0p5AC+Izyc0iKiwBh4iGhAkUZxEn1GeOK5NJ2IusHAQ0QDiu+ydAnP0yKi7jDwENGAIk1bxVt8prS8x0twSouIAmPgIaIBhau0iKg3GHiIaECRTkVPYA0PEfUAAw8RDShtIzy+q7Rap7Q4wkNEnWDgIaIBo7nFhaYWFwAgIbrjlFYta3iIqBMMPEQ0YEjTWTqtBrGmtjO0vCemc4SHiDrBwENEA4bvwaEajcZ7v7Trcm1TC9xu0S9tIyJ1Y+AhogGjxrvLssHvfqloWQigjiemE1EADDxENGAEOkcLAEx6HSxGXes1rOMhoo4YeIhowKgNsAePJIFL04moCww8RDRgSKM3CT67LEviuTSdiLrAwENEA0Z1gHO0JG0jPJzSIqKOGHiIaMAItOmgJMFnpRYRUXsMPEQ0YNR6p7QCjPDwxHQi6gIDDxENGDVdTGnFe09MZ+Ahoo76JPCsWbMGGRkZMJvNyMnJwfbt24N63BtvvAGNRoObb75Z2QYS0YDgu/Fge20nprOGh4g6UjzwbNiwAfn5+Vi+fDl27dqFKVOmYO7cuaioqOjycadOncJPf/pTXHHFFUo3kYgGiLaT0gPU8ERJ52lxhIeIOlI88KxevRqLFy/GwoULMXHiRKxduxYWiwXr1q3r9DEulwt33303VqxYgdGjRyvdRCIaIKo72WkZ8B3hYeAhoo4UDTwOhwM7d+5EXl5e2wtqtcjLy0NhYWGnj/vNb36DIUOGYNGiRd2+ht1uh81m87sRUfixO11odHhOSk8MtA+Pt4aHU1pE1JGigaeyshIulwspKSl+96ekpMBqtQZ8zJdffom///3veO6554J6jZUrVyI+Pt57S09PD7ndRKQ+0nSWRgPEmvUdvs5l6UTUFVWt0qqrq8M999yD5557DsnJyUE9ZunSpaitrfXeSktLFW4lEfWHWp+CZa1W0+HrvsvSheCJ6UTkr+OPSTJKTk6GTqdDeXm53/3l5eVITU3tcP3x48dx6tQp3HTTTd773G63p6F6PQ4fPowxY8b4PcZkMsFkMinQeiJSE6k2J1D9jud+z5SW0y3Q4HAhxqTo2xsRDTCKjvAYjUZMmzYNBQUF3vvcbjcKCgqQm5vb4frMzEzs3bsXxcXF3tu3vvUtzJ49G8XFxZyuIopg3iXpAep3AMBs0MKo17ZeyzoeIvKn+I9A+fn5WLBgAbKzszFjxgw88cQTaGhowMKFCwEA8+fPR1paGlauXAmz2YxJkyb5PT4hIQEAOtxPRJGlposVWgCg0WiQEGVARZ0dNY0tGJ7Yl60jIrVTPPDMmzcP58+fx7Jly2C1WpGVlYWNGzd6C5lLSkqg1aqqlIiIVKirXZYlCRZP4GHhMhG11yeT3EuWLMGSJUsCfm3Tpk1dPvbFF1+Uv0FENOBIOygHWpIuSeDxEkTUCQ6tENGA0NWxEpJ4Hi9BRJ1g4CGiAcG7SqurKa0onphORIEx8BDRgFAbZA0PwM0HiagjBh4iGhCkaSqpTicQ6VBRLksnovYYeIhoQKhukPbh6aKGh1NaRNQJBh4iGhCkaaouV2nxxHQi6gQDDxGpXovLjXq7E0DnGw96vuYJQ7Uc4SGidhh4iEj1fIuQ47oKPFyWTkSdYOAhItWTanLizHroApyULmENDxF1hoGHiFSvVlqh1UX9jufrnsBjd7rR3OJSvF1ENHAw8BCR6gVzjhYAxJjaRoA4ykNEvhh4iEj1qoM4VgJoOzEdYB0PEflj4CEi1ZM2EuxqSbrEe54WR3iIyAcDDxGpXm0Q52hJeJ4WEQXCwENEquet4elmSgtoK2yu5ZQWEflg4CEi1ZN2To4PYkqLIzxEFAgDDxGpnlTDE8wITzyPlyCiABh4iEj1gl2WDrQdL8ERHiLyxcBDRKpX4914MJgaHs81rOEhIl8MPESkem0jPEHU8HBZOhEFwMBDRKrmdLlR19z9SekSnqdFRIEw8BCRqtlaww7Q/U7LgO+ydAYeImrDwENEqiat0Io16aHXdf+W1bYsnTU8RNSGgYeIVK1tD57uR3eAthqeBocLDqdbsXYR0cDCwENEqubdgyfIwBNrNkDjOTCd01pE5MXAQ0Sq1nasRPcrtABAp9Ugzsyl6UTkj4GHiFStJ5sOSrg0nYjaY+AhIlWr6cFJ6RKep0VE7THwEJGq1XrP0QpuSgtoO2SU52kRkYSBh4hULbQRHtbwEJEHAw8RqZo0LRXMpoOStvO0OMJDRB4MPESkam3L0oOf0mINDxG1x8BDRKomTWkl9mBKizU8RNQeAw8RqVqvlqWzhoeI2mHgISLVcrkFbM1SDU8PprRYw0NE7TDwEJFq1TW3QAjP73tTtMwaHiKSMPAQkWpJgSXaqINRH/zblTQaxCktIpIw8BCRalX3YoWW53rPCI+t2QmXW8jeLiIaeBh4iEi1pBqcuB5MZwH+01821vEQERh4iEjFmltcADxTWj1h0GlhaX2MVPRMRJGNgYeIVKvR4Qk8UT0MPAC8gaepNTQRUWRj4CEi1ZLCitnQ88AjPUYKTUQU2Rh4iEi1mlrDiiWEEZ5mBh4iAgMPEamYFHiiejHCE8URHiLywcBDRKolx5QWa3iICOijwLNmzRpkZGTAbDYjJycH27dv7/Tad955B9nZ2UhISEB0dDSysrLwyiuv9EUziUhlpLASypQWAw8RAX0QeDZs2ID8/HwsX74cu3btwpQpUzB37lxUVFQEvD4pKQm//OUvUVhYiD179mDhwoVYuHAhPv74Y6WbSkQqE9KUlhR4OKVFROiDwLN69WosXrwYCxcuxMSJE7F27VpYLBasW7cu4PVXXXUVbrnlFkyYMAFjxozBww8/jEsuuQRffvml0k0lIpWRRmd6syw9yqD3ew4iimyKBh6Hw4GdO3ciLy+v7QW1WuTl5aGwsLDbxwshUFBQgMOHD+PKK68MeI3dbofNZvO7EVF4aAphH54oo+ftjUXLRAQoHHgqKyvhcrmQkpLid39KSgqsVmunj6utrUVMTAyMRiNuvPFGPPnkk7j22msDXrty5UrEx8d7b+np6bL2gYj6j3eEJ4RVWs0c4SEiqHSVVmxsLIqLi/H111/j97//PfLz87Fp06aA1y5duhS1tbXeW2lpad82logUE8o+PFFGvd9zEFFk0yv55MnJydDpdCgvL/e7v7y8HKmpqZ0+TqvVYuzYsQCArKwsHDx4ECtXrsRVV13V4VqTyQSTySRru4lIHaTpqN4sS+c+PETkS9ERHqPRiGnTpqGgoMB7n9vtRkFBAXJzc4N+HrfbDbvdrkQTiUjFmkOY0vLutMwpLSKCwiM8AJCfn48FCxYgOzsbM2bMwBNPPIGGhgYsXLgQADB//nykpaVh5cqVADw1OdnZ2RgzZgzsdjs+/PBDvPLKK3j66aeVbioRqUzbPjw9f6tqG+FxytomIhqYFA888+bNw/nz57Fs2TJYrVZkZWVh48aN3kLmkpISaLVtA00NDQ148MEHUVZWhqioKGRmZuLVV1/FvHnzlG4qEalM22npPR+MNnPjQSLyoRFCiP5uhJxsNhvi4+NRW1uLuLi4/m4OEYVg/K8+gsPpxpc/n43hiZYePfY/B8px38s7MCU9Ae89dJlCLSQiuSj9+a3KVVpERC63gMPpBtDLKS3vTsuc0iIiBh4iUinfqaiQjpbglBYRgYGHiFTKd/8cs6Hnb1VSSOI+PEQEMPAQkUr5LknXaDQ9fjwDDxH5YuAhIlVqDOEcLaBtH56mFhfCbG0GEfUCAw8RqVIo52gBbcvS3QKwtxY/E1HkYuAhIlWSNgzs7QiPb1DibstExMBDRKoUyrESAGDQaWHQeWp/eJ4WETHwEJEqNTk801C9HeEBfAqXOcJDFPEYeIhIlbxTWr0c4QF8Nx9k4CGKdAw8RKRKoU5p+T6WIzxExMBDRKrUdlJ6KCM8niMpOMJDRAw8RKRKUqGxOaQaHq3fcxFR5GLgISJV8o7whDClJR06ymXpRMTAQ0Sq1BziTssAYG4NSxzhISIGHiJSJe+UlhyrtDjCQxTxGHiISJXkKFqWpsM4pUVEDDxEpEqyLEs3SlNaTlnaREQDFwMPEalSqKel+z5W2rWZiCIXAw8RqVKop6X7PraphSM8RJGOgYeIVKlJjhEeA4+WICIPBh4iUiVZRni4SouIWjHwEJEqyTnCw314iIiBh4hUyRt4QtppmcvSiciDgYeIVMk7pRXKTstGjvAQkQcDDxGpTovLDadbAAAsBn2vn6dtlRYDD1GkY+AhItXxHZExG3v/NuWd0uIID1HEY+AhItWRam50Wg2Mut6/TXmLljnCQxTxGHiISHV8C5Y1Gk2vn6dtp2UGHqJIx8BDRKojx0npQNsIj93phqu1JoiIIhMDDxGpjhwnpQP+K7y4NJ0osjHwEJHqyHFSOgCY9W2P50otosjGwENEquOd0gpxhEer1cBs8LzNsY6HKLIx8BCR6nintEIc4QEAi1Hv95xEFJkYeIhIdZocTgCh7bIs4XlaRAQw8BCRCslxjpaES9OJCGDgISIVampxA5B3hIertIgiGwMPEamOd0pLjhEeTmkRERh4iEiF5NqHB/CZ0uIID1FEY+AhItWRwkmoOy0DPiemt44aEVFkYuAhItWRpp/kqOGxcISHiMDAQ0Qq1CzjlJbZu0rLHfJzEdHAxcBDRKrTJNPhoYBP0XILp7SIIhkDDxGpTqOM+/BIo0TNXKVFFNH6JPCsWbMGGRkZMJvNyMnJwfbt2zu99rnnnsMVV1yBxMREJCYmIi8vr8vriSj8yDqlxWXpRIQ+CDwbNmxAfn4+li9fjl27dmHKlCmYO3cuKioqAl6/adMm3Hnnnfj8889RWFiI9PR0zJkzB2fOnFG6qUSkEk0ynZYOsGiZiDwUDzyrV6/G4sWLsXDhQkycOBFr166FxWLBunXrAl6/fv16PPjgg8jKykJmZiaef/55uN1uFBQUKN1UIlIJuU5LB3yXpTPwEEUyRQOPw+HAzp07kZeX1/aCWi3y8vJQWFgY1HM0NjaipaUFSUlJAb9ut9ths9n8bkQ0sMk5pcWNB4kIUDjwVFZWwuVyISUlxe/+lJQUWK3WoJ7j5z//OYYNG+YXmnytXLkS8fHx3lt6enrI7Sai/iVn0bJ3hIeBhyiiqXqV1uOPP4433ngD//znP2E2mwNes3TpUtTW1npvpaWlfdxKIpKTEKKthkfOER5OaRFFNL2ST56cnAydTofy8nK/+8vLy5GamtrlY1etWoXHH38c//nPf3DJJZd0ep3JZILJZJKlvUTU/+xON4Tw/J5Fy0QkF0VHeIxGI6ZNm+ZXcCwVIOfm5nb6uD/+8Y/47W9/i40bNyI7O1vJJhKRyviOxMgReLgsnYgAhUd4ACA/Px8LFixAdnY2ZsyYgSeeeAINDQ1YuHAhAGD+/PlIS0vDypUrAQB/+MMfsGzZMrz22mvIyMjw1vrExMQgJiZG6eYSUT+TRmKMOi30utB/JpNCEzceJIpsigeeefPm4fz581i2bBmsViuysrKwceNGbyFzSUkJtNq2N7Wnn34aDocD3/3ud/2eZ/ny5XjssceUbi4R9bO2k9LlGYC2GPV+z0tEkUnxwAMAS5YswZIlSwJ+bdOmTX5/PnXqlPINIiLVapLxpHSgbYTH6RZwON0w6lW9VoOIFML/+USkKk3ePXjk+XnMNzhxlIcocjHwEJGqyHlSOgAYdBrotBq/5yaiyMPAQ0Sq0rbpoDxvTxqNBhZuPkgU8Rh4iEhVmmWe0gLazuTiCA9R5GLgISJVaZR5SgvwPV7CKdtzEtHAwsBDRKrSJOPBoRLvbssOt2zPSUQDCwMPEamKNKUlxy7LkrbdljnCQxSpGHiISFWkUCLXPjwAz9MiIgYeIlIZadpJzsDjPV6CgYcoYjHwEJGqNCkxpWXkAaJEkY6Bh4hUpUma0pIx8HAfHiJi4CEiVfGO8Mg5pcV9eIgiHgMPEalKU0trDY+c+/Aw8BBFPAYeIlKVJgVWaUVxSoso4jHwEJGqKDKlZeAID1GkY+AhIlVpcsi/Sov78BARAw8RqYoSgadtp2UGHqJIxcBDRKqizFlaer/nJqLIw8BDRKqiyGnpRs9bHXdaJopcDDxEpBput4Dd6VmWLucID6e0iIiBh4hUo9nZFkjkPTy0dUqLgYcoYjHwEJFq+I7AmPXch4eI5MPAQ0Sq0eSt39FCq9XI9rwW7rRMFPEYeIhINZoVOCkdaKvhaWpxwe0Wsj43EQ0MDDxEpBqNCuzBA/gXQEtF0UQUWRh4iEg1lDhWAvBf4s46HqLIxMBDRKqhVODRaTUw6j1vd42th5MSUWRh4CEi1VDiWAmJNK3FzQeJIhMDDxGphjfwtO6bI6cobj5IFNEYeIhINbxTWgb535qiuDSdKKIx8BCRakhhxKLgCA+LlokiEwMPEamGFEbkPDhU4g08HOEhikgMPESkGkrtwwP4TGlxhIcoIjHwEJFqSCuo5DwpXcKiZaLIxsBDRKrRtkqLy9KJSF4MPESkGo1K1vBwlRZRRGPgISLVaFulJX/gkUJUI0d4iCISAw8RqYZSp6UDbSGKIzxEkYmBh4hUQzrnisvSiUhuDDxEpBpNLW4ACq3Sat3MkMvSiSITAw8RqUazQqelA9xpmSjSMfAQkWpIU1rKbDzoebvjlBZRZGLgISLVUHIfnigDp7SIIhkDDxGpRpOCq7SkEMWdlokiEwMPEalCi8uNFpcAoEzRMndaJopsfRJ41qxZg4yMDJjNZuTk5GD79u2dXrt//37ceuutyMjIgEajwRNPPNEXTSSifuYbRLgsnYjkpnjg2bBhA/Lz87F8+XLs2rULU6ZMwdy5c1FRURHw+sbGRowePRqPP/44UlNTlW4eEamEFEQ0GsCkl/+tqW1Kyyn7cxOR+ikeeFavXo3Fixdj4cKFmDhxItauXQuLxYJ169YFvH769On405/+hDvuuAMmk0np5hGRSkj1OxaDDhqNRvbnl0Z4mlv3+iGiyKJo4HE4HNi5cyfy8vLaXlCrRV5eHgoLC2V5DbvdDpvN5ncjooGnScE9eIC2wONwueF0MfQQRRpFA09lZSVcLhdSUlL87k9JSYHVapXlNVauXIn4+HjvLT09XZbnJaK+Ja2eUqJ+B/APUlyaThR5BvwqraVLl6K2ttZ7Ky0t7e8mEVEvNCt4UjrgqQuSZsoYeIgij17JJ09OToZOp0N5ebnf/eXl5bIVJJtMJtb6EIUBJffgAQCNRgOLQYcGh4srtYgikKIjPEajEdOmTUNBQYH3PrfbjYKCAuTm5ir50kQ0wCg9pQW0TWtxhIco8ig6wgMA+fn5WLBgAbKzszFjxgw88cQTaGhowMKFCwEA8+fPR1paGlauXAnAU+h84MAB7+/PnDmD4uJixMTEYOzYsUo3l4j6iXeVlkJTWkBbmOJuy0SRR/HAM2/ePJw/fx7Lli2D1WpFVlYWNm7c6C1kLikpgVbbNtB09uxZTJ061fvnVatWYdWqVZg1axY2bdqkdHOJqJ8oeVK6xLvbMgMPUcRRPPAAwJIlS7BkyZKAX2sfYjIyMiCE6INWEZGaSKMu0iGfSojiCA9RxBrwq7SIKDy0nZSu3NsSa3iIIhcDDxGpgtKrtHyfm4GHKPIw8BCRKrSN8Cg4pWXkAaJEkYqBh4hUoW9GePR+r0VEkYOBh4hUwTvCY1Cyhsfz3CxaJoo8DDxEpApt+/AoN6UlPXczR3iIIg4DDxGpgjTCY+6DjQdZw0MUeRh4iEgVGvtwlRantIgiDwMPEamC0qel+z43p7SIIg8DDxGpglTDo+jhod4RHqdir0FE6sTAQ0Sq0NgHIzzcaZkocjHwEJEqNPfpTstuxV6DiNSJgYeI+p0Qom3jwT6o4WnilBZRxGHgIaKg7TtTi/8cKJf9eR0uN1xuAUDZwGPmlBZRxGLgIaKgCCGw+OUduO/lHThktcn63M2OtimmPpnSUmBZenOLC79+dx++OlYp+3MTUegYeIgoKGXVTThX2wwA2HGqWtbnbmzxTDHptRoYdMq9LVkUPDz0n0Vn8MrW0/jNBwdkf24iCh0DDxEFpai0xvv7Yp/fy6HtpHTlRncA36JlF4QQsj53UYknBB4pr0ODnTVCRGrDwENEQdntE3J2yx14+mCFFtAWqNwCsDvlXaklhUC3APaU1cr63EQUOgYeIgqKb8g5dr4edc0tsj13X43w+G5qKOduy3XNLThaUe/9c1GpvFN+RBQ6Bh4i6laLy419Zz2jFmaDFkIAe8/IN4rRVyM8Bp0WBp0GgLznae0pq4XvDFlxSY1sz01E8mDgIaJuHbbWobnFjVizHrMvGgIA2F0qY+DpoxEewL+ORy5S/U5aQpTnz6U1stcIEVFoGHiIqFu7y2oAAFOGJ2DqiAQAQLGM0zZS+FDyWAlJlAIrtaT6nbtyRkCv1eB8nR1nW1e0EZE6MPAQUbek+p2s9ARMGZ7Qep8CIzwKT2kBgMWo97ymTCM8QggUtU5h5Y4ZhMyhsQDaRn2ISB0YeIioW1K4mZKegMnD46HVAFZbM6wyjWL0xUnpErPMmw+WVjXhQoMDRp0WFw+Lw9T0RACs4yFSGwYeIupSvd2JIxV1AIApw+NhMeoxPsUziiFNdYWqL05Kl0QZtH6vGSppRdaEYXEw6XXISk9ovb9GlucnInkw8BBRl/a2rkAaFm/GkDgzAHg/1OXagLAvTkqXSFNaci1Ll6azprZ+T6Qap31nauGQea8fIuo9Bh4i6pI0ipPV+kEOeKa2APk2IJSml8x9MMJjlnmVlhT6pKAzKjka8VEG2J1u2c8cI6LeY+Ahoi5JoUYqVgbaRnj2lNXC7Q59+XWjtErLoA/5ubojTZvJMaVld7pw4Kwn1Ei1OxqNRvYRMCIKHQMPEXVJ+tCWRnUAYNyQGEQZdKi3O3Gisj7wA3ug2bsPj/JvSdK0mRxTWgfO2uBwuZEUbUR6UpT3fm8dDwuXiVSDgYeIOlVua8a52mZoNcDktHjv/Xqd1vvnYhmWpzf24bL0KO8IT+gHfPrW72g0Gu/9bXsV1YT8GkQkDwYeogHK5RbYfrIKTpdyhbHSdNb4lFhEm/ynm6akS4En9P1mvEdLGJWf0mrbeDD071uxz/5EvqQ/n6xsQHWDI+TXIaLQMfAQDVB/LTiK258pxJ8/PaLYa/jusNxeVmvNihwbEPbVWVq+r9HUIsMIT2vYmzoi0e/+BIsRo5OjAQDFMi3dD+TgORv+/MlhWUariMIdAw/RANTkcOGlr04BAF7dehoNdmU+8ALV70ikEZ6D52wh18M09eE+PBaZjpaorLejtKoJGg1wSXp8h69Lq9qUquNxuwV+9HoRnvzsGNZ8fkyR1yAKJww8RAPQu8VnUNvUAgCoa3binV1lsr+G2y2wx7vDcscP9LSEKCTHGOF0Cxw4F9ry637ZaTnEkCbtpDx2cAzizIYOX5+q8EqtL46cx7EKT8H4q1tLOMpD1A0GHqIBRgiBF7ecAgBkpnp2PH7xq1OyLA/3daKyAXV2J8wGLS5q3VnZl0aj8TlXqyak1+rL09LlWpbeWf2ORJrmKi6plv3vBgCe23zC+/vapha8vVP+0EsUThh4iAaYwuMXcLi8DhajDuvunY4Ykx7Hzzdg87FKWV9HCjGT0+Kh1wV+q5Brv5k+PS1dpmXpndXvSC5KjYVJr4Wt2YmTFxpCeq329p2pxVfHL0Cn1eD+WaMBAM9vPgmXAsGKKFww8BANMC+01u7c+o3hGJYQhe9OGw4AeHHLSVlfpzjAhoPtybXjcl+elm6WYYTH5RbeYu3ORngMOi0uGe6ZCpS7juf51tGdGycPxcPXjEN8lAElVY349IBV1tchCicMPEQycbkFhFD2J+zSqkb852A5AGDBzJEAgHtnZkCjAT4/fB4nK+UbSfCu0OrkAx2A9wP91IVG1DT2bvm1EKJPa3gsMtTwHD9fj3q7ExajDuNTYjq9rm0ELPSl+5JztU34YM85AMDiK0bDYtTje5eOAAA8t1ne0EsUThh4iGRQcqERs1dtwvx122U7lDKQl746BSGAK8YlY+wQT11NRnI0Zl80xPt1OTS3uHCwtRC5sxEMwLP8elTr8uvdZb1bnt7c0rYfTp9MabW+RnMIIzxFJZ4A09V0H9A23SXnCM+LW07B6Ra4dHQSJrcGzgW5GTDqtNh5uhq7SuQLV4FsP1nFDRVpQGLgIQpRc4sLP1y/EyVVjdh8tBK//eCAIq/TYHdiw45SAMD3Lxvl97V7Z2YAAN7eWYa65paQX+vgORtaXAKDoo0YnhjV5bVTWj90i3v5oe470tInIzzSlFYIwbTtwNDA9TsSKSwestaFvAweAOqaW/DathIAntEdyZA4M76dNQxA23SXEj7aew63P1OI7/xtCzYfPa/Y6xApgYGHKEQr/nUA+8/aEGvWQ6MB1m8rwT+L5F8x807RGdQ1OzEqORqzxg/2+5pnxCcG9XanLKt1fPff8T0yIRDpQ313LzfYk5ZTG/Va6LRdv5YcvMvSQxrhqQHQ9egXAAyNNyMlzgSXW2DvmdA3aNzwdSnq7E6MHtw2qie5rzUAbdxnRcmFxpBfq70DZ23If3M3AMAtgCWvFck6hUqkNAYeohD8Y2cZXt9eAo0GWHPXN/Djq8cBAH7xzj4cttbJ9jqepeie+owFuSOhbRcMNBoNFrSO8rwkwxL1QCekd8a3cLk3NUzNfbhCC2grjLY73b1a1VRvd+JIuefvVjozqzP+J6eHNtXkdLnxQut2BIuvGN3h38BFqbG4cvxguAWwTuYC9gv1dix+eQeaWly4fGwypo5IQG1TCxa/vEOWEUWivsDAQ2GnptGBJa/twsyVBdi475xir3PIasMv390LAHj4mnG4cvxg/PiacbhiXDKaWqe56mXaAXnz0UocP9+AGJMet7auymrvO1PTEGvW49SFRmw6UhHS60n1OFndfKADwIShcTDoNLjQ4EBZdVOPX0s606ovVmgBgMXnvK7e1FvtKauBWwDD4s1IiTN3e71cdTwf7bPiTE0TBkUbccvUtIDXLL7CM9X55o5S1DbKE0QcTjd+uH4XztQ0IWOQBU/dNRXPfG8aUuJMOFZRj4ffKFZ0OXxVgwMvbDmJE+frFXsNigwMPBRWdpyqwg1/3YwP9pzD2dpmPPDqLvz63X2yFxLX25148NVdaG5x44pxyfhR68iOTqvBE/OykBpnxonzDfj5P/bIsnLrxdZi5O9OG47YALv6AkC0SY87pqcDgHckoDdqGh3eqQqpPqcrZoMOE4bGAejdtJY0pdVXgcekb3vb681KrWDrdyRy7FUkhPDW5tyTO7LTWqfLxyYjMzUWjQ4X1m8/3evX87XiX/ux/WQVYkx6PL8gGwkWI4bEmfHsPdkw6rX47FAFVn1yWJbXam/jvnOY85cvsOJfB3DdXzfjuf+e4F5D1Gt9EnjWrFmDjIwMmM1m5OTkYPv27V1e/9ZbbyEzMxNmsxmTJ0/Ghx9+2BfNJIWcOF+Pl746he0nqxRbtu1yCzz12VHMe3YrztY2I2OQBfdc6lm2/crW07h5zRbvNvyhEkLg5//YgxOVDRgab8YT87L8ak8GxZiw5u6p0Gs1+Peec3i5MLQPnpOVDfjsUAU0mrbi5M7Mz/UsUd98tBLHKno3pSaN7mQMsiDBYgzqMd4P9V6MYrSdlN43gUer1bQdINqLOp5g63cklwyPh1YDnKtthrW2ucevB3hWRu0uq4VJr/X+uw5Eo9F4i5lf3HIKDmdoJ8K/uvU01m/zTNn+9Y4s78pAwDOV+cdbLwEAPL3pON4rPhPSa/mqbnDgR68X4YFXd6Gy3oE4sx4Opxu///Agbn+mUPHRnuYWFy7U2xV9Dep7igeeDRs2ID8/H8uXL8euXbswZcoUzJ07FxUVgYfcv/rqK9x5551YtGgRioqKcPPNN+Pmm2/Gvn37lG5qxHC5heI/JTU5XPjHzjLc/kwhrv7zF1j+/n7c/kwhrvnzF1j7xXGcr5PvzaTC1oz567Zh1SdH4HIL3Jw1DB/8+Ar89uZJeOn7MzAo2ohD1jrc9OSXeGtHacih66WvTuHfe85Br9Xgqbu+gUExpg7XTBuZhKU3TAAA/O7fB7zLmHv7egAw+6IhyGhdAt6Z9CQL8iakAGgbFeqp3V0cGNoZ7xETvRjhae7Dk9IlUrjq6QiPEMJnhCchqMdYjHpclOoZAettHY+0v853vjE84L83XzdNGYaUOBMq6ux4f/fZXr0eAGw9cQGPvb8fAPCzuRfhmtZ/V75unprm3en5f9/egz0ynAz/8X4rrv3Lf/Gv3Weh1QAPzR6D7b/Mwx9unYwYkx47T1fj+r9uxvOb5R3tcTjdKDhYjv/ZUIxpv/0U0373H3zrqS/x3H9P4GxNz6dqSX00QuGd0nJycjB9+nQ89dRTAAC324309HT86Ec/wqOPPtrh+nnz5qGhoQEffPCB975LL70UWVlZWLt2bbevZ7PZEB8fj9raWsTFxcnXERk5XW5UNTpwod6BqgYH6pqdSLQYMCjGhOQYI+LMhg4Fib1V19yCQ9Y6HDhrw8FzNhw4Z/MW02amxmLC0DhMHBaHCUPjkJka2+l0STCEENh3xoY3vi7B+8VnUddav6LVANkjk7DvbK13d1u9VoOrM4fgjhnpuHLc4C73MunKpsMVeOTN3bjQ4ECUQYff3jwJt34jzW9lUYWtGf/zZjG2HLsAALg5axh+d4vnzbOndpVUY94zhWhxCSy/aSIWtlse7ksIgQfX78JH+6wYFm/GBz++AknRwY2YSOqaW5C78jPU2514ZdEMXDFucLeP+epYJe56fhuiDDps/cU1iI/q2d/pohe/RsGhim775+tYRT3yVn8Bs0GLfY/N7dHf5zu7ypD/5m5cMS4ZryzK6VFbe+uyxz/DmZomvPvQZUGP1ABAWXUjLv/D59BrNdi3Ym7Qy+h/8c+9eG1bCe6/crQ3CAfrxPl6XLP6CwgBFDwyC2MGd77RoeTpTcfxh42HkJkai48evqLblXbtlVY14ttrtqCqwYFvTRmGv96R1elzuNwC9730NT4/fB6pcWa8/6PLMCS2+9qm9qobHHjsX/vxXrEnpI0bEoNVt03xC95naprw6D/2YPNRzzEq2SMT8afbpnj3guopp8uNwhMX8K/dZ7FxnxW25s5r7rJHJuKblwzFDZcM7VX/fDW3uHCysgHHz9fjWEU9jp9vwInz9Ygy6DBmcAzGDonBmCHRGDs4FmmJUbKtXpQ2+axqcKCmsQV1zU7EmvVIjDYiyWLss1HWzij9+d3zd/wecDgc2LlzJ5YuXeq9T6vVIi8vD4WFhQEfU1hYiPz8fL/75s6di3fffTfg9Xa7HXZ722iBzRbaqc2dqay346H1uxAfZUB8lAFxrb/63jQazyF+tqYW1PrcbE1OVDc6cKHBgQv1dtQ0taCrmKnXapAUbfQGoGHxURieGIXhSVEYnmjB8MQoDIk1Q6fVQAgBW5MTZTWNKKtuar01orSqCUfK61BS1fny1N1ltR02ixuRZMHk4fG4fGwyrhiXjOGJli6/L06XG7vLarD5aCU+3l/u3axOeq7bs4fju9PSkRpvRr3diX/vOYs3vi5FUUkNPjlQjk8OlCMlzoT5uRn4/mWjgv4PV9PowF8LjnprVTJTY/HUXd/A2CEdPwyGxJnx8vdzsPaL41j96RG8W3wWxaU1eH7B9IDXd6airhlL1u9Ci0vgxslDu51e0mg0+ON3L8Ehax1OVjbgfzYU48WF03v04fP2zjLU250YOyQGl49NDuoxuWMG4aKUWBwur8ObX5di8ZWju39QKyFEUDsstzc6ORqxZj3qmp04Ul6PicOCf7Nq6s8Rnh5OaUmjOxOGxvVoz6Cs9AS8tq0ERb2o4/n7lychBJA3YUhQYQcA7poxAk9+dhSHrHXYfLQSV47vPihLmhwuLH55B6oaHJicFo8/fveSLv/N6rQa/PXOqbhlzRYcP9+A+1/ZiVcW5fToB4qvjlfi4TeKcb7ODq0GuH/WGDx8zbgO3+O0hCi8/P0ZeH17KX7/7wPYcboa1//1v3joqrFYcFlGwFPrA7HWNuP5zSfwz6IzuNDQtkP44FgTbpw8FDdNGYoRSdHYuN+Kf+0+i69PVWHH6WrsOF2NFR8cwIyMJFw2NhnZGYmYmp7Y5fuW3enC3rJafH2qGjtPV+NoRR1KqxrR2eDUjtP+o4AmvRajkqORMSgaqa2F8qnxJqTEmTE0PgqpcWYYdBqcr7fDWtuMcluzZ/rU1ozy2mZU1NlR3diC6gYHqhodXU5zmvRaJEUbkWAxIim69bPO3PaZF2fWe36NMmBQtBGXBLGKU00UDTyVlZVwuVxISfEfCk1JScGhQ4cCPsZqtQa83moNfEbMypUrsWLFCnka3IWqBge2nayS7fk0GiDJYsSgGCOiTXrUNLagst6OumYnnG6Bijo7KrqY9jHoNBgSa4atqcU7ktKZofFmTBzqGcXx3Dzz8AfP1eHAuVrPr2dtsNqaUVLViJKqRvy7dev60cnRuGJcMi4fNxiXjk5CrNmA0xcasPloJTYfPY+vjl9Anc9PRUa9FtdPSsW87HRcOnqQ30hVjEmPedNHYN70EThSXocNX5fin0VnUG6z408fH8ZLX53C/1w7HrdNG97pCEFziwsvfnUKf/v8mPensfm5I/GLGyZ0+QGk02rw0OyxyBmVhB+/XoRTFxpxx7Nb8driHIwPcBJ4e+W2Ztz5nKc+aHRyNB6/dXJQwSXWbMDT3/sGvv3UFnxx5Dz+teccvjVlWLePAzyjO2s+Pw5AOj4iuKCk0Wgwf+ZI/PKf+/CPXWU9CjxHK+pRWe+AUafFxKHBhxatVoNJw+JReOICDp6z9Sjw2Jo8f4+9GXHrLem1apt6tpJJCvSTgyjm9jVtpHRyeg3q7c6g+2p3urwjHt+/PLjRNgCItxgwb3o6XthyCis/OoSZYwYFPeq25vNjOGStQ3KMCc/OnxZUsIszG/Dc/GzcvGYLikpqcNdzW/HCvdO7nX4DgA/2nEX+ht1wuNwYMzgaf749q8tRN41Gg7tyRuDK8cn4+T/2YMuxC/jzp0fw7OYTWDgzAwsvG4XETkZSS6sa8fQXx/H2jjI4XJ4P/kSLAddPHoqbLhmGGaOS/EZT7rl0JO65dCSstc34995z+GDPWRSV1GDbySrv54Feq8GktHhMz0jE9IwkTBgah2MV9fj6VBW+PuWpvQoUMuLMes9IzuAYjGn9tdHhxPHzDTheUY/j5+txorIBdqcbh6x1ONTFNhcaDbr8Ibo9o06LBIsBMWY96ps9P5C3uATsTjfO1XoCU3dGDrLgi5/NDv5FVaDv3mEUsnTpUr8RIZvNhvT0dNlfJyXOjCfvnNo2atPccSTH7Yb/qI/Fk4g9vzciuXXUZlCMEYkWY8BhSrvTheoGT/i50OBAha0ZZ2uaUVbdOoJT04hzNc1ocQmc8ZlXTo4xIq119Gd4YhSGJ0RhzOAYTBga1+l//tGDY3DjJUO9f65qcODAWRt2nK7C5qOVKC6twYnKBpyobMBLhaeh12qQHGOC1eb/nyE+yuAdEbpuUmpQha7jU2Lx629OxM+vy8QHe85i9adHUFbdhKXv7MXzm0/gf6/LxJyJKd4PeZdb4B87y7D60yPe189MjcXSGyZ02ISvK9kZSfjgx1fge89vw4FzNtz57FasX5yDzNTOP6DP1Tbhrue24WRlA9ISovDCwuk9mvrLTI3Dktlj8edPj2Dlhwdx7YSUoEay1nx+HJX1doxKjsbt2T37N33DpKH49bv7cMjq+WkyPanrkTrJJ/s9P1hcPi65x7sej0iyoPDEBb9/l8E4U+MZhUzrZkdnOaUlRKG4tKbHbZWW3WcMCu77KRmdHI3RydE40VqAHmzo3XKsEvV2J1LiTLh01KAeveaPrh6HfxadwcFzNrxceDqowHT8fD2e+a8nZP/+lkkYGh/838nowTF4eVEOFr6wHXvKanHb2kK89P0ZXf7be7nwFJa/vx9CADdMTsXq27OC/nc3PNGCVxfl4P3dZ/HkZ8dwrKIe//fZMTz/5Uncc+lILLpilHfq6fj5evzt8+N4t/iMt+5nRkYS7p81GleOHwxDN2EwNd6MRZePwqLLR6G0qhGfH67A16eq8fXJKlhtzSgurUFxaU2nZ5klxxgxPSMJ00Ym4uJh8Rg7JAbJMcZuf4hxuQXKqhtxrKIeZdVN3lGbc60jOVZbMxodLgjh+aEuJdaElHgzUuPMSG39NSXOjMRoIxItBiRajEiMNiLaqPN7bSEEGhwuVDc4UN3oKbWobnTA1uT0fs55PvOc3t/35N+GWigaeJKTk6HT6VBeXu53f3l5OVJTUwM+JjU1tUfXm0wmmEzd/xQRqvgoA24K8k0qFCa9DqnxOqTGdz5H7HKL1mHLJsRHGZCWYJFl7jUp2ojLxyXj8nHJ+EneeNiaW1B4/AI2Hz2PzUcrcfpCI6y2Zui1GnxjZCKuHJeMK8YNxqS0+F7PMRv1WnznG8Nx4yVD8erWEjz12VHvsPi0kYl49PpM1Da24I8fH8KRcs/KjLSEKORfOx43T03r1esmRRvx2uIcfO/v27DvjCf0vHpfDi4e1vGn9jM1Tbjz2a0oqWrE8MQovL740qDDg6/FV47GG1+X4kxNE9Z+cRz/c+34Lq8/VdmAdV963jx/deMEGPU9q3FKjDZixqgkbD1RhU8PlAc9OvDJAc//vTkTOxaodkcKLGXVPdvlVwoRaQl99wY6POS29uzfgEajwdxJqXh603F8vM8adOD5aK8ngF53cWqP6/qSoo34+XWZWPrOXqz+9AhuvGRol/sGCSGw7L19aHEJXJ05pFf/BrLSE/D2D2di/t+340RlA259+iu8vGhGhx8ohBD4y6dH8H+fHQMAfO/SEVjxrUk9/v+s0Wjw7aw03HTJMHy834onPzuGA+dseOa/J/DiV6cwb3o6qhoc+Pfec94RkCvGJWPJ7LHIGd2zAClJT7Jgfm4G5udmQAiBsuom7Dhdha9PVWPHqSocrajHqEHRyM5IRHZGEqZnJCFjkKXHdVSAJ8SMHBSNkYMC1ygJIWBrdsLudGFQtKnX78MajQYxJj1iTPpevb8NFIoGHqPRiGnTpqGgoAA333wzAE/RckFBAZYsWRLwMbm5uSgoKMBPfvIT732ffvopcnNzlWzqgKLTajAsIQrDFP6AiDMbMPfiVMy92BM2Sy40oqymEZcMT5B9+sGk12HR5aNwW/ZwPPvFCTz/5QnsPF2N29a21XrFRxmwZPbYLvchCVaCxYj1iy7F/HXbsLusFnc9tw3r78vBpLS20FNa1Yg7n9uKsuomjEiy4PUfXNrrD2WzQYdf3DABD722C2u/OI7bp6d3+Vy///AgHC43rhw/GFdnDun0uq7MmZiKrSeq8MkBa1CB52xNE/aU1UKjQcAVOd2RQkSPR3haQ0R39WJyags8PR3hafR7fE9c3xp4Pj9cgeYWV7f/hltcbnx60BNAr5s0tMtrOzMvOx0bvi5FcWkNfvvBATx11zc6vfb93Wex5dgFmPRaPHbTxb36gAaAMYNj8I8fzsSCddtxuLwOt60txN8XTMeMUUkAPD+w/erdfXh9u+dMsJ/kjcPD14zr9esBninV6ycPxXWTUvH54Qr8X8ExFJfW+G0JkTchBUuuHtujIvXuaDQapCdZkJ5kwS1TPRuCutyiT45IkV7fsyih94tNIoniy9Lz8/Px3HPP4aWXXsLBgwfxwx/+EA0NDVi4cCEAYP78+X5FzQ8//DA2btyIP//5zzh06BAee+wx7Nixo9OARH1nxCALZo5JVrTWIs5swE/nXoQvfjYbd84YAZ1WA5NeiwdmjcF//3c2Fl85WrYDJuMtBrxyX453m/y7ntvqXZJd0lrjU1bt2V12w/29DzuSGyanYsaoJNidbjz+UeAaNgDYfPQ8Pj1QDp1Wg2XfnNDrD4JrW39C336yCtU+hZmd+U/rh+s3RiRicGzPR02l709PQoT0EzLQt1NaUrjqSVvtThfKbfbWx/e8rZPT4pGWEIVGhwtfHOn+4M3tJ6tQ09iCpGgjpmcEt8lhe1qtBr+7eRK0GuCDPec6PfDT1tyC3/37IABgyeyxGNHDKbv2UuPNePP+XGSPTERdsxP3/H0bPtlvRXOLCw+t3+U9juV3N0/CT/LGhxR2fGk0GlydmYJ/PjgT6+/LwXUXp+I7U9Pw4Y+vwPMLsmUNO53pq7BDPad44Jk3bx5WrVqFZcuWISsrC8XFxdi4caO3MLmkpATnzrVt/z9z5ky89tprePbZZzFlyhS8/fbbePfddzFp0iSlm0oqkhJnxsrvTMbm/52Nrx69Go9en9nj5dXBiDMb8PL3ZyB7ZCJszU587/lteK/4DOY9W4gzNU0YnRyNDffnyjJfrdFosPymidBogH/tPovtAYrgnS43fvMvz2nr83NH+m301lPpSRZMHBoHtwAKDnV/1MSnIUxnAcDw1qHwszVNQZ/lVdXg8K7SGpYQ2lLfnujNlNbZGk/tWJRB1+PtBYDWaa3W0dKP9wVehOHro9ZjUeZMTOn1tg0AMCktHvNzMwAAy97bD7uz48q01Z8cwfk6O0YnR+MHs4Ivcu9KvMWAV+/LQd6EIbA73Xjg1Z24ec0WbNxvhVGnxd/u+ga+18UmiqHQaDS4bGwy1t4zDavnZfWoiJ7CV5/stLxkyRKcPn0adrsd27ZtQ05O214bmzZtwosvvuh3/W233YbDhw/Dbrdj3759uOGGG/qimaRCwxKiglrpEYpYswEvfX8GZoxKQp3diYffKMa52maMHRKDN35waVDnJQXr4mHxuGP6CACeLfvbb5y2flsJjlbUI9FiwE+u6brOJxhzLvaEF6kYuTO1TZ56Lc9jAtfLdScl1lND0OISXa4w9CVNfw2JNcGk77tl6dJoUl2zM+iVWr7TWb0dkbh+sud7++nB8i6XB7vdAh/v9wTQuZN69/fhK3/OeAyONeFkZQOe/eKE39f2nanFy4WnAAC/+fYkWf8ezAYd1n5vGm7PHg63AA5Z6xBj0uPF70/H9ZN7N01H1Fs8S4sInnOoXlw4HbmthYzjU2Lw+uJLMUTGsCP56ZzxiDXrsf+sDW/vLPXeX93gwOpPjwAAHplzEeItoY9oSdNa/z16vss9ZzYdroDTLTBuSEyvN3HT67QY2lpsL6286k6Zt36nb1d8WIx6DGodpTkT5LSWHG2d1jpdWNfsROGJC51et6ukGufr7Ig16XHZmOD2X+pKnNmAX39zIgDgqc+PoeSC5+/H3VpP4xaeHZovHxf6a7Wn12nxh1svwU/njMeMjCS88YNLMVOGPhH1FAMPUSuLUY8XFk7Hs/dMw9s/nNmrOpZgDIox4eFrPIeN/unjw7A1e0YY/vKfI6htakFmaqz3ENBQTRwah7SEKDS3uDut3wCAT1pHE6QRod7qaR3PGW/9Tt+vDOnptFbbCE/v26rVarxThhv3nev0uo9ap7yumTCkxyv0OnPTJUNx2dhBsDvdWP7+Pggh8EZrQXOMSY9f3dizHaB7QqPRYMnV4/DmA7l+CwOI+hIDD5EPs0GHORenBr1ja2/Nz83A6ORoVNY78NRnx3DYWof12zyrVpZ9c2JINRu+NBpN27TWgfKA1zS3uLDpsKfGZ87E0KZPeloMHMqqp1D1vK3yjEZd37ri6pP95QHPghJCYGNr4Ont6qxANBoNfvPtSTDoNPj88Hm8vr0Uf9joKZ7Pv3a8rFO3RGrEwEPUD4x6rXeK4YUtJ/HTt3bD5Ra47uJUzAzyCIlgSSGm4GA5nK6OdSOFxy+gweFCapwZk0P86Tuth8u9pRqevtyDR9LTpellMi2fzxmdhPgoAy40OPD1qY6F6/vO2HCmpglRBl2PNtUMxpjBMbj/yjEAPOd71Ta1YMLQOMzPVaZ4mEhNGHiI+snszCG46qLBaHEJ7D1TC6Nei1/08GDJYEzPSESCxYDqxpYO5/QAwCcHPKMJ105MCfnQ2p7uxdNfNTy+r9nzKa3Q2mrQab21VRsDrNbauN8z1XXVRYMVOczxodlj/frwu5snyTaiSKRm/FdO1I9+deNE6FtDxuIrRoW8/0kgep0W12RKq7X8p7VcbtG2HD3E+h0AGJ4QfIgQQvhsOqjuKS270+VdeSZHW69vXXm1cZ/Vbwm/EMJbv3OdDKuzAoky6vD/bpkMo06L7182ynvOF1G4Y+Ah6kdjh8Tg/90yGfOy0/HQ7LGKvU5bHY8VwueUweLSalTWOxBr1iOnh2c1BSKFiDPVTX6vE4ityek9+LanRzXIoSdHYZyraYYQvd+Dp73LxiYj2qiD1dbsPZ0eAI5V1OPE+QYYddpe77AdjCvHD8beFXPw628qV6hMpDYMPET97Pbp6fjDdy+BxajcDtZXjhsMs0GLsuomHDzXduqyNOJzdaY8q4FS483QagC7043K+q53dy5rXbo+KNqoyNRNd6S6IVsQe/H4Tr3JsSuw2aDD1RM6TmtJozuXj0vu0QG1vWHS62Tb4ZhoIGDgIYoAUUYdrhjnKYCVanaEEPh4f1v9jhyMeq13tU93dTz9Wb8DePZeSgpyLx4lVpNd17rB40f72kbdlJ7OIopkDDxEEULa/0Ua1TlWUY9TFxph1GllXQ0UbDHwmX44Q6u9YNsq1wotX1ddNBgmvRYlVY04eK4Opy804OA5G3RaDa7txeGtRNQ1Bh6iCHHNhBRoNcCBczaUVjV69+WZOXaQrNMn0lRR96MmfX9KenvBLk1XYoQn2qT3Bs2N+855p7YuHZ2ERBnqhIjIHwMPUYTwnLqdBMBzUKh0vlaomw22F+zqJ+n4if7Yg0cSbFuVCmfS1NXG/VZsbP37uK6XZ5kRUdeUq5IkItWZc3Eqtp2swuvbPYeUajRA3kR5VwOlBbkXT3/X8Pi+dvBTWvK29ZoJKTDoNDhSXg8A0GjgPVGdiOTFER6iCCLV8Ryt8HzATk1PwJBYeY8UCLqGp0ZNNTydhzO704Xyuma/6+USH2XwO0hz2ohERQ6sJSIGHqKIkp5kwYShcd4/z1FgNMG3hqezvXjq7U7UNLb4Xd8f2qa0Og9n0h48ZoNWlj142vNdkcXVWUTKYeAhijBzfJagz5FpObqvYa0BpsHh8oaa9qSC5vgog+L7zXTFdy8e6dT69nzrd5TYt2bOxBTotRpOZxEpjIGHKMLcNGUojDotstITMHpwjOzPbzboMDjWBKDzOp7+PCXdVzB78Sjd1kExJqy7dzqen5+N9KT+W7FGFO5YtEwUYcYOicWn+VciIUq5pc/DE6Nwvs6OsupGTApwAnt/npLe3vDEKFQ1OFBW3eQ33Sfpi+LqK2U+FZ2IOuIID1EEGjkoGvEW5aaS0hK6LgZWwx48ku6KrNtGePq/rUTUeww8RCS77va3UcMuy5Ju21rT/8vniSh0DDxEJLvu9uJRSw2Pbxs6H+FRz2gUEfUeAw8Rya67/W3UVsMDBG6rw+mG1abMHjxE1LcYeIhIdsO9e/F0HDVpcrhQWe8AAKSrYNQkLaHzKa1ztU3ePXgG8XwrogGNgYeIZCdNaQXa30Ya3Ykx6REX1f8LRaW21ja1dGir0nvwEFHfYeAhItlZjJ3vb+Nbv6OGEBFj0iOxdcVaV20looGNgYeIFNFZbYya6nckna3UUsMBp0QkDwYeIlJEWid1PGoMEZ2t1OIKLaLwwcBDRIrodIRHRXvwSDprK6e0iMIHAw8RKcI7wlPTWYhQz6hJZ6emc4SHKHww8BCRIjqri1FnDU/HER7uwUMUXhh4iEgRgXZbtjtdKLfZAagrRAQKZ9yDhyi8MPAQkSKkwFPV4ECD3QkAOFfjGTExG7TeZetqEGgvHu7BQxReGHiISBFxZgPizJ6NBaVRHrWGiEB78bBgmSi8MPAQkWKkqSIpRJyp8YQINdXvSNq3VY3L54mo9xh4iEgxae32t1FziGi/F493+XwCV2gRhQMGHiJSjDdEtE5pqXEPHkn7lVpqDmdE1HMMPESkGGnqqn2IUPOUVhlreIjCEgMPESmmYw2Pejfy84azmsZ2e/Cor61E1HMMPESkGN9pohaXG+dq1TtNNDypra3W2ma4BWDSa5Eco57l80TUeww8RKQYKdhU1ttx+kID3AIw6rQYHGPq55Z1JI3w1DS24KDVBsDTfjUtnyei3mPgISLFxEcZEG3UAQC2n6wGAAxLMEOrVV+IiDUbkNC6F8+2E1UAOJ1FFE4YeIhIMRqNxhsatp28AEDdIUIakdp64oLfn4lo4GPgISJFSUvQpVETNa7Qkgxv3XOnbUpLveGMiHqGgYeIFCWNkgyEk8eltgnh/2ciGvgYeIhIUe1HdNS46aCkfcBh4CEKH4oFnqqqKtx9992Ii4tDQkICFi1ahPr6+i4f8+yzz+Kqq65CXFwcNBoNampqlGoeEfWR9tNCap4mGkhtJaKeUSzw3H333di/fz8+/fRTfPDBB/jvf/+LH/zgB10+prGxEddddx1+8YtfKNUsIupj7Ud0VD3Ck9TWNu7BQxRe9Eo86cGDB7Fx40Z8/fXXyM7OBgA8+eSTuOGGG7Bq1SoMGzYs4ON+8pOfAAA2bdqkRLOIqB/4TgvptRqkxKpvDx6J7/Qb9+AhCi+KjPAUFhYiISHBG3YAIC8vD1qtFtu2bZP1tex2O2w2m9+NiNRjULQRZoPnrSY13gy9Tr2lg7578XA6iyi8KPLOY7VaMWTIEL/79Ho9kpKSYLVaZX2tlStXIj4+3ntLT0+X9fmJKDQajcY7cjIQioClNg6EthJR8HoUeB599FFoNJoub4cOHVKqrQEtXboUtbW13ltpaWmfvj4RdS+tdbQkLUH9oybprW1NT1J/W4koeD2q4XnkkUdw7733dnnN6NGjkZqaioqKCr/7nU4nqqqqkJqa2uNGdsVkMsFkUm9NABEBYwZH479HzmP04Oj+bkq37p81BhajHt+ZmtbfTSEiGfUo8AwePBiDBw/u9rrc3FzU1NRg586dmDZtGgDgs88+g9vtRk5OTu9aSkQD1oNXjcXIJAu+M214fzelW1npCchKT+jvZhCRzBSp4ZkwYQKuu+46LF68GNu3b8eWLVuwZMkS3HHHHd4VWmfOnEFmZia2b9/ufZzVakVxcTGOHTsGANi7dy+Ki4tRVVWlRDOJqI8MjjXh3stGIc5s6O+mEFGEUmy5xPr165GZmYlrrrkGN9xwAy6//HI8++yz3q+3tLTg8OHDaGxs9N63du1aTJ06FYsXLwYAXHnllZg6dSref/99pZpJREREEUAjhHRqTHiw2WyIj49HbW0t4uLi+rs5REREFASlP7/VuyEGERERkUwYeIiIiCjsMfAQERFR2GPgISIiorDHwENERERhj4GHiIiIwh4DDxEREYU9Bh4iIiIKeww8REREFPYYeIiIiCjsMfAQERFR2NP3dwPkJh0NZrPZ+rklREREFCzpc1upIz7DLvDU1dUBANLT0/u5JURERNRTdXV1iI+Pl/15w+60dLfbjbNnzyI2NhYajSbox9lsNqSnp6O0tDTsT1mPpL4CkdXfSOorEFn9jaS+AuxvOOusr0II1NXVYdiwYdBq5a+4CbsRHq1Wi+HDh/f68XFxcWH/j00SSX0FIqu/kdRXILL6G0l9BdjfcBaor0qM7EhYtExERERhj4GHiIiIwh4DTyuTyYTly5fDZDL1d1MUF0l9BSKrv5HUVyCy+htJfQXY33DWX30Nu6JlIiIiovY4wkNERERhj4GHiIiIwh4DDxEREYU9Bh4iIiIKe2EbeKqqqnD33XcjLi4OCQkJWLRoEerr67t8THNzMx566CEMGjQIMTExuPXWW1FeXu53TUlJCW688UZYLBYMGTIEP/vZz+B0OgM+35YtW6DX65GVlSVXtwLqr75++eWXuOyyyzBo0CBERUUhMzMTf/nLXxTpo6/+6u8777yDa6+9FoMHD0ZcXBxyc3Px8ccfK9JHSX/19dy5c7jrrrswfvx4aLVa/OQnP1Gie1izZg0yMjJgNpuRk5OD7du3d3n9W2+9hczMTJjNZkyePBkffvih39eFEFi2bBmGDh2KqKgo5OXl4ejRo37X9OZ7Kpf+6O/vf/97zJw5ExaLBQkJCXJ3qVN93ddTp05h0aJFGDVqFKKiojBmzBgsX74cDodDkf611x9/t9/61rcwYsQImM1mDB06FPfccw/Onj0re9/a64++Sux2O7KysqDRaFBcXNyzhoswdd1114kpU6aIrVu3is2bN4uxY8eKO++8s8vHPPDAAyI9PV0UFBSIHTt2iEsvvVTMnDnT+3Wn0ykmTZok8vLyRFFRkfjwww9FcnKyWLp0aYfnqq6uFqNHjxZz5swRU6ZMkbt7fvqrr7t27RKvvfaa2Ldvnzh58qR45ZVXhMViEc8884xifRWi//r78MMPiz/84Q9i+/bt4siRI2Lp0qXCYDCIXbt2hV1fT548KX784x+Ll156SWRlZYmHH35Y9r698cYbwmg0inXr1on9+/eLxYsXi4SEBFFeXh7w+i1btgidTif++Mc/igMHDohf/epXwmAwiL1793qvefzxx0V8fLx49913xe7du8W3vvUtMWrUKNHU1OS9pjff04Hc32XLlonVq1eL/Px8ER8fr3Q3hRD909ePPvpI3HvvveLjjz8Wx48fF++9954YMmSIeOSRR8Kyv0IIsXr1alFYWChOnToltmzZInJzc0Vubm5Y9lXy4x//WFx//fUCgCgqKupR28My8Bw4cEAAEF9//bX3vo8++khoNBpx5syZgI+pqakRBoNBvPXWW977Dh48KACIwsJCIYQQH374odBqtcJqtXqvefrpp0VcXJyw2+1+zzdv3jzxq1/9SixfvlzRwKOGvvq65ZZbxPe+971Qu9UptfV34sSJYsWKFaF2KyC19HXWrFmKBJ4ZM2aIhx56yPtnl8slhg0bJlauXBnw+ttvv13ceOONfvfl5OSI+++/XwghhNvtFqmpqeJPf/qT9+s1NTXCZDKJ119/XQjRu++pXPqjv75eeOGFPgs8/d1XyR//+EcxatSoULoSFLX097333hMajUY4HI5QutOl/uzrhx9+KDIzM8X+/ft7FXjCckqrsLAQCQkJyM7O9t6Xl5cHrVaLbdu2BXzMzp070dLSgry8PO99mZmZGDFiBAoLC73PO3nyZKSkpHivmTt3Lmw2G/bv3++974UXXsCJEyewfPlyubvWQX/31VdRURG++uorzJo1S46uBaSm/rrdbtTV1SEpKUmOrnWgpr7KzeFwYOfOnX7t1Gq1yMvL87azvcLCQr/rAU+7petPnjwJq9Xqd018fDxycnL8+t7T76kc+qu//UFNfa2trVXs/6dELf2tqqrC+vXrMXPmTBgMhlC7FVB/9rW8vByLFy/GK6+8AovF0qv2h2XgsVqtGDJkiN99er0eSUlJsFqtnT7GaDR2mONOSUnxPsZqtfp9SEhfl74GAEePHsWjjz6KV199FXq98mez9mdfJcOHD4fJZEJ2djYeeugh3HfffaF0qUtq6K9k1apVqK+vx+23396brnRLTX2VW2VlJVwuV8B2dNW3rq6Xfu3ump5+T+XQX/3tD2rp67Fjx/Dkk0/i/vvv71U/gtXf/f35z3+O6OhoDBo0CCUlJXjvvfdC6k9X+quvQgjce++9eOCBB/x+WOmpARV4Hn30UWg0mi5vhw4d6rf2uVwu3HXXXVixYgXGjx8f0nOpva++Nm/ejB07dmDt2rV44okn8Prrr/f4OQZSfwHgtddew4oVK/Dmm292+ADtzkDrK9FAc+bMGVx33XW47bbbsHjx4v5ujqJ+9rOfoaioCJ988gl0Oh3mz58PEWYHKDz55JOoq6vD0qVLQ3oe5YcgZPTII4/g3nvv7fKa0aNHIzU1FRUVFX73O51OVFVVITU1NeDjUlNT4XA4UFNT4/fTcXl5ufcxqampHarRpdUvqampqKurw44dO1BUVIQlS5YA8Ex7CCGg1+vxySef4Oqrrw6LvvoaNWoUAGDy5MkoLy/HY489hjvvvLPbPvoaSP194403cN999+Gtt97qMFQbjIHUV6UkJydDp9N1WD3m2872UlNTu7xe+rW8vBxDhw71u0ZaKdmb76kc+qu//aG/+3r27FnMnj0bM2fOxLPPPhtqd7rV3/1NTk5GcnIyxo8fjwkTJiA9PR1bt25Fbm5uqF3roL/6+tlnn6GwsLDD2VvZ2dm4++678dJLLwXXgR5V/AwQUmHijh07vPd9/PHHQRV7vv322977Dh06FLDY07ca/ZlnnhFxcXGiublZuFwusXfvXr/bD3/4Q3HRRReJvXv3ivr6+rDpa2dWrFghRo4cGWKvOtff/X3ttdeE2WwW7777rtxd66C/+ypRsmh5yZIl3j+7XC6RlpbWZfHjN7/5Tb/7cnNzOxQ/rlq1yvv12tragEXLPfmeyqU/+uurr4uW+6OvZWVlYty4ceKOO+4QTqdTzi51qb//biWnT58WAMTnn38eQm+61h99PX36tN/n6scffywAiLfffluUlpYG3fawDDxCeJaeTp06VWzbtk18+eWXYty4cX5LT8vKysRFF10ktm3b5r3vgQceECNGjBCfffaZ2LFjR4clftJy3jlz5oji4mKxceNGMXjw4IDL0iVKr9ISov/6+tRTT4n3339fHDlyRBw5ckQ8//zzIjY2Vvzyl78My/6uX79e6PV6sWbNGnHu3DnvraamJuz6KoQQRUVFoqioSEybNk3cddddoqioSOzfv1+2vr3xxhvCZDKJF198URw4cED84Ac/EAkJCd7VY/fcc4949NFHvddv2bJF6PV6sWrVKnHw4EGxfPnygMtbExISxHvvvSf27Nkjvv3tbwdclt7V91Qp/dXf06dPi6KiIrFixQoRExPj/Xutq6sLq76WlZWJsWPHimuuuUaUlZX5/R9VWn/0d+vWreLJJ58URUVF4tSpU6KgoEDMnDlTjBkzpssfSgdiX9s7efIkl6X7unDhgrjzzjtFTEyMiIuLEwsXLvT7Dy59w3yTcFNTk3jwwQdFYmKisFgs4pZbbunwn+XUqVPi+uuvF1FRUSI5OVk88sgjoqWlpdN29EXg6a++/t///Z+4+OKLhcViEXFxcWLq1Knib3/7m3C5XGHZ31mzZgkAHW4LFiwIu74KIQL2Ve7RuyeffFKMGDFCGI1GMWPGDLF161bv12bNmtXhe/vmm2+K8ePHC6PRKC6++GLx73//2+/rbrdb/PrXvxYpKSnCZDKJa665Rhw+fNjvmu6+p0rqj/4uWLAg4N+lkqMAQvR9X1944YWA/eyriYy+7u+ePXvE7NmzRVJSkjCZTCIjI0M88MADoqysTNF+CtE//4599TbwaIQIs+omIiIionYG1CotIiIiot5g4CEiIqKwx8BDREREYY+Bh4iIiMIeAw8RERGFPQYeIiIiCnsMPERERBT2GHiIiIgo7DHwEBERUdhj4CEiIqKwx8BDREREYY+Bh4iIiMLe/wedm3cFTWH8eAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "\n", - "filt = window * taps\n", - "filt /= np.sum(filt)\n", - "\n", - "ax.plot(t, filt);" - ] - }, - { - "cell_type": "markdown", - "id": "4fe418dc", - "metadata": {}, - "source": [ - "Jetzt verarbeiten wir die Samples nach folgendem Schema:\n", - "```{figure} img/FIRodd.png\n", - "---\n", - "name: fig:FIRodd.en\n", - "---\n", - "Struktur des sogenannten *FIR-Filters*.\n", - "Er berechnet die Faltung des Signals mit den Koeffizienten.\n", - "```\n", - "\n", - "Wir iterieren über die Samples, wobei wir immer die letzten $N$ Stück als $x$ betrachten.\n", - "Hier kann man z.B. mit einem [Ring buffer](https://de.wikipedia.org/wiki/Ringpuffer) arbeiten.\n", - "Dann berechnen wir\n", - "```{math}\n", - "y = \\sum_{n=0}^{N-1} x[n] \\cdot a[N-1-n]\n", - "```\n", - "und speichern $y$ als neues Sample.\n", - "\n", - "Visualisieren wir die so erzeugten neuen Samples, erhalten wir folgendes:\n", - "```{figure} img/reference/filtered_detail.webp\n", - "---\n", - "name: fig:filtered_detail.en\n", - "---\n", - "Gefiltertes Signal.\n", - "Die vertikalen Streifen sind entfernt.\n", - "```\n", - "\n", - "Und auch im Spektrum können wir erkennen, dass nur noch die gewünschten Anteile vorhanden sind:\n", - "```{figure} img/reference/filtered_waterfall.webp\n", - "---\n", - "name: fig:filtered_waterfall.en\n", - "---\n", - "Gefiltertes Signal im Wasserfall-Diagramm.\n", - "```" - ] - } - ], - "metadata": { - "celltoolbar": "Tags", - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.ipynb_checkpoints/U02_4_Sync.en-checkpoint.ipynb b/.ipynb_checkpoints/U02_4_Sync.en-checkpoint.ipynb deleted file mode 100644 index 3d487e2..0000000 --- a/.ipynb_checkpoints/U02_4_Sync.en-checkpoint.ipynb +++ /dev/null @@ -1,79 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "f611b5a0", - "metadata": {}, - "source": [ - "# Synchronisierung" - ] - }, - { - "cell_type": "markdown", - "id": "0c5468d3", - "metadata": {}, - "source": [ - "Aktuell sind die Samples noch als komplexe Zahlen dargestellt.\n", - "Um weiter mit ihnen arbeiten zu können, nehmen wir jeweils den Betrag:\n", - "```{math}\n", - "s = a + bi \\mapsto |s| = \\sqrt{a^2 + b^2}\n", - "```\n", - "\n", - "Hier eine Visualisierung des soweit verarbeiteten Signals:\n", - "```{figure} img/reference/filtered_full_scaled.webp\n", - "---\n", - "name: fig:filtered_full_scaled.en\n", - "---\n", - "Gefiltertes Signal.\n", - "Wir sehen dass die Sync-Streifen gebogen sind.\n", - "```\n", - "\n", - "Die Sync-Patterns markieren jeweils den Anfang einer Zeile.\n", - "Um das Bild \"gerade zu ziehen\" müssen wir sie finden.\n", - "\n", - "Dazu gehen wir so vor:\n", - "- Sync A hat das Pattern `000011001100110011001100110011000000000`.\n", - " Wir haben 4 Samples pro Pixel, also auch pro 0/1 im Pattern.\n", - " Dieses Pattern wollen wir suchen.\n", - " Das funktioniert hier am besten, wenn wir sowohl das Pattern als auch die Samples in den Wertebereich zwischen $-1$ und $1$ skalieren.\n", - " Für jede `0` im Pattern nehmen wir also 4 mal die $-1$, und für jede `1` nehmen wir 4 mal die $1$.\n", - " Diese Sequenz von 39 * 4 = 156 Werten speichern wir als $p$.\n", - "- Jetzt betrachten wir Blöcke $x$ von 8320 Samples.\n", - " Wir finden Minimum $x_{min}$ und Maximum $x_{max}$ im Block, und skalieren so dass das Minimum bei $-1$ ist und das Maximum bei $1$:\n", - " ```{math}\n", - " x[n] \\mapsto -1 + 2 \\cdot \\frac{x[n] - x_{min}}{x_{max} - x_{min}}\n", - " ```\n", - "- Wir wollen die Position finden, die \"am meisten\" mit dem Pattern übereinstimmt.\n", - " Also iterieren wir über alle Startpositionen $i$ im Block, 0 bis (8320-156).\n", - " Für jede davon berechnen wir\n", - " ```{math}\n", - " z = \\sum_{n=0}^{156} x[i + n] \\cdot p[n]\n", - " ```\n", - " Die Position bei der $z$ am größten ist, ist die mit der besten Übereinstimmung.\n", - "- So können wir für jede Zeile die Anfangsposition finden.\n", - " Von dort aus gehen wir in Viererschritten über die Samples, um die Pixelwerte für die Zeile zu erhalten." - ] - } - ], - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.ipynb_checkpoints/U02_5_Output.en-checkpoint.ipynb b/.ipynb_checkpoints/U02_5_Output.en-checkpoint.ipynb deleted file mode 100644 index a37e2c9..0000000 --- a/.ipynb_checkpoints/U02_5_Output.en-checkpoint.ipynb +++ /dev/null @@ -1,129 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "af12be1c", - "metadata": {}, - "source": [ - "# Ausgabe" - ] - }, - { - "cell_type": "markdown", - "id": "8de61e70", - "metadata": {}, - "source": [ - "Wir haben jetzt Werte für die Pixel des Bildes, aber sie sind noch nicht im richtigen Bereich:\n", - "Sie müssen am Ende nämlich zwischen 0 und 255 liegen.\n", - "\n", - "Um sie zu richtig zu skalieren, verwenden wir den \"Space and Marker\" Teil des Bildformats:\n", - "\n", - "```{figure} img/apt_frame_format.webp\n", - "---\n", - "name: fig:frame_format_output.en\n", - "---\n", - "Wieder das APT Bildformat.\n", - "Nach Sync A (39 Pixel breit) folgt ein 47 Pixel breiter Space mit schwarzen Pixeln.\n", - "Analog dazu sind in der zweiten Hälfte des Bildes der ebenfalls 39 Pixel breite Sync B und ein 47 Pixel breiter Space mit weißen Pixeln.\n", - "```\n", - "\n", - "Der Sync A folgende Space hat (bis auf den Minute Marker) weiße Pixel, und der Space nach Sync B schwarze.\n", - "Die Minute Marker ignorieren wir hier einfach :)\n", - "\n", - "Um die Pixelwerte in den richtigen Bereich zu skalieren können wir so vorgehen:\n", - "- Wir berechnen das Schwarz-Level $v_b$ indem wir den Durchschnitt (oder den [Median](https://de.wikipedia.org/wiki/Median)) aller Pixelwerte im ersten Space nehmen.\n", - "- Das gleiche tun wir für den Weiß-Level $v_w$ mit dem zweiten Space.\n", - "- Jetzt bilden wir jeden Pixelwert $v$ auf $(v - v_b) / (v_w - v_b)$ ab.\n", - "- Damit sind die Werte zwischen $v_b$ und $v_w$ in den Bereich zwischen 0 und 1 gewandert.\n", - "- Alle Werte kleiner als 0 oder größer als 1 werden auf 0 bzw. 1 begrenzt.\n", - "- Jetzt müssen wir nur noch jeden Wert mit 255 multiplizieren." - ] - }, - { - "cell_type": "markdown", - "id": "436e60e1", - "metadata": {}, - "source": [ - "(pgm-format)=\n", - "## PGM-Format\n", - "\n", - "```{note}\n", - "Wer möchte, kann natürlich gerne ein anderes Format benutzen, oder eine Bibliothek wie [Pillow](https://python-pillow.org/) oder [SDL](https://www.libsdl.org/).\n", - "```\n", - "\n", - "Um das fertige Bild in eine Datei zu schreiben, können wir zum Beispiel dieses sehr einfache Dateiformat benutzen:\n", - "\n", - "```{admonition} Format\n", - "Die erste Zeile enthält den String `P2`.\n", - "\n", - "Die zweite Zeile enthält zwei positive Integer $w$ und $h$, die Breite $(w)$ und Höhe $(h)$ des Bildes $(w = 2080, h \\approx 1400)$.\n", - "\n", - "Die dritte Zeile enthält einen positiven Integer $v_{max} = 255$.\n", - "\n", - "Danach folgen $h$ Zeilen mit jeweils $w$ Pixelwerten $v$ als Integer $(0 \\leq v \\leq v_{max})$.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "1ab1434e", - "metadata": {}, - "source": [ - "### Beispiel\n", - "\n", - "```\n", - "P2\n", - "6 7\n", - "255\n", - " 0 6 12 18 24 30\n", - " 6 240 235 230 30 36\n", - "12 235 24 30 220 42\n", - "18 230 235 220 42 48\n", - "24 225 36 42 210 54\n", - "30 220 215 210 54 60\n", - "36 42 48 54 60 66\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "c2c9a6b9", - "metadata": {}, - "source": [ - "```{note}\n", - "Das PGM-Format ist nur für Bilder in Graustufen, aber es gibt auch z.B. das PPM-Format für farbige Bilder.\n", - "[Hier](https://en.wikipedia.org/wiki/Netpbm) könnt ihr mehr dazu lesen.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "d16219b2", - "metadata": {}, - "source": [ - "Wenn wir unsere Pixelwerte so in eine Datei mit `.pgm`-Endung speichern, können wir sie mit einem Grafikprogramm wie z.B. [GIMP](https://www.gimp.org/) anschauen." - ] - } - ], - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.ipynb_checkpoints/U02_Project.en-checkpoint.ipynb b/.ipynb_checkpoints/U02_Project.en-checkpoint.ipynb deleted file mode 100644 index 4294588..0000000 --- a/.ipynb_checkpoints/U02_Project.en-checkpoint.ipynb +++ /dev/null @@ -1,320 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "cb83cb4c", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Project" - ] - }, - { - "cell_type": "markdown", - "id": "0f54afd9", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{note}\n", - "This project draws inspiration from the `noaa_apt` module of [SatDump](https://github.com/SatDump/SatDump), an open source tool that can decode signals from many different satellites.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "2a4f16b4", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "Here, we apply the theory to decode the signal we received.\n", - "\n", - "Let's look again at how the satellite transmits its data:" - ] - }, - { - "cell_type": "markdown", - "id": "adaf6659", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "```{figure} img/apt_frame_format.webp\n", - "---\n", - "name: fig:frame_format2.en\n", - "---\n", - "APT frame format ([source](https://en.wikipedia.org/wiki/File:NOAA_APT_Frame_Format.gif))\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "f653ed80", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "The image is composed of pixels that are modulated onto a carrier using amplitude modulation:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "2a4aa651", - "metadata": { - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "fig, ax = plt.subplots(3, sharex=True)\n", - "\n", - "t = np.linspace(0, 5 * 1 / 4160, 1000, endpoint=False)\n", - "data = np.array(200 * [255] + 200 * [128] + 200 * [200] + 200 * [20] + 200 * [255])\n", - "carrier = np.sin(2 * np.pi * 24_000 * t)\n", - "\n", - "ax[0].plot(t, data, color=\"C1\");\n", - "ax[0].set_ylabel(\"Pixel values\");\n", - "ax[1].plot(t, carrier, color=\"C0\");\n", - "ax[1].set_ylabel(\"Carrier\");\n", - "ax[2].plot(t, data * carrier, color=\"C0\");\n", - "ax[2].plot(t, data, color=\"C1\");\n", - "ax[2].plot(t, -data, color=\"C1\", linestyle=\"dotted\");\n", - "ax[2].set_ylabel(\"Signal\");\n", - "\n", - "for a in ax:\n", - " a.get_xaxis().set_ticks([]);" - ] - }, - { - "cell_type": "markdown", - "id": "b11ba0ea", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "The pixel values (\"baseband\") and the carrier are signals, and the modulation is performed by *multiplying* both signals." - ] - }, - { - "cell_type": "markdown", - "id": "fca54469", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "We remember:" - ] - }, - { - "cell_type": "markdown", - "id": "12803f83", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "$$ \\text{multiplication} \\,\\circ\\!\\!-\\!\\!\\bullet\\, \\text{convolution} $$" - ] - }, - { - "cell_type": "markdown", - "id": "e02e20a9", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "During modulation, the baseband spectrum is convolved with that of the carrier." - ] - }, - { - "cell_type": "markdown", - "id": "1d1b4bf0", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "The carrier's spectrum looks like this:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "b61fb512", - "metadata": { - "slideshow": { - "slide_type": "-" - }, - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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AccYQJAjwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAA2ZEygW4CAYwwgyBFgAACA7RBgAACA7RBgAJvgZSMA+AEBBrAhhyPQLUDAMQYQ5AgwAADAdggwAADAdggwAADAdggwAADAdggwAADAdggwAADAdggwAADAdggwAADAduocYDZs2KBbbrlF8fHxcjgcWrZsmd/20aNHy+Fw+C2DBw/2q/nuu+80fPhwud1uRUVFaezYsTp69Khfzfbt23XdddepWbNmSkhI0Jw5c+reOwAA0CjVOcAcO3ZMl19+uebPn3/amsGDB+vw4cPW8vrrr/ttHz58uHbt2qXMzEwtX75cGzZs0AMPPGBt9/l8GjRokDp06KCcnBw98cQTmjFjhv7617/WtbkAAKARalLXHYYMGaIhQ4acscblcik2NrbWbXv27NGqVav06aef6sorr5QkPffcc7rpppv05JNPKj4+XosWLVJpaaleeeUVOZ1Ode/eXbm5uXrqqaf8gk51JSUlKikpsR77fL66dg0AANjERbkHJisrS9HR0ercubMefPBBffvtt9a27OxsRUVFWeFFkpKTkxUSEqItW7ZYNf3795fT6bRqUlJSlJeXp++//77Wc86aNUuRkZHWkpCQcDG6BgAAGoB6DzCDBw/W3/72N61du1Z//vOftX79eg0ZMkQVFRWSJK/Xq+joaL99mjRpolatWsnr9Vo1MTExfjVVj6tqfiw9PV3FxcXWcvDgwfruGgAAaCDq/BLS2dx9993Wzz179lSvXr3UsWNHZWVlaeDAgfV9OovL5ZLL5bpoxwcAAA3HRX8b9aWXXqo2bdpo7969kqTY2FgVFhb61ZSXl+u7776z7puJjY1VQUGBX03V49PdWwMAAILHRQ8wX331lb799lvFxcVJkjwej4qKipSTk2PVrFu3TpWVlUpKSrJqNmzYoLKyMqsmMzNTnTt3VsuWLS92kwEAQANX5wBz9OhR5ebmKjc3V5K0f/9+5ebmKj8/X0ePHtWUKVO0efNmHThwQGvXrtXQoUPVqVMnpaSkSJK6du2qwYMHa9y4cfrkk0+0ceNGTZgwQXfffbfi4+Ml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rVsrIiJCw4YNU0FBgd8xGtP1qO3/oQ6HQ2lpaZKCb3zIoN6VlJSYw4cP+y3333+/SUxMNJWVlcYYY/bv328kmTVr1vjVlZaWWsfZuHGjCQ0NNXPmzDG7d+8206ZNM02bNjU7duywambPnm0iIyPNsmXLzOeff25uvfVWk5iYaE6cOPEf7/fZdOjQwcycOdOvv0ePHrW2FxcXm5iYGDN8+HCzc+dO8/rrr5uwsDDzl7/8xappLNfk/fffN6NHjzarV682+/btM++8846Jjo42jzzyiFUTjGPkbJYsWWKcTqd55ZVXzK5du8y4ceNMVFSUKSgoCHTTLlhKSopZuHCh2blzp8nNzTU33XSTad++vd+/keuvv96MGzfObzwUFxdb28vLy02PHj1McnKy2bZtm1m5cqVp06aNSU9Pt2r+8Y9/mPDwcDN58mSze/du89xzz5nQ0FCzatWq/2h/z8Vjjz1munfv7tffr7/+2to+fvx4k5CQYNauXWu2bt1q+vXrZ372s59Z2xvb9SgsLPS7FpmZmUaS+fDDD40xwTc+CDD/AaWlpaZt27Zm5syZ1rqqJ6dt27addr9f/OIXJjU11W9dUlKS+dWvfmWMMaaystLExsaaJ554wtpeVFRkXC6Xef311+u3E/WgQ4cOZt68eafd/sILL5iWLVuakpISa93UqVNN586drceN7ZpUN2fOHJOYmGg9DsYxcjZXX321SUtLsx5XVFSY+Ph4M2vWrAC26uIoLCw0ksz69eutdddff715+OGHT7vPypUrTUhIiPF6vda6BQsWGLfbbf27evTRR0337t399rvrrrtMSkpK/XagHjz22GPm8ssvr3VbUVGRadq0qXnzzTetdXv27DGSTHZ2tjGm8V2PH3v44YdNx44drT+Mg2188BLSf8C7776rb7/9Vvfdd1+Nbbfeequio6N17bXX6t133/Xblp2dreTkZL91KSkpys7OliTt379fXq/XryYyMlJJSUlWTUMze/ZstW7dWldccYWeeOIJv6nL7Oxs9e/fX06n01qXkpKivLw8ff/991ZNY7smVYqLi9WqVasa64NtjJxOaWmpcnJy/PoSEhKi5ORk2/XlXBQXF0tSjTGxaNEitWnTRj169FB6erqOHz9ubcvOzlbPnj0VExNjrUtJSZHP59OuXbusmjONmYbmyy+/VHx8vC699FINHz5c+fn5kqScnByVlZX59aVLly5q37691ZfGeD2qlJaW6rXXXtOYMWP8vrA4mMZHo/0yx4bk5ZdfVkpKit+XS0ZERGju3Lm65pprFBISor///e+67bbbtGzZMt16662SJK/X6zfQJCkmJkZer9faXrXudDUNyW9+8xv16dNHrVq10qZNm5Senq7Dhw/rqaeeknSqP4mJiX77VPXN6/WqZcuWje6aVNm7d6+ee+45Pfnkk9a6YBwjZ/LNN9+ooqKi1r588cUXAWrVxVFZWamJEyfqmmuuUY8ePaz19957rzp06KD4+Hht375dU6dOVV5ent566y1Jpx8PVdvOVOPz+XTixAmFhYVdzK7VSVJSkjIyMtS5c2cdPnxYv//973Xddddp586d8nq9cjqdioqK8tvnx+O/MV2P6pYtW6aioiKNHj3aWhds44MAUwe/+93v9Oc///mMNXv27PG7yeyrr77S6tWrtXTpUr+6Nm3aaPLkydbjq666SocOHdITTzxhPTnZQV2uSfX+9urVS06nU7/61a80a9asRvPR1uczRv71r39p8ODBuvPOOzVu3DhrfWMZI6i7tLQ07dy5Ux9//LHf+gceeMD6uWfPnoqLi9PAgQO1b98+dezY8T/dzItuyJAh1s+9evVSUlKSOnTooKVLlzaoJ9JAePnllzVkyBDFx8db64JtfBBg6uCRRx7xS7u1ufTSS/0eL1y4UK1btz6nJ5ykpCRlZmZaj2NjY2vcUV9QUKDY2Fhre9W6uLg4v5revXuf9Xz14XyuSZWkpCSVl5frwIED6ty582n7K8mvzw35mtT1ehw6dEg33HCDfvazn+mvf/3rWY9vxzFSX9q0aaPQ0NAz9rcxmDBhgpYvX64NGzb4zdrWJikpSdKpGbyOHTsqNja2xruyzvXfkNvtbvChICoqSpdddpn27t2rn//85yotLVVRUZHfLMyPx39jvB7//Oc/tWbNGmtm5XQa+/jgHpg6aNu2rbp06XLGpfr9G8YYLVy4UCNHjlTTpk3Pevzc3Fy/JxmPx6O1a9f61WRmZsrj8UiSEhMTFRsb61fj8/m0ZcsWq+Ziq+s1qS43N1chISGKjo6WdKq/GzZsUFlZmVWTmZmpzp07q2XLllZNQ74mdbke//rXvzRgwAD17dtXCxcuVEjI2f852nGM1Ben06m+ffv69aWyslJr1661XV9qY4zRhAkT9Pbbb2vdunU1Xk6tTW5uriRZY8Lj8WjHjh0qLCy0ajIzM+V2u9WtWzer5kxjpiE7evSo9u3bp7i4OPXt21dNmzb160teXp7y8/OtvjTW67Fw4UJFR0crNTX1jHWNfnwE+i7ixmzNmjVGktmzZ0+NbRkZGWbx4sVmz549Zs+ePeaPf/yjCQkJMa+88opVs3HjRtOkSRPz5JNPmj179pjHHnus1rfIRkVFmXfeecds377dDB06tEG+RXbTpk1m3rx5Jjc31+zbt8+89tprpm3btmbkyJFWTVFRkYmJiTEjRowwO3fuNEuWLDHh4eE13kbdGK7JV199ZTp16mQGDhxovvrqK7+3PVYJtjFyLpYsWWJcLpfJyMgwu3fvNg888ICJiorye1eFXT344IMmMjLSZGVl+Y2H48ePG2OM2bt3r5k5c6bZunWr2b9/v3nnnXfMpZdeavr3728do+ptsoMGDTK5ublm1apVpm3btrW+TXbKlClmz549Zv78+Q32bbKPPPKIycrKMvv37zcbN240ycnJpk2bNqawsNAYc+pt1O3btzfr1q0zW7duNR6Px3g8Hmv/xnY9jDn1zrv27dubqVOn+q0PxvFBgLmI7rnnHr/PJKguIyPDdO3a1YSHhxu3222uvvpqv7cDVlm6dKm57LLLjNPpNN27dzcrVqzw215ZWWn++7//28TExBiXy2UGDhxo8vLyLkp/LkROTo5JSkoykZGRplmzZqZr167mT3/6kzl58qRf3eeff26uvfZa43K5zE9+8hMze/bsGsdqDNdk4cKFRlKtS5VgGyPn6rnnnjPt27c3TqfTXH311Wbz5s2BblK9ON14WLhwoTHGmPz8fNO/f3/TqlUr43K5TKdOncyUKVP8PufDGGMOHDhghgwZYsLCwkybNm3MI488YsrKyvxqPvzwQ9O7d2/jdDrNpZdeap2jobnrrrtMXFyccTqd5ic/+Ym56667zN69e63tJ06cML/+9a9Ny5YtTXh4uPmv//ovvz8CjGlc18MYY1avXm0k1fg3HIzjw2GMMYGY+QEAADhf3AMDAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADALUYPXq0HA6HHA6Hli1bVq/HzsrKso5922231euxgWBBgAGCRPUn5OrL3r17A920Bmvw4ME6fPiwhgwZYq07XaAZPXr0OYeRn/3sZzp8+LB+8Ytf1FNLgeDTJNANAPCfM3jwYC1cuNBvXdu2bWvUlZaWnvZbxIOJy+VSbGxsvR/X6XQqNjZWYWFhKikpqffjA8GAGRggiFQ9IVdfQkNDNWDAAE2YMEETJ05UmzZtlJKSIknauXOnhgwZooiICMXExGjEiBH65ptvrOMdO3ZMI0eOVEREhOLi4jR37lwNGDBAEydOtGpqm7GIiopSRkaG9fjgwYP6xS9+oaioKLVq1UpDhw7VgQMHrO1VsxtPPvmk4uLi1Lp1a6WlpamsrMyqKSkp0dSpU5WQkCCXy6VOnTrp5ZdfljFGnTp10pNPPunXhtzc3Is2A3XgwIFaZ7sGDBhQ7+cCghUBBoAk6dVXX5XT6dTGjRv14osvqqioSDfeeKOuuOIKbd26VatWrVJBQYHfyx5TpkzR+vXr9c477+iDDz5QVlaWPvvsszqdt6ysTCkpKWrRooU++ugjbdy4URERERo8eLBKS0utug8//FD79u3Thx9+qFdffVUZGRl+IWjkyJF6/fXX9eyzz2rPnj36y1/+ooiICDkcDo0ZM6bGzNPChQvVv39/derU6fwu2BkkJCTo8OHD1rJt2za1bt1a/fv3r/dzAUErwN+GDeA/ZNSoUSY0NNQ0b97cWu644w5jjDHXX3+9ueKKK/zqH3/8cTNo0CC/dQcPHjSSTF5enjly5IhxOp1m6dKl1vZvv/3WhIWFmYcffthaJ8m8/fbbfseJjIw0CxcuNMYY87//+7+mc+fOprKy0tpeUlJiwsLCzOrVq622d+jQwZSXl1s1d955p7nrrruMMcbk5eUZSSYzM7PWvv/rX/8yoaGhZsuWLcYYY0pLS02bNm1MRkbGGa/X0KFDa6yXZJo1a+Z3HZs3b26aNGlSa/2JEydMUlKSufnmm01FRcU5nQPA2XEPDBBEbrjhBi1YsMB63Lx5c+vnvn37+tV+/vnn+vDDDxUREVHjOPv27dOJEydUWlqqpKQka32rVq3UuXPnOrXp888/1969e9WiRQu/9SdPntS+ffusx927d1doaKj1OC4uTjt27JB06uWg0NBQXX/99bWeIz4+XqmpqXrllVd09dVX67333lNJSYnuvPPOOrW1yrx585ScnOy3burUqaqoqKhRO2bMGB05ckSZmZkKCWHSG6gvBBggiDRv3vy0L5lUDzOSdPToUd1yyy3685//XKM2Li7unO8dcTgcMsb4rat+78rRo0fVt29fLVq0qMa+1W8wbtq0aY3jVlZWSpLCwsLO2o77779fI0aM0Lx587Rw4ULdddddCg8PP6c+/FhsbGyN69iiRQsVFRX5rfvDH/6g1atX65NPPqkR0ABcGAIMgFr16dNHf//733XJJZeoSZOa/6vo2LGjmjZtqi1btqh9+/aSpO+//17/93//5zcT0rZtWx0+fNh6/OWXX+r48eN+53njjTcUHR0tt9t9Xm3t2bOnKisrtX79+hozI1VuuukmNW/eXAsWLNCqVau0YcOG8zrXufr73/+umTNn6v3331fHjh0v6rmAYMR8JoBapaWl6bvvvtM999yjTz/9VPv27dPq1at13333qaKiQhERERo7dqymTJmidevWaefOnRo9enSNl0luvPFGPf/889q2bZu2bt2q8ePH+82mDB8+XG3atNHQoUP10Ucfaf/+/crKytJvfvMbffXVV+fU1ksuuUSjRo3SmDFjtGzZMusYS5cutWpCQ0M1evRopaen66c//ak8Hk/9XKha7Ny5UyNHjtTUqVPVvXt3eb1eeb1efffddxftnECwIcAAqFV8fLw2btyoiooKDRo0SD179tTEiRMVFRVlhZQnnnhC1113nW655RYlJyfr2muvrXEvzdy5c5WQkKDrrrtO9957r37729/6vXQTHh6uDRs2qH379rr99tvVtWtXjR07VidPnqzTjMyCBQt0xx136Ne//rW6dOmicePG6dixY341Y8eOVWlpqe67774LuDJnt3XrVh0/flx/+MMfFBcXZy233377RT0vEEwc5scvTgPABRgwYIB69+6tp59+OtBNqeGjjz7SwIEDdfDgQcXExJyxdvTo0SoqKqr3rxH4T58DaKyYgQHQ6JWUlOirr77SjBkzdOedd541vFRZvny5IiIitHz58nptz0cffaSIiIhab1wGcG64iRdAo/f6669r7Nix6t27t/72t7+d0z5z5szRtGnTJJ1611V9uvLKK5WbmytJtb5NHcDZ8RISAACwHV5CAgAAtkOAAQAAtkOAAQAAtkOAAQAAtkOAAQAAtkOAAQAAtkOAAQAAtkOAAQAAtvP/ASNPCG8AChnLAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "n = 8192\n", - "f_s = 16440\n", - "t = np.linspace(0, n / f_s, n, endpoint=False)\n", - "carrier = np.sin(2 * np.pi * 2400 * t)\n", - "\n", - "X = np.roll(np.fft.fft(carrier), -n//2)\n", - "f = np.roll(np.fft.fftfreq(n, 1/f_s), -n//2)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(f, np.abs(X));\n", - "ax.set_xlabel(\"Frequency [Hz]\");" - ] - }, - { - "cell_type": "markdown", - "id": "c2a53d61", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "We see two peaks, at plus and minus 2.4 kHz. During convolution, they create two copies of the baseband:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "75ba74c8", - "metadata": { - "slideshow": { - "slide_type": "subslide" - }, - "tags": [ - "remove-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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1XbDDTcoKipKV111ld5++22PtuzsbCUnJ3ssS0lJUXZ2tiRp//79ys/P96iJiIhQYmKiU9PUzJkzR23atNGll16qRx991GPqMjs7W/3791dQUJCzLCUlRXl5efr222+dmuY2JtWKi4vVunXrWst97RipT1lZmXJycjz2xc/PT8nJydbty5koLi6WpFrHxCuvvKK2bdvq4osv1vTp0/Xdd985bdnZ2erZs6eio6OdZSkpKSopKdGuXbucmlMdM03NZ599pri4OF100UUaOXKkDh48KEnKyclReXm5x7507dpVHTp0cPalOY5HtbKyMr388ssaN26cxw8W+9Lx0Wx/zLEpWbRokVJSUjx+XDI0NFTz5s3TlVdeKT8/P73xxhu68cYbtWzZMt1www2SpPz8fI8DTZKio6OVn5/vtFcvq6+mKfnjH/+oPn36qHXr1tq4caOmT5+uI0eO6PHHH5f0/f4kJCR4rFO9b/n5+WrVqlWzG5Nqe/fu1dNPP63HHnvMWeaLx8ipfPXVV6qsrKxzX/7xj394qVfnR1VVlSZNmqQrr7xSF198sbP8tttuU8eOHRUXF6dPP/1U06ZNU15env7+979Lqv94qG47VU1JSYlOnDihkJCQ87lrDZKYmKiMjAx16dJFR44c0UMPPaSrr75aO3fuVH5+voKCghQZGemxzk+P/+Y0HjUtW7ZMRUVFGjt2rLPM144PAkwD/OlPf9Jf/vKXU9bs2bPH4ySzzz//XKtXr9bSpUs96tq2bavJkyc79y+//HIdPnxYjz76qPPiZIOGjEnN/e3Vq5eCgoL0+9//XrNnz242X219NsfIF198oWuvvVa33HKL7rzzTmd5czlG0HBpaWnauXOnPvroI4/ld911l/N3z549FRsbq8GDB2vfvn3q1KnTz93N827o0KHO37169VJiYqI6duyopUuXNqkXUm9YtGiRhg4dqri4OGeZrx0fBJgGuP/++z3Sbl0uuugij/vp6elq06bNGb3gJCYmKjMz07kfExNT64z6goICxcTEOO3Vy2JjYz1qevfufdrHawxnMybVEhMTVVFRoQMHDqhLly717q8kj31uymPS0PE4fPiwBg4cqF/96lf661//etrt23iMNJa2bdvK39//lPvbHEycOFHLly/X+vXrPWZt65KYmCjp+xm8Tp06KSYmptZVWWf6byg8PLzJh4LIyEj98pe/1N69e/XrX/9aZWVlKioq8piF+enx3xzH49///rfef/99Z2alPs39+OAcmAZo166dunbtespbzfM3jDFKT0/X6NGjFRgYeNrt5+bmerzIJCUlac2aNR41mZmZSkpKkiQlJCQoJibGo6akpESbN292as63ho5JTbm5ufLz81NUVJSk7/d3/fr1Ki8vd2oyMzPVpUsXtWrVyqlpymPSkPH44osvNGDAAPXt21fp6eny8zv9P0cbj5HGEhQUpL59+3rsS1VVldasWWPdvtTFGKOJEyfqzTff1Nq1a2t9nFqX3NxcSXKOiaSkJO3YsUOFhYVOTWZmpsLDw9W9e3en5lTHTFN27Ngx7du3T7Gxserbt68CAwM99iUvL08HDx509qW5jkd6erqioqKUmpp6yrpmf3x4+yzi5uz99983ksyePXtqtWVkZJjFixebPXv2mD179pg///nPxs/Pz7z44otOzYYNG0xAQIB57LHHzJ49e8wDDzxQ5yWykZGR5q233jKffvqpGTZsWJO8RHbjxo1m/vz5Jjc31+zbt8+8/PLLpl27dmb06NFOTVFRkYmOjjajRo0yO3fuNEuWLDEtWrSodRl1cxiTzz//3HTu3NkMHjzYfP755x6XPVbztWPkTCxZssS43W6TkZFhdu/ebe666y4TGRnpcVWFre6++24TERFhsrKyPI6H7777zhhjzN69e82sWbPMtm3bzP79+81bb71lLrroItO/f39nG9WXyQ4ZMsTk5uaaVatWmXbt2tV5meyUKVPMnj17zIIFC5rsZbL333+/ycrKMvv37zcbNmwwycnJpm3btqawsNAY8/1l1B06dDBr164127ZtM0lJSSYpKclZv7mNhzHfX3nXoUMHM23aNI/lvnh8EGDOo9/97nce30lQU0ZGhunWrZtp0aKFCQ8PN1dccYXH5YDVli5dan75y1+aoKAg06NHD7NixQqP9qqqKvPf//3fJjo62rjdbjN48GCTl5d3XvbnXOTk5JjExEQTERFhgoODTbdu3cz//M//mJMnT3rUffLJJ+aqq64ybrfbXHDBBWbOnDm1ttUcxiQ9Pd1IqvNWzdeOkTP19NNPmw4dOpigoCBzxRVXmE2bNnm7S42ivuMhPT3dGGPMwYMHTf/+/U3r1q2N2+02nTt3NlOmTPH4ng9jjDlw4IAZOnSoCQkJMW3btjX333+/KS8v96j54IMPTO/evU1QUJC56KKLnMdoakaMGGFiY2NNUFCQueCCC8yIESPM3r17nfYTJ06YP/zhD6ZVq1amRYsW5j/+4z883gQY07zGwxhjVq9ebSTV+jfsi8eHyxhjvDHzAwAAcLY4BwYAAFiHAAMAAKxDgAEAANYhwAAAAOsQYAAAgHUIMAAAwDoEGAAAYB0CDAAAsA4BBgDqMHbsWLlcLrlcLi1btqxRt52VleVs+8Ybb2zUbQO+ggAD+IiaL8g1b3v37vV215qsa6+9VkeOHNHQoUOdZfUFmrFjx55xGPnVr36lI0eO6NZbb22kngK+J8DbHQDw87n22muVnp7usaxdu3a16srKyur9FXFf4na7FRMT0+jbDQoKUkxMjEJCQlRaWtro2wd8ATMwgA+pfkGuefP399eAAQM0ceJETZo0SW3btlVKSookaefOnRo6dKhCQ0MVHR2tUaNG6auvvnK2d/z4cY0ePVqhoaGKjY3VvHnzNGDAAE2aNMmpqWvGIjIyUhkZGc79Q4cO6dZbb1VkZKRat26tYcOG6cCBA0579ezGY489ptjYWLVp00ZpaWkqLy93akpLSzVt2jTFx8fL7Xarc+fOWrRokYwx6ty5sx577DGPPuTm5p63GagDBw7UOds1YMCARn8swFcRYABIkl566SUFBQVpw4YNeu6551RUVKRBgwbp0ksv1bZt27Rq1SoVFBR4fOwxZcoUrVu3Tm+99Zbee+89ZWVl6eOPP27Q45aXlyslJUVhYWH68MMPtWHDBoWGhuraa69VWVmZU/fBBx9o3759+uCDD/TSSy8pIyPDIwSNHj1ar776qp566int2bNHzz//vEJDQ+VyuTRu3LhaM0/p6enq37+/OnfufHYDdgrx8fE6cuSIc9u+fbvatGmj/v37N/pjAT7Ly7+GDeBnMmbMGOPv729atmzp3G6++WZjjDHXXHONufTSSz3qH374YTNkyBCPZYcOHTKSTF5enjl69KgJCgoyS5cuddq//vprExISYu69915nmSTz5ptvemwnIiLCpKenG2OM+b//+z/TpUsXU1VV5bSXlpaakJAQs3r1aqfvHTt2NBUVFU7NLbfcYkaMGGGMMSYvL89IMpmZmXXu+xdffGH8/f3N5s2bjTHGlJWVmbZt25qMjIxTjtewYcNqLZdkgoODPcaxZcuWJiAgoM76EydOmMTERPOb3/zGVFZWntFjADg9zoEBfMjAgQO1cOFC537Lli2dv/v27etR+8knn+iDDz5QaGhore3s27dPJ06cUFlZmRITE53lrVu3VpcuXRrUp08++UR79+5VWFiYx/KTJ09q3759zv0ePXrI39/fuR8bG6sdO3ZI+v7jIH9/f11zzTV1PkZcXJxSU1P14osv6oorrtA777yj0tJS3XLLLQ3qa7X58+crOTnZY9m0adNUWVlZq3bcuHE6evSoMjMz5efHpDfQWAgwgA9p2bJlvR+Z1AwzknTs2DFdf/31+stf/lKrNjY29ozPHXG5XDLGeCyree7KsWPH1LdvX73yyiu11q15gnFgYGCt7VZVVUmSQkJCTtuPO+64Q6NGjdL8+fOVnp6uESNGqEWLFme0Dz8VExNTaxzDwsJUVFTkseyRRx7R6tWrtWXLlloBDcC5IcAAqFOfPn30xhtv6MILL1RAQO3/VXTq1EmBgYHavHmzOnToIEn69ttv9c9//tNjJqRdu3Y6cuSIc/+zzz7Td9995/E4r732mqKiohQeHn5Wfe3Zs6eqqqq0bt26WjMj1a677jq1bNlSCxcu1KpVq7R+/fqzeqwz9cYbb2jWrFl699131alTp/P6WIAvYj4TQJ3S0tL0zTff6He/+522bt2qffv2afXq1br99ttVWVmp0NBQjR8/XlOmTNHatWu1c+dOjR07ttbHJIMGDdIzzzyj7du3a9u2bZowYYLHbMrIkSPVtm1bDRs2TB9++KH279+vrKws/fGPf9Tnn39+Rn298MILNWbMGI0bN07Lli1ztrF06VKnxt/fX2PHjtX06dP1i1/8QklJSY0zUHXYuXOnRo8erWnTpqlHjx7Kz89Xfn6+vvnmm/P2mICvIcAAqFNcXJw2bNigyspKDRkyRD179tSkSZMUGRnphJRHH31UV199ta6//nolJyfrqquuqnUuzbx58xQfH6+rr75at912m/7rv/7L46ObFi1aaP369erQoYNuuukmdevWTePHj9fJkycbNCOzcOFC3XzzzfrDH/6grl276s4779Tx48c9asaPH6+ysjLdfvvt5zAyp7dt2zZ99913euSRRxQbG+vcbrrppvP6uIAvcZmffjgNAOdgwIAB6t27t5544glvd6WWDz/8UIMHD9ahQ4cUHR19ytqxY8eqqKio0X9G4Od+DKC5YgYGQLNXWlqqzz//XA8++KBuueWW04aXasuXL1doaKiWL1/eqP358MMPFRoaWueJywDODCfxAmj2Xn31VY0fP169e/fW3/72tzNaZ+7cuZoxY4ak76+6akyXXXaZcnNzJanOy9QBnB4fIQEAAOvwERIAALAOAQYAAFiHAAMAAKxDgAEAANYhwAAAAOsQYAAAgHUIMAAAwDoEGAAAYJ3/B0PEAZX/Hs+yAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "box_width = 4160 / 2\n", - "f_c = 2400\n", - "boxes = np.where(np.bitwise_and(f_c - box_width < np.abs(f), np.abs(f) < f_c + box_width), 4096, 0)\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.plot(f, np.abs(X))\n", - "ax.fill_between(f, boxes, alpha=0.3)\n", - "ax.set_xlabel(\"Frequency [Hz]\");" - ] - }, - { - "cell_type": "markdown", - "id": "9ea4c83a", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "This signal is then transmitted in the satellite band (137-138MHz) using *frequency modulation*" - ] - }, - { - "cell_type": "markdown", - "id": "35b858ed", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "We receive it using a *software-defined radio* and corresponding software to demodulate the fm signal." - ] - }, - { - "cell_type": "markdown", - "id": "7f01bcc4", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "**Your task in the project is to undo the amplitude modulation.**" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "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.11.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}