{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Characterization of 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 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(j \\omega)$ the phase delay is defined as follows\n", "\n", "\\begin{equation}\n", "t_p(\\omega) = - \\frac{\\varphi(j \\omega)}{\\omega}\n", "\\end{equation}\n", "\n", "where $\\varphi(j \\omega) = \\arg \\{ H(j \\omega) \\}$ denotes the phase of the transfer function. The phase delay quantifies the delay of a single harmonic exponential signal $e^{j \\omega t}$ with 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 that the phase delay may not be defined for $\\omega = 0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "As example, the phase delay $t_p(\\omega)$ is computed for the [2nd order low-pass filter introduced before](../laplace_transform/network_analysis.ipynb#Example:-Second-Order-Low-Pass-Filter). First the transfer function $H(j \\omega)$ is defined in `SymPy`" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{1}{- C L \\omega^{2} + i C R \\omega + 1}$" ], "text/plain": [ " 1 \n", "──────────────────────\n", " 2 \n", "- C⋅L⋅ω + ⅈ⋅C⋅R⋅ω + 1" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib inline\n", "import sympy as sym\n", "sym.init_printing()\n", "\n", "L, R, C = sym.symbols('L R C', positive=True)\n", "w = sym.symbols('omega', real=True)\n", "s = sym.I * w\n", "\n", "H = 1 / (C*L*s**2 + C*R*s + 1)\n", "H" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the phase delay $t_p(\\omega)$ is computed" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\frac{\\arg{\\left(\\frac{1}{- C L \\omega^{2} + i C R \\omega + 1} \\right)}}{\\omega}$" ], "text/plain": [ " ⎛ 1 ⎞ \n", "-arg⎜──────────────────────⎟ \n", " ⎜ 2 ⎟ \n", " ⎝- C⋅L⋅ω + ⅈ⋅C⋅R⋅ω + 1⎠ \n", "─────────────────────────────\n", " ω " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phi = sym.arg(H)\n", "tp = - phi/w\n", "tp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and the result is visualized using the normalized values $R=1$, $L=0.5$ and $C=0.4$ for the elements of the low-pass filter" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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RW5jb2RpbmcgPDwgL0RpZmZlcmVuY2VzIFsgMTA2IC9qIDExMiAvcCAxMTYgL3QgXSAvVHlwZSAvRW5jb2RpbmcgPj4KL0ZpcnN0Q2hhciAwIC9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUy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YmoKPDwgL0Jhc2VGb250IC9EZWphVnVTYW5zIC9DaGFyUHJvY3MgMjMgMCBSCi9FbmNvZGluZyA8PAovRGlmZmVyZW5jZXMgWyA0MCAvcGFyZW5sZWZ0IC9wYXJlbnJpZ2h0IDQ2IC9wZXJpb2QgNDggL3plcm8gL29uZSAvdHdvIC90aHJlZSAvZm91cgovZml2ZSAvc2l4IC9zZXZlbiBdCi9UeXBlIC9FbmNvZGluZyA+PgovRmlyc3RDaGFyIDAgL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udERlc2NyaXB0b3IgMjEgMCBSCi9Gb250TWF0cml4IFsgMC4wMDEgMCAwIDAuMDAxIDAgMCBdIC9MYXN0Q2hhciAyNTUgL05hbWUgL0RlamFWdVNhbnMKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMjAgMCBSID4+CmVuZG9iagoyMSAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgMzIKL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udE5hbWUgL0RlamFWdVNhbnMgL0l0YWxpY0FuZ2xlIDAKL01heFdpZHRoIDEzNDIgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjIwIDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIzIDAgb2JqCjw8IC9maXZlIDI0IDAgUiAvZm91ciAyNSAwIFIgL29uZSAyNyAwIFIgL3BhcmVubGVmdCAyOCAwIFIKL3BhcmVucmlnaHQgMjkgMCBSIC9wZXJpb2QgMzAgMCBSIC9zZXZlbiAzMSAwIFIgL3NpeCAzMiAwIFIgL3RocmVlIDMzIDAgUgovdHdvIDM0IDAgUiAvemVybyAzNSAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIyIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLU9ibGlxdWUtb21lZ2EgMTcgMCBSIC9EZWphVnVTYW5zLW1pbnVzIDI2IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMzYgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDYwNDE2MTExMyswMicwMCcpCi9DcmVhdG9yIChtYXRwbG90bGliIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAobWF0cGxvdGxpYiBwZGYgYmFja2VuZCAzLjAuMykgPj4KZW5kb2JqCnhyZWYKMCAzNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAxMDE2NyAwMDAwMCBuIAowMDAwMDA5OTA0IDAwMDAwIG4gCjAwMDAwMDk5NDcgMDAwMDAgbiAKMDAwMDAxMDA0NiAwMDAwMCBuIAowMDAwMDEwMDY3IDAwMDAwIG4gCjAwMDAwMTAwODggMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzk2IDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMjMyNiAwMDAwMCBuIAowMDAwMDA0MDc3IDAwMDAwIG4gCjAwMDAwMDM4NjkgMDAwMDAgbiAKMDAwMDAwMzUzOSAwMDAwMCBuIAowMDAwMDA1MTMwIDAwMDAwIG4gCjAwMDAwMDIzNDcgMDAwMDAgbiAKMDAwMDAwMjU3MiAwMDAwMCBuIAowMDAwMDAyODg3IDAwMDAwIG4gCjAwMDAwMDMyODggMDAwMDAgbiAKMDAwMDAwODY3NCAwMDAwMCBuIAowMDAwMDA4NDc0IDAwMDAwIG4gCjAwMDAwMDgwOTQgMDAwMDAgbiAKMDAwMDAwOTcyNyAwMDAwMCBuIAowMDAwMDA1MTgyIDAwMDAwIG4gCjAwMDAwMDU1MDIgMDAwMDAgbiAKMDAwMDAwNTY2NCAwMDAwMCBuIAowMDAwMDA1ODM0IDAwMDAwIG4gCjAwMDAwMDU5ODYgMDAwMDAgbiAKMDAwMDAwNjIwNiAwMDAwMCBuIAowMDAwMDA2NDI4IDAwMDAwIG4gCjAwMDAwMDY1NDkgMDAwMDAgbiAKMDAwMDAwNjY4OSAwMDAwMCBuIAowMDAwMDA3MDc5IDAwMDAwIG4gCjAwMDAwMDc0OTAgMDAwMDAgbiAKMDAwMDAwNzgxMSAwMDAwMCBuIAowMDAwMDEwMjI3IDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzYgMCBSIC9Sb290IDEgMCBSIC9TaXplIDM3ID4+CnN0YXJ0eHJlZgoxMDM4MQolJUVPRgo=\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "RLC = {R: 1, L: sym.Rational('.5'), C: sym.Rational('.4')}\n", "sym.plot(tp.subs(RLC), (w, -10, 10),\n", " xlabel='$\\omega$', ylabel='$t_p(j \\omega)$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Group Delay\n", "\n", "The group delay is defined as the derivative of the phase with respect to the frequency\n", "\n", "\\begin{equation}\n", "t_g(\\omega) = - \\frac{d \\varphi(j \\omega)}{d \\omega}\n", "\\end{equation}\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(j \\omega)$ is in general only unique for $- \\pi < \\varphi(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**\n", "\n", "The group delay $t_g(\\omega)$ of above 2nd order low-pass filter is computed and plotted for the normalized values" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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amFWdVNhbnMtT2JsaXF1ZQovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxMiAwIFIgPj4KZW5kb2JqCjEzIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyA5NgovRm9udEJCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9Gb250TmFtZSAvRGVqYVZ1U2Fucy1PYmxpcXVlCi9JdGFsaWNBbmdsZSAwIC9NYXhXaWR0aCAxMzUwIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxMiAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAw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L3NpeCAvc2V2ZW4gL2VpZ2h0IF0KL1R5cGUgL0VuY29kaW5nID4+Ci9GaXJzdENoYXIgMCAvRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250RGVzY3JpcHRvciAyMSAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAyMCAwIFIgPj4KZW5kb2JqCjIxIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMjAgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjMgMCBvYmoKPDwgL2VpZ2h0IDI0IDAgUiAvZml2ZSAyNSAwIFIgL2ZvdXIgMjYgMCBSIC9vbmUgMjggMCBSIC9wYXJlbmxlZnQgMjkgMCBSCi9wYXJlbnJpZ2h0IDMwIDAgUiAvcGVyaW9kIDMxIDAgUiAvc2V2ZW4gMzIgMCBSIC9zaXggMzMgMCBSIC90d28gMzQgMCBSCi96ZXJvIDM1IDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMjIgMCBSIC9GMiAxNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0RlamFWdVNhbnMtT2JsaXF1ZS1vbWVnYSAxOCAwIFIgL0RlamFWdVNhbnMtbWludXMgMjcgMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iagozNiAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMTkwNjA0MTYxMTEzKzAyJzAwJykKL0NyZWF0b3IgKG1hdHBsb3RsaWIgMy4wLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChtYXRwbG90bGliIHBkZiBiYWNrZW5kIDMuMC4zKSA+PgplbmRvYmoKeHJlZgowIDM3CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDEwOTI1IDAwMDAwIG4gCjAwMDAwMTA2NjIgMDAwMDAgbiAKMDAwMDAxMDcwNSAwMDAwMCBuIAowMDAwMDEwODA0IDAwMDAwIG4gCjAwMDAwMTA4MjUgMDAwMDAgbiAKMDAwMDAxMDg0NiAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDA0MDMgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDAyOTU2IDAwMDAwIG4gCjAwMDAwMDQ3NzggMDAwMDAgbiAKMDAwMDAwNDU3MCAwMDAwMCBuIAowMDAwMDA0MjQwIDAwMDAwIG4gCjAwMDAwMDU4MzEgMDAwMDAgbiAKMDAwMDAwMjk3NyAwMDAwMCBuIAowMDAwMDAzNDQ5IDAwMDAwIG4gCjAwMDAwMDM2NzQgMDAwMDAgbiAKMDAwMDAwMzk4OSAwMDAwMCBuIAowMDAwMDA5NDMyIDAwMDAwIG4gCjAwMDAwMDkyMzIgMDAwMDAgbiAKMDAwMDAwODg0OSAwMDAwMCBuIAowMDAwMDEwNDg1IDAwMDAwIG4gCjAwMDAwMDU4ODMgMDAwMDAgbiAKMDAwMDAwNjM0OCAwMDAwMCBuIAowMDAwMDA2NjY4IDAwMDAwIG4gCjAwMDAwMDY4MzAgMDAwMDAgbiAKMDAwMDAwNzAwMCAwMDAwMCBuIAowMDAwMDA3MTUyIDAwMDAwIG4gCjAwMDAwMDczNzIgMDAwMDAgbiAKMDAwMDAwNzU5NCAwMDAwMCBuIAowMDAwMDA3NzE1IDAwMDAwIG4gCjAwMDAwMDc4NTUgMDAwMDAgbiAKMDAwMDAwODI0NSAwMDAwMCBuIAowMDAwMDA4NTY2IDAwMDAwIG4gCjAwMDAwMTA5ODUgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzNiAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzcgPj4Kc3RhcnR4cmVmCjExMTM5CiUlRU9GCg==\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tg = - sym.diff(phi, w)\n", "sym.plot(tg.subs(RLC), (w, -10, 10),\n", " xlabel='$\\omega$', ylabel='$t_g(j \\omega)$')" ] }, { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "**Copyright**\n", "\n", "This notebook is provided as [Open Educational Resource](https://en.wikipedia.org/wiki/Open_educational_resources). Feel free to use the notebook for your own 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: *Sascha Spors, Continuous- and Discrete-Time Signals and Systems - Theory and Computational Examples*." ] } ], "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 }