{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Characterization of Discrete Systems in the Spectral Domain\n", "\n", "*This Jupyter notebook is part of a [collection of notebooks](../index.ipynb) in the bachelors module Signals and Systems, Communications Engineering, Universität Rostock. Please direct questions and suggestions to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Phase and Group Delay\n", "\n", "The [phase and group delay](https://en.wikipedia.org/wiki/Group_delay_and_phase_delay) characterize the phase and delay properties of an linear time-invariant (LTI) system. Both quantify the frequency dependent delay that is imprinted on a signal when passing through a system. In many applications the delay introduced by a system should be as small as possible or within reasonable limits." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Phase Delay\n", "\n", "For an LTI system with transfer function $H(e^{j \\Omega})$ the phase delay in samples is defined as follows\n", "\n", "\\begin{equation}\n", "t_p(\\Omega) = - \\frac{\\varphi(e^{j \\Omega})}{\\Omega}\n", "\\end{equation}\n", "\n", "where $\\varphi(e^{j \\Omega}) = \\arg \\{ H(e^{j \\Omega}) \\}$ denotes the phase of the transfer function. The phase delay quantifies the delay of a single harmonic exponential signal $e^{j \\Omega k}$ with normalized frequency $\\Omega$ when passing through the system. The negative sign in the definition of the phase delay results in a positive phase delay $t_p(\\Omega) > 0$ when a signal is delayed by a system. Note, the phase delay may not be defined for $\\Omega = 0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example - Phase delay of second-order recursive system**\n", "\n", "The phase delay $t_p(\\Omega)$ for the before introduced [second-order recursive LTI system](difference_equation.ipynb#Second-Order-System) with transfer function\n", "\n", "\\begin{equation}\n", "H(z) = \\frac{1}{1 - z^{-1} + \\frac{1}{2} z^{-2}}\n", "\\end{equation}\n", "\n", "is computed. First the transfer function is defined" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGkAAAAzCAYAAACUlyarAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADnElEQVR4Ae2cjXETMRCFcxkKMNCB6YBQgksgQwWEDpKhAiZ0EFIBkxICFUDcgV2CcQfmex7JY+5kW74757RCO7Nzfyvd233S6qQ7u1qtVmc5SVVVb/HnAb3At2UOvr3IwQmIGeHHPbpA36FjNBvJgiTXYy7FCoRds1FvykbOs/EkY0cKSQbILSQVkgxEwADE0pMKSQYiYABi6UmFJAMRMACx9KRCkoEIGIBY5bLAynKQFlW1hqe1O23n6BT9hY9f2ZqVbEgyy0AE8DImRQRpaJNC0tAMRNy/kBQRpKFNCklDMxBx/0JSRJCGNikkDc1AxP0LSRFBGtqkkDQ0AxH3r7DJ65uuCKetmZQVBwOMmUh3+q4OvUKfDMT0H4h9YE/+uzuc1Dd0E+e5Fk7NSF/YkyeJFWytZE9x+L0ZdhzQvrCbSHfWyOkbbyGp74ieoL4GScqj6Aw1lf9PEJtkqlyPSY6QbH+VkEy0WwJZ9yQGuCV6iX6inu8t6zJTjEY5Qa+sAG6kOyvAO+JUKjeTzpN/BKfFjwmoerjmSmOO79jO6PXJf1zSF/bkSYIMffVzg5qTvrD/r+nOFOGFJAN0dU535F0NwD/RYwZiPUlquWevUPfB1yjUo9ctQXHjl8ayurzSCa5rrKvLlDrXv7+tX9g+jsG2bd9m3/vWmSQqWgLgog2IQ2U8yEN2u65TPkSCyNE64JjrrR8+umLbhTl0vjNJoUrLubgI+MaC9WtUT7F3kP+jXrqQVI/IEccEWSn+syuiIEs+Emhllxi5x/alDF1df7RbL1hIqkfkuONbgrxJqQRaczi9mHwTWc32MCGSg+Runu64wQP6iKFvGU/unP68okg4AnpbPNm6dMu+JtxRf/YBwZoDelHZ4APLpidRIGjgaxhy65zWT1vU0oRTrW4B5oNPiNidUtSLfu+7QQx2bNQDb3b5syFp340SuPYBDL4RrdMLDnVZhRDZwdRyjK9g+FazF7Z5Ldh7sUOQepAIWmo/6Bcnz6wozqgHyZHkMINLKW6GjkL4ON/AzjmNX5oLetWaZMM3M590ubQxwYnWcxuCcRIBmwhQytIkvdFDO2MPMZfaOZxXK732uNhXUIIt1ts819ZhefD341hYNVFe9wh33An7OZUkLa6V6q3xXC0S1dOUUl6jxT63Iw6betAXh00EaVxaCIu73h27ZzzVLb5qYB2hepOqyZ7y+KalDonb4fHjyWbrMXG9F+x/ATYXLr3qVP2UAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{1}{1 - \\frac{1}{z} + \\frac{1}{2 z^{2}}}$" ], "text/plain": [ " 1 \n", "────────────\n", " 1 1 \n", "1 - ─ + ────\n", " z 2\n", " 2⋅z " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sympy as sym\n", "sym.init_printing()\n", "%matplotlib inline\n", "\n", "z = sym.symbols('z', complex=True)\n", "W = sym.symbols('Omega', real=True)\n", "H = 1 / (1 - z**(-1) + sym.Rational(1, 2)*z**(-2))\n", "H" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the phase delay $t_p(\\Omega)$ is computed and plotted for illustration" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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cHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxMiAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjggNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjE3IDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTcgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4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L0Rlc2NlbnQgLTIzNiAvRmxhZ3MgMzIKL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udE5hbWUgL0RlamFWdVNhbnMgL0l0YWxpY0FuZ2xlIDAKL01heFdpZHRoIDEzNDIgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjE4IDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIxIDAgb2JqCjw8IC9hIDIzIDAgUiAvZSAyNCAwIFIgL2VpZ2h0IDI1IDAgUiAvZm91ciAyNiAwIFIgL2kgMjcgMCBSIC9sIDI4IDAgUgovbSAyOSAwIFIgL24gMzEgMCBSIC9vbmUgMzIgMCBSIC9wIDMzIDAgUiAvcGFyZW5sZWZ0IDM0IDAgUgovcGFyZW5yaWdodCAzNSAwIFIgL3BlcmlvZCAzNiAwIFIgL3MgMzcgMCBSIC9zaXggMzggMCBSIC9zcGFjZSAzOSAwIFIKL3RocmVlIDQwIDAgUiAvdHdvIDQxIDAgUiAvemVybyA0MiAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIwIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLU9tZWdhIDIyIDAgUiAvRGVqYVZ1U2Fucy1taW51cyAzMCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjQzIDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA3MTExODA3NTMrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgNDQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTM0MjkgMDAwMDAgbiAKMDAwMDAxMzE3NCAwMDAwMCBuIAowMDAwMDEzMjE3IDAwMDAwIG4gCjAwMDAwMTMzMTYgMDAwMDAgbiAKMDAwMDAxMzMzNyAwMDAwMCBuIAowMDAwMDEzMzU4IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM5NCAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDMzMjIgMDAwMDAgbiAKMDAwMDAwNDUyNiAwMDAwMCBuIAowMDAwMDA0MzE4IDAwMDAwIG4gCjAwMDAwMDM5OTUgMDAwMDAgbiAKMDAwMDAwNTU3OSAwMDAwMCBuIAowMDAwMDAzMzQzIDAwMDAwIG4gCjAwMDAwMDM3NDQgMDAwMDAgbiAKMDAwMDAxMTg2MyAwMDAwMCBuIAowMDAwMDExNjYzIDAwMDAwIG4gCjAwMDAwMTEyMjYgMDAwMDAgbiAKMDAwMDAxMjkxNiAwMDAwMCBuIAowMDAwMDA1NjIxIDAwMDAwIG4gCjAwMDAwMDU5OTIgMDAwMDAgbiAKMDAwMDAwNjM2OSAwMDAwMCBuIAowMDAwMDA2Njg3IDAwMDAwIG4gCjAwMDAwMDcxNTIgMDAwMDAgbiAKMDAwMDAwNzMxNCAwMDAwMCBuIAowMDAwMDA3NDU0IDAwMDAwIG4gCjAwMDAwMDc1NzEgMDAwMDAgbiAKMDAwMDAwNzg5OSAwMDAwMCBuIAowMDAwMDA4MDY5IDAwMDAwIG4gCjAwMDAwMDgzMDMgMDAwMDAgbiAKMDAwMDAwODQ1NSAwMDAwMCBuIAowMDAwMDA4NzY0IDAwMDAwIG4gCjAwMDAwMDg5ODQgMDAwMDAgbiAKMDAwMDAwOTIwNiAwMDAwMCBuIAowMDAwMDA5MzI3IDAwMDAwIG4gCjAwMDAwMDk3MzIgMDAwMDAgbiAKMDAwMDAxMDEyMiAwMDAwMCBuIAowMDAwMDEwMjExIDAwMDAwIG4gCjAwMDAwMTA2MjIgMDAwMDAgbiAKMDAwMDAxMDk0MyAwMDAwMCBuIAowMDAwMDEzNDg5IDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gNDMgMCBSIC9Sb290IDEgMCBSIC9TaXplIDQ0ID4+CnN0YXJ0eHJlZgoxMzY0MwolJUVPRgo=\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phi = sym.arg(H.subs(z, sym.exp(sym.I*W)))\n", "tp = -phi/W\n", "\n", "sym.plot(tp, (W, -sym.pi, sym.pi), xlabel='$\\Omega$', ylabel='$t_p(\\Omega)$ in samples')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Group Delay\n", "\n", "The group delay is defined as the derivative of the phase with respect to the normalized frequency\n", "\n", "\\begin{equation}\n", "t_g(\\Omega) = - \\frac{\\mathrm{d} \\varphi(e^{j \\Omega})}{\\mathrm{d} \\Omega}\n", "\\end{equation}\n", "\n", "given in samples.\n", "\n", "The group delay quantifies the delay the amplitude envelope of a group of exponential signals observes when passing through a system. The negative sign in above definition results in a positive group delay for a system imposing a delay onto the input signal. Note that the [phase](https://en.wikipedia.org/wiki/Instantaneous_phase) $\\varphi(e^{j \\Omega})$ is in general only unique for $- \\pi < \\varphi(e^{j \\Omega}) \\leq \\pi$. If the phase exceeds this range it is wrapped back. For meaningful results it is required to unwrap the phase before computing the group delay." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example - Phase delay of second-order recursive system**\n", "\n", "The group delay $t_g(\\Omega)$ of above second-order recursive system is computed and plotted" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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dWUKL0l0YWxpY0FuZ2xlIDAgL01heFdpZHRoIDEzNTAgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjEyIDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNTAgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyOCA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTcgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxNyA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0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VHlwZSAvRW5jb2RpbmcgPj4KL0ZpcnN0Q2hhciAwIC9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnREZXNjcmlwdG9yIDE5IDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDE4IDAgUiA+PgplbmRvYmoKMTkgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDMyCi9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnROYW1lIC9EZWphVnVTYW5zIC9JdGFsaWNBbmdsZSAwCi9NYXhXaWR0aCAxMzQyIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxOCAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyMSAwIG9iago8PCAvYSAyMyAwIFIgL2UgMjQgMCBSIC9maXZlIDI1IDAgUiAvaSAyNiAwIFIgL2wgMjcgMCBSIC9tIDI4IDAgUgovbiAzMCAwIFIgL29uZSAzMSAwIFIgL3AgMzIgMCBSIC9wYXJlbmxlZnQgMzMgMCBSIC9wYXJlbnJpZ2h0IDM0IDAgUgovcGVyaW9kIDM1IDAgUiAvcyAzNiAwIFIgL3NwYWNlIDM3IDAgUiAvdGhyZWUgMzggMCBSIC90d28gMzkgMCBSCi96ZXJvIDQwIDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMjAgMCBSIC9GMiAxNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0RlamFWdVNhbnMtT21lZ2EgMjIgMCBSIC9EZWphVnVTYW5zLW1pbnVzIDI5IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKNDEgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDcxMTE4MDc1MyswMicwMCcpCi9DcmVhdG9yIChtYXRwbG90bGliIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAobWF0cGxvdGxpYiBwZGYgYmFja2VuZCAzLjAuMykgPj4KZW5kb2JqCnhyZWYKMCA0MgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAxMzY1MCAwMDAwMCBuIAowMDAwMDEzMzk1IDAwMDAwIG4gCjAwMDAwMTM0MzggMDAwMDAgbiAKMDAwMDAxMzUzNyAwMDAwMCBuIAowMDAwMDEzNTU4IDAwMDAwIG4gCjAwMDAwMTM1NzkgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzkyIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwNDIxMCAwMDAwMCBuIAowMDAwMDA1NDg1IDAwMDAwIG4gCjAwMDAwMDUyNzcgMDAwMDAgbiAKMDAwMDAwNDk1NCAwMDAwMCBuIAowMDAwMDA2NTM4IDAwMDAwIG4gCjAwMDAwMDQyMzEgMDAwMDAgbiAKMDAwMDAwNDcwMyAwMDAwMCBuIAowMDAwMDEyMTEwIDAwMDAwIG4gCjAwMDAwMTE5MTAgMDAwMDAgbiAKMDAwMDAxMTQ4OCAwMDAwMCBuIAowMDAwMDEzMTYzIDAwMDAwIG4gCjAwMDAwMDY1ODAgMDAwMDAgbiAKMDAwMDAwNjk1MSAwMDAwMCBuIAowMDAwMDA3MzI4IDAwMDAwIG4gCjAwMDAwMDc2NDYgMDAwMDAgbiAKMDAwMDAwNzk2NiAwMDAwMCBuIAowMDAwMDA4MTA2IDAwMDAwIG4gCjAwMDAwMDgyMjMgMDAwMDAgbiAKMDAwMDAwODU1MSAwMDAwMCBuIAowMDAwMDA4NzIxIDAwMDAwIG4gCjAwMDAwMDg5NTUgMDAwMDAgbiAKMDAwMDAwOTEwNyAwMDAwMCBuIAowMDAwMDA5NDE2IDAwMDAwIG4gCjAwMDAwMDk2MzYgMDAwMDAgbiAKMDAwMDAwOTg1OCAwMDAwMCBuIAowMDAwMDA5OTc5IDAwMDAwIG4gCjAwMDAwMTAzODQgMDAwMDAgbiAKMDAwMDAxMDQ3MyAwMDAwMCBuIAowMDAwMDEwODg0IDAwMDAwIG4gCjAwMDAwMTEyMDUgMDAwMDAgbiAKMDAwMDAxMzcxMCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDQxIDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSA0MiA+PgpzdGFydHhyZWYKMTM4NjQKJSVFT0YK\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tg = - sym.diff(phi, W)\n", "sym.plot(tg, (W, -sym.pi, sym.pi), xlabel='$\\Omega$', ylabel='$t_g(\\Omega)$ in samples')" ] }, { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "**Copyright**\n", "\n", "The notebooks are provided as [Open Educational Resource](https://de.wikipedia.org/wiki/Open_Educational_Resources). Feel free to use the notebooks for your own educational purposes. The text is licensed under [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/), the code of the IPython examples under the [MIT license](https://opensource.org/licenses/MIT). Please attribute the work as follows: *Lecture Notes on Signals and Systems* by Sascha Spors." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.3" } }, "nbformat": 4, "nbformat_minor": 1 }