{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Characterization of Systems in the Time 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": [ "## Impulse Response\n", "\n", "The response $y(t)$ of a linear time-invariant (LTI) system $\\mathcal{H}$ to an arbitrary input signal $x(t)$ is derived in the following. The input signal can be represented as an integral when applying the [sifting-property of the Dirac impulse](../continuous_signals/standard_signals.ipynb#Dirac-Impulse)\n", "\n", "\\begin{equation}\n", "x(t) = \\int_{-\\infty}^{\\infty} x(\\tau) \\cdot \\delta(t-\\tau) \\; d \\tau\n", "\\end{equation}\n", "\n", "Introducing above relation for the the input signal $x(t)$ into the output signal $y(t) = \\mathcal{H} \\{ x(t) \\}$ of the system yields\n", "\n", "\\begin{equation}\n", "y(t) = \\mathcal{H} \\left\\{ \\int_{-\\infty}^{\\infty} x(\\tau) \\cdot \\delta(t-\\tau) \\; d \\tau \\right\\}\n", "\\end{equation}\n", "\n", "where $\\mathcal{H} \\{ \\cdot \\}$ denotes the system response operator. The integration and system response operator can be exchanged under the assumption that the system is linear\n", "\n", "\\begin{equation}\n", "y(t) = \\int_{-\\infty}^{\\infty} x(\\tau) \\cdot \\mathcal{H} \\left\\{ \\delta(t-\\tau) \\right\\} \\; d \\tau \n", "\\end{equation}\n", "\n", "where $\\mathcal{H} \\{\\cdot\\}$ was only applied to the Dirac impulse, since $x(\\tau)$ can be regarded as constant factor with respect to the time $t$. It becomes evident that the response of a system to a Dirac impulse plays an important role in the calculation of the output signal for arbitrary input signals. \n", "\n", "The response of a system to a Dirac impulse as input signal is denoted as [*impulse response*](https://en.wikipedia.org/wiki/Impulse_response). It is defined as\n", "\n", "\\begin{equation}\n", "h(t) = \\mathcal{H} \\left\\{ \\delta(t) \\right\\}\n", "\\end{equation}\n", "\n", "If the system is time-invariant, the response to a shifted Dirac impulse is $\\mathcal{H} \\left\\{ \\delta(t-\\tau) \\right\\} = h(t-\\tau)$. Hence, for an LTI system we finally get\n", "\n", "\\begin{equation}\n", "y(t) = \\int_{-\\infty}^{\\infty} x(\\tau) \\cdot h(t-\\tau) \\; d \\tau \n", "\\end{equation}\n", "\n", "Due to its relevance in the theory of LTI systems, this operation is explicitly termed as [*convolution*](https://en.wikipedia.org/wiki/Convolution). It is commonly abbreviated by $*$, hence for above integral we get $y(t) = x(t) * h(t)$. In some books the mathematically more precise nomenclature $y(t) = (x*h)(t)$ is used, since $*$ is the operator acting on the two signals $x$ and $h$ with regard to time $t$.\n", "\n", "In can be concluded that the properties of an LTI system are entirely characterized by its impulse response. The response $y(t)$ of a system to an arbitrary input signal $x(t)$ is given by the convolution of the input signal $x(t)$ with its impulse response $h(t)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "The following example considers an LTI system whose relation between input $x(t)$ and output $y(t)$ is given by an ordinary differential equation (ODE) with constant coefficients\n", "\n", "\\begin{equation}\n", "y(t) + \\frac{d}{dt} y(t) = x(t)\n", "\\end{equation}\n", "\n", "The system response is computed for the input signal $x(t) = e^{- 2 t} \\cdot \\epsilon(t)$ by \n", "\n", "1. explicitly solving the ODE and by \n", "2. computing the impulse response $h(t)$ and convolution with the input signal.\n", "\n", "The solution should fulfill the initial conditions $y(t)\\big\\vert_{t = 0-} = 0$ and $\\frac{d}{dt}y(t)\\big\\vert_{t = 0-} = 0$ due to causality.\n", "\n", "First the ODE is defined in `SymPy`" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALMAAAArBAMAAADBD6TuAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHaZq4lU72YizbtEMt0MBTtrAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADbElEQVRIDbWWS2gTURSG/+nk/WiHWihYtEPrY1UIxWIJYkOwqy4MRTcFZSiIdGOrgg90EXDjAzSgiFCQqKAuo3ShbhpErLgwdambBl/QhaFdWCwqes6dSXOnM9ZJiIfMnXvP/51zZ+6dORPAg8UfJDxQjSFtRmNxHqJKmgeoMeRwY2Feou55gRpgwgN9Kw2EeQmZy0WXvXD1M8oZqPn6w7xEqMtozXgB62eCBXQX6w/zEtGdwTUvXANMt4FngVwDgWshYe6JZs1ldiJ66KNf9olpNpjLoe/g6Jgu5zD7SvrQjT7J3WLw4LnksXcdeiAjADGBHV0/OiIcZoL1Go8d+mZybs0hornRsk/JA8oicEd2Sn2nPkjqJBBKWNQribZ11SwQWAIu2Ly1gVOfIjFJx3ELGq/B9l6Qhvx2Bv9yfw49RjA+0/GQDra/pn5NIr+dkSxjTpN0pVdHB9QMYiM/0sABC3ZJ3d4PJYUB4MXsjA5/an3a9m1bDhqy7g9M0dvG18AriMtWgEvqzFGElsRt0aYglGdSrQhLcT/RklbLsn6TFm4ErYa5gjjGEJkzddhIwlfAFxJ5UwJlamQL5VpWfVlZ14I6TiBYNFcQC0zvrVROVyqfuFszhTEd58nDmxLne5QtjmiexrJe0uK/RGpR3+YsunrVbb+rhtgyFuY5VPlJUGzKImunNp36sp5EyxQiBlCCgg0WhB+5ncB9yroEzVoQea1RyimaTZ9BNIUoTTiGCeAKTcxWvWpzJFrCZoDHgD9PlTBUkCTudhX3w2/Xd6GUFY/SPkUH+pkic0mtpmLfxdPpS7XTpuuCqzWTb3fjpV3vGB3KIVYGpi8St2ixLqmV4d5V4A2V3idZ2vScRVZPm3oCg8Z6fYzUryYRLptnt6vmlaCU8yZx2zw5WklX88op0q1qo2YtVi5P708KZxKdRq2AcT1zs2qBI71V92UIiZr3N+1GY0WU0Q8YZvWpQMIFV9KmB3r2MKSY6CO3AHqguQiM9xZZ7RJIVBMnl8ap32IqlHNh4S/Lf3LCWWYuuYHC9y/dFhhJ/Kc/OddHFwxRRm3TNWMQO4tZjb9tzbfOLNdQLqNNtyGNayj9mm/nuIaKMtrs3Mo3/mqJMtr01Cv08ZgQZbTZqXEXVxMZUUabnrpj+7v0vCij9ab+A6gA1qJLCNF2AAAAAElFTkSuQmCC\n", "text/latex": [ "$$y{\\left (t \\right )} + \\frac{d}{d t} y{\\left (t \\right )} = x{\\left (t \\right )}$$" ], "text/plain": [ " d \n", "y(t) + ──(y(t)) = x(t)\n", " dt " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sympy as sym\n", "%matplotlib inline\n", "sym.init_printing()\n", "\n", "t = sym.symbols('t', real=True)\n", "x = sym.Function('x')(t)\n", "y = sym.Function('y')(t)\n", "\n", "ode = sym.Eq(y + y.diff(t), x)\n", "ode" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The ODE is solved for the given input signal in order to calculate the output signal. The integration constant is calculated such that the solution fulfills the initial conditions" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANcAAAAaBAMAAADWJdTsAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHaZq4lU72YizbtEMt0MBTtrAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADl0lEQVRIDaVVTaiMYRR+vvn57vx88xPXAuV+jZ+Vwo1CysTd3WLc2AjdkgULhoWVMsWCK93Z+CnFWBArQ3dBFiaUsnBnIwvFyE9RV5cuEcpz3m++/7kzyqn3Pc95zvne9z3nPfMO8N+SqnZa4mYnsjenN7rHDAClUIQ2HaL+idjbI+oA8DIUotdClIdIClaThxSo1QJEwDz3aTcSZoBM7rnWdClVZzW1uWWiDbNteVS64jE6wesk3wQdqVGXiSj80CX0ksJqS5cVdEGmV3mZO8sX0kuCrpx8ENneFH6fclpbKriA86IqUuFF17CSm2+Fed7UfUrVKPPTAcefEfIensiqd7UWZ7kH7SNwldiStVSHgMRKm3D0b0ErnMUc3gaR4nwgVbHNtl6iVRGv4w/NKH36NHDCCSkTrec47DBtkJEqddssapa4YD3w3WAceN3Ad9J9HNEadb4dY9DAe44bbcJRkZbALpkZa5u8nbLzgQUenQW2IPOD1lOObEllry020Y9oCcbwr03A9sBHiNWECW02r7DKG2mo/LWRxfbp6dS+Qpc74KU/fjBhIl5EXC9jXNVc6ooxWSL6WUlRcLouc3AzYwrPhbclI5eDZ80MM7Al8gfxnzSkWGwHJGo4z3IOIztq1RUHyfokVRQzuNmVCpZ7w5KSQvIHIg2XTc8MbS3T/MAh7aC3kO8zcQR9DauueE3WJ9mVYlqbLVAJT9F+UNjREN4WTTZLf126yyao++oYMKmPcUg7ZKaByTxrIJsNcFi/D2pHOmc24/gtkJQy5oo+NmdiPE+Gm6mzGExzvbSSvC6T0GCV0XtnnTf75luWp5bLyZV8LA//VojrfAankZcyYgLpItImsBP7gTPi9kqsLpZVRpdnWXTX4mrSjdLfoy6ba+iHxboDxGt6FQmutBqTFWlLDGkmMIiAMG1KcLMxaOu8gQmJYrvNrbpsrLKoKRZ/TbHiHDagCfSPbKzCaAGXTtHzkcMn6szDx9+ZPjYyUvDZ0aKYSwumqLZog9Z5nrFP71aYuDrITnqlxSjJllLeSZqpp6Qqs4dkVX7AZfl1aUcZ2H4l5dEMCB+A3uK++uFY+3HnW581YyUGpFWOuBSOfRGmwszJMOUy9xRM1tlUhQ2CNULKbTX7ptioz+xshK7aG7ZQGem8y10UmLDyc1ki+e/rJQmzW0SyIt7T3UIc314HzQo6VH/W2O4OvdHdT++2nhEq4C9xPr9D7BQ9NwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$y{\\left (t \\right )} = \\left(1 - e^{- t}\\right) e^{- t} \\theta\\left(t\\right)$$" ], "text/plain": [ " ⎛ -t⎞ -t \n", "y(t) = ⎝1 - ℯ ⎠⋅ℯ ⋅Heaviside(t)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solution = sym.dsolve(ode.subs(x, sym.exp(-2*t)*sym.Heaviside(t)))\n", "integration_constants = sym.solve(\n", " (solution.rhs.limit(t, 0, '-'), solution.rhs.diff(t).limit(t, 0, '-')), 'C1')\n", "y1 = solution.subs(integration_constants)\n", "y1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets plot the output signal derived by explicit solution of the ODE" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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5uByT0ZBJk7KU9ahkzR9NpkH1CLJZTza+9D8/pn0uwC7vC3bCmVuZHN0cmVhbQplbmRvYmoKMTQgMCBvYmoKPDwgL0Jhc2VGb250IC9EZWphVnVTYW5zLU9ibGlxdWUgL0NoYXJQcm9jcyAxNSAwIFIKL0VuY29kaW5nIDw8IC9EaWZmZXJlbmNlcyBbIDExNiAvdCAxMjEgL3kgXSAvVHlwZSAvRW5jb2RpbmcgPj4gL0ZpcnN0Q2hhciAwCi9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDgKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk5NSA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMTUgMCBvYmoKPDwgL3QgMTYgMCBSIC95IDE3IDAgUiA+PgplbmRvYmoKMjIgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzOTIgPj4Kc3RyZWFtCnicPVJLbgUxCNvPKbhApfBNcp6p3u7df1ubzFSqCi8DtjGUlwypJT/qkogzTH71cl3iUfK9bGpn5iHuLjam+Fhy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Il5ZgOyuRDlL0o6ln2+8x/cPQABTtAplbmRzdHJlYW0KZW5kb2JqCjIwIDAgb2JqCjw8IC9CYXNlRm9udCAvRGVqYVZ1U2FucyAvQ2hhclByb2NzIDIxIDAgUgovRW5jb2RpbmcgPDwKL0RpZmZlcmVuY2VzIFsgNDAgL3BhcmVubGVmdCAvcGFyZW5yaWdodCA0NiAvcGVyaW9kIDQ4IC96ZXJvIC9vbmUgL3R3byA1MiAvZm91ciAvZml2ZQovc2l4IDU2IC9laWdodCAxMTYgL3QgXQovVHlwZSAvRW5jb2RpbmcgPj4KL0ZpcnN0Q2hhciAwIC9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnREZXNjcmlwdG9yIDE5IDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDE4IDAgUiA+PgplbmRvYmoKMTkgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDMyCi9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnROYW1lIC9EZWphVnVTYW5zIC9JdGFsaWNBbmdsZSAwCi9NYXhXaWR0aCAxMzQyIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxOCAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyMSAwIG9iago8PCAvZWlnaHQgMjIgMCBSIC9maXZlIDIzIDAgUiAvZm91ciAyNCAwIFIgL29uZSAyNSAwIFIgL3BhcmVubGVmdCAyNiAwIFIKL3BhcmVucmlnaHQgMjcgMCBSIC9wZXJpb2QgMjggMCBSIC9zaXggMjkgMCBSIC90IDMwIDAgUiAvdHdvIDMxIDAgUgovemVybyAzMiAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIwIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8ID4+CmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iagozMyAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMTkwNDEwMTgxNjUwKzAyJzAwJykKL0NyZWF0b3IgKG1hdHBsb3RsaWIgMy4wLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChtYXRwbG90bGliIHBkZiBiYWNrZW5kIDMuMC4zKSA+PgplbmRvYmoKeHJlZgowIDM0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDA5MjU3IDAwMDAwIG4gCjAwMDAwMDkwNTIgMDAwMDAgbiAKMDAwMDAwOTA5NSAwMDAwMCBuIAowMDAwMDA5MTk0IDAwMDAwIG4gCjAwMDAwMDkyMTUgMDAwMDAgbiAKMDAwMDAwOTIzNiAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDA0MDIgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDAyMjcwIDAwMDAwIG4gCjAwMDAwMDMyODUgMDAwMDAgbiAKMDAwMDAwMzA3NyAwMDAwMCBuIAowMDAwMDAyNzU0IDAwMDAwIG4gCjAwMDAwMDQzMzggMDAwMDAgbiAKMDAwMDAwMjI5MSAwMDAwMCBuIAowMDAwMDAyNTQyIDAwMDAwIG4gCjAwMDAwMDc4MjYgMDAwMDAgbiAKMDAwMDAwNzYyNiAwMDAwMCBuIAowMDAwMDA3MjQwIDAwMDAwIG4gCjAwMDAwMDg4NzkgMDAwMDAgbiAKMDAwMDAwNDM4MCAwMDAwMCBuIAowMDAwMDA0ODQ1IDAwMDAwIG4gCjAwMDAwMDUxNjUgMDAwMDAgbiAKMDAwMDAwNTMyNyAwMDAwMCBuIAowMDAwMDA1NDc5IDAwMDAwIG4gCjAwMDAwMDU2OTkgMDAwMDAgbiAKMDAwMDAwNTkyMSAwMDAwMCBuIAowMDAwMDA2MDQyIDAwMDAwIG4gCjAwMDAwMDY0MzIgMDAwMDAgbiAKMDAwMDAwNjYzNiAwMDAwMCBuIAowMDAwMDA2OTU3IDAwMDAwIG4gCjAwMDAwMDkzMTcgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzMyAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzQgPj4Kc3RhcnR4cmVmCjk0NzEKJSVFT0YK\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sym.plot(y1.rhs, (t,-1,10), ylabel=r'$y(t)$');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The impulse response $h(t)$ is computed by solving the ODE for a Dirac impulse as input signal, $x(t) = \\delta(t)$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH8AAAAYBAMAAAAhYj/CAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAELvv3c2ZVESJZnYiqzKqLvLVAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACXUlEQVQ4EZVTTWgTURD+Nskmm03SBqmCKCTqrSqpnvSWgyKClnhR8BRBD0YPAe1BERqonkQaRA9F1EWoBxFcPPhDDj6KF7009KhEgjdPjYoQKRa/eZuku5g05oOZ+Wbm27f75r0FRoCpRhD3k2b6FUepzWwmTkpTu4GqD0cfbfSUUO2EEK/FWa74gTiz0UmUhd+mGXvyQmNV8d4ymvVz36X49ov4a+KglzGLQrfSJhTMtCT/4OtuQllTbIScCXqjQDsBnCIfL4u+RJsF7KIkA5Co7wTuYrwJRB1+dAt4Sul8WvRTtAu0A5IMQNStYqyt3ximJFoAwnz4nsgtJjhOOyvZAFilJlJ5rDrALUoiVcAkP339pUK0Cmvlx2fgITtBbK+d8xUyLmYrwEXgTm6/i3gdxi+VqsN0vD1hEYLzRwQnhVrT+Caxg3dNPFbeh3JksAuIrSOVRaTs7QlXu8puXHbwpssZc43GT4ZjNBlZLC+jCLsIV7w9YZXVAHK1hYqvcBDGGtNDNBnZWEtGsdzUC2QqrMzRAvgTyLAGW64TFzDajLwafIznYHIL8zDQ2YJvBr8DC/CpSJEVXmqrhbRs4QVw2E6HXOA+bgBPAnom/NCYr9bGlTTTvUC8EFOws1gB1uNyHGgYXOWST6zpIozLvtonY1oynnaqvoODdzEJLLiw8sDSM3Z4v4NIPKj5C9teKUlv8tefdDh4nUlFr8tqXpLhiDQ9zfueVP4KQn6S/4Fd9FSlnjikNF3qFYaQfbqfzPZkhkd39QpDyBbdD8mJdPBRoq062dCQdETyHPgLxnJ+5WLHzdAAAAAASUVORK5CYII=\n", "text/latex": [ "$$h{\\left (t \\right )} = e^{- t} \\theta\\left(t\\right)$$" ], "text/plain": [ " -t \n", "h(t) = ℯ ⋅Heaviside(t)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h = sym.Function('h')(t)\n", "solution2 = sym.dsolve(ode.subs(x, sym.DiracDelta(t)).subs(y, h))\n", "integration_constants = sym.solve((solution2.rhs.limit(\n", " t, 0, '-'), solution2.rhs.diff(t).limit(t, 0, '-')), 'C1')\n", "h = solution2.subs(integration_constants)\n", "h" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets plot the impulse response $h(t)$ of the LTI system" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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mve2aCj/5Cd7Fni1zw/eq0KhCmVuZHN0cmVhbQplbmRvYmoKMTQgMCBvYmoKPDwgL0Jhc2VGb250IC9EZWphVnVTYW5zLU9ibGlxdWUgL0NoYXJQcm9jcyAxNSAwIFIKL0VuY29kaW5nIDw8IC9EaWZmZXJlbmNlcyBbIDEwNCAvaCAxMTYgL3QgXSAvVHlwZSAvRW5jb2RpbmcgPj4gL0ZpcnN0Q2hhciAwCi9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDgKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk5NSA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMTUgMCBvYmoKPDwgL2ggMTYgMCBSIC90IDE3IDAgUiA+PgplbmRvYmoKMjIgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzOTIgPj4Kc3RyZWFtCnicPVJLbgUxCNvPKbhApfBNcp6p3u7df1ubzFSqCi8DtjGUlwypJT/qkogzTH71cl3iUfK9bGpn5iHuLjam+FhyX7qG2HLRmmKxTxzJL8i0VFih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L0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxOCAwIFIgPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTggMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjEgMCBvYmoKPDwgL2VpZ2h0IDIyIDAgUiAvZm91ciAyMyAwIFIgL29uZSAyNCAwIFIgL3BhcmVubGVmdCAyNSAwIFIKL3BhcmVucmlnaHQgMjYgMCBSIC9wZXJpb2QgMjcgMCBSIC9zaXggMjggMCBSIC90IDI5IDAgUiAvdHdvIDMwIDAgUgovemVybyAzMSAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIwIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8ID4+CmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iagozMiAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMTkwNDEwMTgxNjUxKzAyJzAwJykKL0NyZWF0b3IgKG1hdHBsb3RsaWIgMy4wLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChtYXRwbG90bGliIHBkZiBiYWNrZW5kIDMuMC4zKSA+PgplbmRvYmoKeHJlZgowIDMzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDA4OTAzIDAwMDAwIG4gCjAwMDAwMDg2OTggMDAwMDAgbiAKMDAwMDAwODc0MSAwMDAwMCBuIAowMDAwMDA4ODQwIDAwMDAwIG4gCjAwMDAwMDg4NjEgMDAwMDAgbiAKMDAwMDAwODg4MiAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDA0MDIgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDAyMTc4IDAwMDAwIG4gCjAwMDAwMDMyNjcgMDAwMDAgbiAKMDAwMDAwMzA1OSAwMDAwMCBuIAowMDAwMDAyNzM2IDAwMDAwIG4gCjAwMDAwMDQzMjAgMDAwMDAgbiAKMDAwMDAwMjE5OSAwMDAwMCBuIAowMDAwMDAyNDg1IDAwMDAwIG4gCjAwMDAwMDc0ODUgMDAwMDAgbiAKMDAwMDAwNzI4NSAwMDAwMCBuIAowMDAwMDA2OTAyIDAwMDAwIG4gCjAwMDAwMDg1MzggMDAwMDAgbiAKMDAwMDAwNDM2MiAwMDAwMCBuIAowMDAwMDA0ODI3IDAwMDAwIG4gCjAwMDAwMDQ5ODkgMDAwMDAgbiAKMDAwMDAwNTE0MSAwMDAwMCBuIAowMDAwMDA1MzYxIDAwMDAwIG4gCjAwMDAwMDU1ODMgMDAwMDAgbiAKMDAwMDAwNTcwNCAwMDAwMCBuIAowMDAwMDA2MDk0IDAwMDAwIG4gCjAwMDAwMDYyOTggMDAwMDAgbiAKMDAwMDAwNjYxOSAwMDAwMCBuIAowMDAwMDA4OTYzIDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzIgMCBSIC9Sb290IDEgMCBSIC9TaXplIDMzID4+CnN0YXJ0eHJlZgo5MTE3CiUlRU9GCg==\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sym.plot(h.rhs, (t,-1,10), ylabel=r'$h(t)$');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As alternative to the explicit solution of the ODE, the system response is computed by evaluating the convolution $y(t) = x(t) * h(t)$. Since `SymPy` cannot handle the Heaviside function properly in integrands, the convolution integral is first simplified. Both the input signal $x(t)$ and the impulse response $h(t)$ are causal signals. Hence, the convolution integral degenerates to\n", "\n", "\\begin{equation}\n", "y(t) = \\int_{0}^{t} x(\\tau) \\cdot h(t - \\tau) \\; d\\tau\n", "\\end{equation}\n", "\n", "for $t \\geq 0$. Note that $y(t) = 0$ for $t<0$." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALoAAAAaBAMAAADyPFssAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMlREmbtmIu+Jdqu1wmguAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACzUlEQVRIDZVWTWgTQRT+ttm0SUxNaA+9CA14UkQqEQQR2YMgeElB8KBIAx5EPDTYix4q9Va9GEVQkcIe4yn1JngwWBAv1oJID0aNolAPlnoJioT63tufmdlMq30w+76ft29msrtDgH/H/q1L9ix/BrbxjTvPGCwkzoZNDbQaZkB+fusK5aRrCiuULimcRF00PfLduaRh4SMWDbmlA55NF+0OmqfYXzArckzlouk3NazgwKTC/WgJ7KeKhvOO2eCKoeUWDRqRgnlnJAfZPQT2hzsBbX/lnG4JkzkE8WWoFUMB7jzFLVw21YCFHhpF8Z2fImfqo5z5Fx71MWAsq1Blqy8+On6gXeqzkOu4vvj7xHuFgkfgGo0pIFsTMbxUjLliZzZ6387HUgwaJ04Wxb/KkttFYZLyIo0rNJ7QiONtjAxw8V5ILd2fb25C/Pdcs3sClTo9zhLhYzSCDRHg+BIkuTqvV/t2EnW3edNcPb6Cqao8v8G1Xz+AZa0h5jVywXNbGhUYdbd5FY9KPnl44wMDtP70BvG7NOI4GCPkfmO4qmiAwu5Wr8nVt9fX/1BKTdL6SwROY6TMcZgwjgDOXqFeptd+yZKKmXL5Wbl8nIR+j8TxKl2ewulR2kU41SJQoRGHtvZCJ1YVCNdu9Zoe1fWQ5feeu8tsxpeid29RVTKi7q2kQbzi08a7SNUI89EwDYd/GS3WFOaNUY0ZYXerJ+9MF+eKdEtmBXiBs8AD/X55ZwMhW8KYr3uMw+5W7xEXfHfk+eU7wLpDU8yyGIXMH5L2B3ITEXaHzbvOtWOrPqfBCaDxkMBRZlHw09guou62GuOzlB3QAU+zqEiekcoJkOUUi0rCMzKk94M8VI9szu6iznaEsx29POMLa+ga8M2kO2ApXy925oTd0LXg1DeV/2ULZuFjplnfFO3/CcwaK8vNWeWEaP0/k6ix0XzRpgJ/AXfUlZSRT9mqAAAAAElFTkSuQmCC\n", "text/latex": [ "$$- \\left(- e^{- t} + e^{- 2 t}\\right) \\theta\\left(t\\right)$$" ], "text/plain": [ " ⎛ -t -2⋅t⎞ \n", "-⎝- ℯ + ℯ ⎠⋅Heaviside(t)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tau = sym.symbols('tau', real=True)\n", "\n", "y2 = sym.integrate(sym.exp(-2*tau) * h.rhs.subs(t, t-tau), (tau, 0, t))\n", "y2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets plot the output signal derived by evaluation of the convolution" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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cZIC8XSgO/BhELDVLOloUuC141SyGmAX/MmkgdUE2i2hFWhdSigOWjrrCETbFvXpB32uk3jkUrGkai+1viliuTv0jtFtWsCjZ072rtDm4HJPRkEmTspT1qGTNH02mQfUIsllPNr70Pz+mfS7ALu8LdsKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago8PCAvQmFzZUZvbnQgL0RlamFWdVNhbnMtT2JsaXF1ZSAvQ2hhclByb2NzIDE1IDAgUgovRW5jb2RpbmcgPDwgL0RpZmZlcmVuY2VzIFsgMTE2IC90IDEyMSAveSBdIC9UeXBlIC9FbmNvZGluZyA+PiAvRmlyc3RDaGFyIDAKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udERlc2NyaXB0b3IgMTMgMCBSCi9Gb250TWF0cml4IFsgMC4wMDEgMCAwIDAuMDAxIDAgMCBdIC9MYXN0Q2hhciAyNTUgL05hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxMiAwIFIgPj4KZW5kb2JqCjEzIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyA5NgovRm9udEJCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9Gb250TmFtZSAvRGVqYVZ1U2Fucy1PYmxpcXVlCi9JdGFsaWNBbmdsZSAwIC9NYXhXaWR0aCAxMzUwIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxMiAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjggNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjE3IDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTcgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwOAo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTk1IDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoxNSAwIG9iago8PCAvdCAxNiAwIFIgL3kgMTcgMCBSID4+CmVuZG9iagoyMiAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDM5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OCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIxIDAgb2JqCjw8IC9laWdodCAyMiAwIFIgL2ZpdmUgMjMgMCBSIC9mb3VyIDI0IDAgUiAvb25lIDI1IDAgUiAvcGFyZW5sZWZ0IDI2IDAgUgovcGFyZW5yaWdodCAyNyAwIFIgL3BlcmlvZCAyOCAwIFIgL3NpeCAyOSAwIFIgL3QgMzAgMCBSIC90d28gMzEgMCBSCi96ZXJvIDMyIDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMjAgMCBSIC9GMiAxNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjMzIDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA0MTAxODE3MDArMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDkzMzQgMDAwMDAgbiAKMDAwMDAwOTEyOSAwMDAwMCBuIAowMDAwMDA5MTcyIDAwMDAwIG4gCjAwMDAwMDkyNzEgMDAwMDAgbiAKMDAwMDAwOTI5MiAwMDAwMCBuIAowMDAwMDA5MzEzIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDQwMiAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDIzNDcgMDAwMDAgbiAKMDAwMDAwMzM2MiAwMDAwMCBuIAowMDAwMDAzMTU0IDAwMDAwIG4gCjAwMDAwMDI4MzEgMDAwMDAgbiAKMDAwMDAwNDQxNSAwMDAwMCBuIAowMDAwMDAyMzY4IDAwMDAwIG4gCjAwMDAwMDI2MTkgMDAwMDAgbiAKMDAwMDAwNzkwMyAwMDAwMCBuIAowMDAwMDA3NzAzIDAwMDAwIG4gCjAwMDAwMDczMTcgMDAwMDAgbiAKMDAwMDAwODk1NiAwMDAwMCBuIAowMDAwMDA0NDU3IDAwMDAwIG4gCjAwMDAwMDQ5MjIgMDAwMDAgbiAKMDAwMDAwNTI0MiAwMDAwMCBuIAowMDAwMDA1NDA0IDAwMDAwIG4gCjAwMDAwMDU1NTYgMDAwMDAgbiAKMDAwMDAwNTc3NiAwMDAwMCBuIAowMDAwMDA1OTk4IDAwMDAwIG4gCjAwMDAwMDYxMTkgMDAwMDAgbiAKMDAwMDAwNjUwOSAwMDAwMCBuIAowMDAwMDA2NzEzIDAwMDAwIG4gCjAwMDAwMDcwMzQgMDAwMDAgbiAKMDAwMDAwOTM5NCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDMzIDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSAzNCA+PgpzdGFydHhyZWYKOTU0OAolJUVPRgo=\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sym.plot(y2, (t,-1,10), ylabel=r'$y(t)$');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Compare the output signal derived by explicit solution of the ODE with the signal derived by convolution. Are both equal?\n", "* Check if the impulse response $h(t)$ is a solution of the ODE by manual calculation. Hint $\\frac{d}{dt} \\epsilon(t) = \\delta(t)$.\n", "* Check the solution of the convolution integral by manual calculation including the Heaviside functions." ] }, { "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 }