{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Characterization of Discrete 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, Comunications 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": [ "## Eigenfunctions\n", "\n", "An [eigenfunction](https://en.wikipedia.org/wiki/Eigenfunction) of a discrete system is defined as the input signal $x[k]$ which produces the output signal $y[k] = \\mathcal{H}\\{ x[k] \\} = \\lambda \\cdot x[k]$ with $\\lambda \\in \\mathbb{C}$. The weight $\\lambda$ associated with $x[k]$ is known as scalar eigenvalue of the system. Hence besides a weighting factor, an eigenfunction is not modified by passing through the system.\n", "\n", "[Complex exponential signals](../discrete_signals/standard_signals.ipynb#Complex-Exponential-Signal) $z^k$ with $z \\in \\mathbb{C}$ are eigenfunctions of discrete linear time-invariant (LTI) systems. Let's assume a generic LTI system with input signal $x[k] = z^k$ and output signal $y[k] = \\mathcal{H}\\{ x[k] \\}$. Due to the time-invariance of the system, the response to a shifted input signal $x(k-\\kappa) = z^{k - \\kappa}$ reads\n", "\n", "\\begin{equation}\n", "y[k- \\kappa] = \\mathcal{H}\\{ x[k - \\kappa] \\} = \\mathcal{H}\\{ z^{- \\kappa} \\cdot z^k \\}\n", "\\end{equation}\n", "\n", "Due to the linearity of the system this can be reformulated as\n", "\n", "\\begin{equation}\n", "y[k- \\kappa] = z^{- \\kappa} \\cdot \\mathcal{H}\\{ z^k \\} = z^{- \\kappa} \\cdot y[k]\n", "\\end{equation}\n", "\n", "If the complex exponential signal $z^k$ is an eigenfunction of the LTI system, the output \n", "signal is a weighted exponential signal $y[k] = \\lambda \\cdot z^k$. Introducing $y[k]$ into the left- and right-hand side of above equation yields\n", "\n", "\\begin{equation}\n", "\\lambda z^k z^{- \\kappa} = z^{- \\kappa} \\lambda z^k\n", "\\end{equation}\n", "\n", "which obviously is fulfilled. This proves that the exponential signal $z^k$ is an eigenfunction of LTI systems." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "The output signal of the previously introduced [second-order recursive LTI system](difference_equation.ipynb#Second-Order-System) with the difference equation\n", "\n", "\\begin{equation}\n", "y[k] - y[k-1] + \\frac{1}{2} y[k-2] = x[k]\n", "\\end{equation}\n", "\n", "is computed for a complex exponential signal $x[k] = z^k$ at the input. The output signal should be a weighted complex exponential due to above reasoning." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "from scipy import signal\n", "import matplotlib.pyplot as plt\n", "\n", "a = [1.0, -1.0, 1/2]\n", "b = [1.0]\n", "z = np.exp(0.02 + .5j)\n", "\n", "k = np.arange(30)\n", "x = z**k\n", "y = signal.lfilter(b, a, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The real and imaginary part of the input and output signal is plotted." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNTAgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyOCA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTcgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxNyA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA4CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5OTUgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2Jq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IDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjggMCBvYmoKPDwgL2JyYWNlbGVmdCAyOSAwIFIgL2JyYWNlcmlnaHQgMzAgMCBSIC9icmFja2V0bGVmdCAzMSAwIFIKL2JyYWNrZXRyaWdodCAzMiAwIFIgL2ZpdmUgMzMgMCBSIC9mb3VyIDM0IDAgUiAvb25lIDM2IDAgUiAvcGVyaW9kIDM3IDAgUgovdGhyZWUgMzggMCBSIC90d28gMzkgMCBSIC96ZXJvIDQwIDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMjcgMCBSIC9GMiAxOCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0RlamFWdVNhbnMtT2JsaXF1ZS1JZnJha3R1ciAyMCAwIFIgL0RlamFWdVNhbnMtT2JsaXF1ZS1SZnJha3R1ciAyMSAwIFIKL0RlamFWdVNhbnMtbWludXMgMzUgMCBSIC9NMCAxMiAwIFIgL00xIDEzIDAgUiAvTTIgMTQgMCBSIC9NMyAxNSAwIFIgPj4KZW5kb2JqCjEyIDAgb2JqCjw8IC9CQm94IFsgLTMuNSAtMy41IDMuNSAzLjUgXSAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDEzMQovU3VidHlwZSAvRm9ybSAvVHlwZSAvWE9iamVjdCA+PgpzdHJlYW0KeJxtkEEOhCAMRfc9RS/wSUtFZevSa7iZTOL9twNxQEzdNNC+PH5R/pLwTqXA+CQJS06z5HrTkNK6TIwY5tWyKMegUS3WznU4qM/QcGN0i7EUptTW6Hijm+k23pM/+rBZIUY/HA6vhHsWQyZcKTEGh98LL9vD/xGeXtTAH6KNfmNaQ/0KZW5kc3RyZWFtCmVuZG9iagoxMyAwIG9iago8PCAvQkJveCBbIC0zLjUgLTMuNSAzLjUgMy41IF0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMzEKL1N1YnR5cGUgL0Zvcm0gL1R5cGUgL1hPYmplY3QgPj4Kc3RyZWFtCnicbZBBDoQgDEX3PUUv8ElLRWXr0mu4mUzi/bcDcUBM3TTQvjx+Uf6S8E6lwPgkCUtOs+R605DSukyMGObVsijHoFEt1s51OKjP0HBjdIuxFKbU1uh4o5vpNt6TP/qwWSFGPxwOr4R7FkMmXCkxBoffCy/bw/8Rnl7UwB+ijX5jWkP9CmVuZHN0cmVhbQplbmRvYmoKMTQgMCBvYmoKPDwgL0JCb3ggWyAtMy41IC0zLjUgMy41IDMuNSBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTMxCi9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nG2QQQ6EIAxF9z1FL/BJS0Vl69JruJlM4v23A3FATN000L48flH+kvBOpcD4JAlLTrPketOQ0rpMjBjm1bIox6BRLdbOdTioz9BwY3SLsRSm1NboeKOb6Tbekz/6sFkhRj8cDq+EexZDJlwpMQaH3wsv28P/EZ5e1MAfoo1+Y1pD/QplbmRzdHJlYW0KZW5kb2JqCjE1IDAgb2JqCjw8IC9CQm94IFsgLTMuNSAtMy41IDMuNSAzLjUgXSAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDEzMQovU3VidHlwZSAvRm9ybSAvVHlwZSAvWE9iamVjdCA+PgpzdHJlYW0KeJxtkEEOhCAMRfc9RS/wSUtFZevSa7iZTOL9twNxQEzdNNC+PH5R/pLwTqXA+CQJS06z5HrTkNK6TIwY5tWyKMegUS3WznU4qM/QcGN0i7EUptTW6Hijm+k23pM/+rBZIUY/HA6vhHsWQyZcKTEGh98LL9vD/xGeXtTAH6KNfmNaQ/0KZW5kc3RyZWFtCmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iago0MSAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMTkwNjIwMTA0MTUyKzAyJzAwJykKL0NyZWF0b3IgKG1hdHBsb3RsaWIgMy4wLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChtYXRwbG90bGliIHBkZiBiYWNrZW5kIDMuMC4zKSA+PgplbmRvYmoKeHJlZgowIDQyCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDE1MjIxIDAwMDAwIG4gCjAwMDAwMTM4MjcgMDAwMDAgbiAKMDAwMDAxMzg3MCAwMDAwMCBuIAowMDAwMDEzOTY5IDAwMDAwIG4gCjAwMDAwMTM5OTAgMDAwMDAgbiAKMDAwMDAxNDAxMSAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzOTkgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDA1NzI2IDAwMDAwIG4gCjAwMDAwMTQxNzMgMDAwMDAgbiAKMDAwMDAxNDQzNSAwMDAwMCBuIAowMDAwMDE0Njk3IDAwMDAwIG4gCjAwMDAwMTQ5NTkgMDAwMDAgbiAKMDAwMDAwNzk0OCAwMDAwMCBuIAowMDAwMDA3NzQwIDAwMDAwIG4gCjAwMDAwMDc0MTQgMDAwMDAgbiAKMDAwMDAwOTAwMSAwMDAwMCBuIAowMDAwMDA1NzQ3IDAwMDAwIG4gCjAwMDAwMDYyMTMgMDAwMDAgbiAKMDAwMDAwNjg3OSAwMDAwMCBuIAowMDAwMDA3MDM4IDAwMDAwIG4gCjAwMDAwMDcyMDIgMDAwMDAgbiAKMDAwMDAxMjU4MiAwMDAwMCBuIAowMDAwMDEyMzgyIDAwMDAwIG4gCjAwMDAwMTE5NzYgMDAwMDAgbiAKMDAwMDAxMzYzNSAwMDAwMCBuIAowMDAwMDA5MDUzIDAwMDAwIG4gCjAwMDAwMDk0MDUgMDAwMDAgbiAKMDAwMDAwOTc1NCAwMDAwMCBuIAowMDAwMDA5ODk3IDAwMDAwIG4gCjAwMDAwMTAwMzYgMDAwMDAgbiAKMDAwMDAxMDM1NiAwMDAwMCBuIAowMDAwMDEwNTE4IDAwMDAwIG4gCjAwMDAwMTA2ODggMDAwMDAgbiAKMDAwMDAxMDg0MCAwMDAwMCBuIAowMDAwMDEwOTYxIDAwMDAwIG4gCjAwMDAwMTEzNzIgMDAwMDAgbiAKMDAwMDAxMTY5MyAwMDAwMCBuIAowMDAwMDE1MjgxIDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gNDEgMCBSIC9Sb290IDEgMCBSIC9TaXplIDQyID4+CnN0YXJ0eHJlZgoxNTQzNQolJUVPRgo=\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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": [ "plt.figure(figsize=(10,8))\n", "\n", "plt.subplot(221)\n", "plt.stem(k, np.real(x))\n", "plt.xlabel('$k$')\n", "plt.ylabel(r'$\\Re \\{ x[k] \\}$')\n", "\n", "plt.subplot(222)\n", "plt.stem(k, np.imag(x))\n", "plt.xlabel('$k$')\n", "plt.ylabel(r'$\\Im \\{ x[k] \\}$')\n", "plt.tight_layout()\n", "\n", "plt.subplot(223)\n", "plt.stem(k, np.real(y))\n", "plt.xlabel('$k$')\n", "plt.ylabel(r'$\\Re \\{ y[k] \\}$')\n", "\n", "plt.subplot(224)\n", "plt.stem(k, np.imag(y))\n", "plt.xlabel('$k$')\n", "plt.ylabel(r'$\\Im \\{ y[k] \\}$')\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* From the in- and output signal only, can we conclude that the system is LTI?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Transfer Function\n", "\n", "The complex eigenvalue $\\lambda$ characterizes the properties of the transfer of a complex exponential signal $z^k$ with [complex frequency $z$](../discrete_signals/standard_signals.ipynb#Complex-Exponential-Signal) through a discrete LTI system. It is commonly termed as [*transfer function*](https://en.wikipedia.org/wiki/Transfer_function) and denoted by $H(z)=\\lambda(z)$. Using this definition, the output signal $y[k]$ of an LTI system with complex exponential signal at the input reads\n", "\n", "\\begin{equation}\n", "y[k] = \\mathcal{H} \\{ z^k \\} = H(z) \\cdot z^k\n", "\\end{equation}\n", "\n", "Note that the concept of the transfer function is directly linked to the linearity and time-invariance of a system. Only in this case, complex exponential signals are eigenfunctions of the system and $H(z)$ describes the properties of an LTI system with respect to these.\n", "\n", "Above equation can be rewritten in terms of the magnitude $| H(z) |$ and phase $\\varphi(z)$ of the complex transfer function $H(z)$\n", "\n", "\\begin{equation}\n", "y[k] = | H(z) | \\cdot z^k = | H(z) | \\cdot e^{\\Sigma k + j \\Omega k + j \\varphi(z)}\n", "\\end{equation}\n", "\n", "where $z = e^{\\Sigma + j \\Omega}$ has been substituted to derive the last equality. The magnitude $| H(z) |$ provides the frequency dependent attenuation of the eigenfunction $z^k$ by the system, while $\\varphi(z)$ provides the phase-shift introduced by the system." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Link between Transfer Function and Impulse Response\n", "\n", "In order to establish a link between the transfer function $H(z)$ and the impulse response $h[k]$, the output signal $y[k] = \\mathcal{H} \\{ x[k] \\}$ of an LTI system with input signal $x[k]$ is computed. It is given by convolving the input signal with the impulse response\n", "\n", "\\begin{equation}\n", "y[k] = x[k] * h[k] = \\sum_{\\kappa = -\\infty}^{\\infty} x[k-\\kappa] \\cdot h[\\kappa]\n", "\\end{equation}\n", "\n", "For a complex exponential signal as input $x[k] = z^k$ the output of the LTI system is given as $y[k] = \\mathcal{H} \\{ z^k \\} = H(z) \\cdot z^k$. Introducing both signals into the left- and right-hand side of the convolution yields\n", "\n", "\\begin{equation}\n", "H(z) \\cdot z^k = \\sum_{\\kappa = -\\infty}^{\\infty} z^k \\, z^{- \\kappa} \\cdot h[\\kappa]\n", "\\end{equation}\n", "\n", "which after canceling out $z^k$ results in\n", "\n", "\\begin{equation}\n", "H(z) = \\sum_{\\kappa = -\\infty}^{\\infty} h[\\kappa] \\cdot z^{- \\kappa}\n", "\\end{equation}\n", "\n", "The transfer function $H(z)$ can be computed from the impulse response by summing over the impulse response $h[k]$ multiplied with the complex exponential function $z^k$. This constitutes a transformation, which is later introduced in more detail as [$z$-transform](https://en.wikipedia.org/wiki/Z-transform)." ] }, { "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 }