{
"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": [
"## Impulse Response\n",
"\n",
"The concept of the so-called impulse response of discrete linear time-invariant (LTI) system and its connection to linear difference equations is introduced in the following."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Output Signal\n",
"\n",
"The response $y[k] = \\mathcal{H} \\{ x[k] \\}$ of an LTI system to an arbitrary input signal $x[k]$ is derived. By applying the [sifting-property of the discrete Dirac impulse](../discrete_signals/standard_signals.ipynb#Dirac-Impulse), the input signal can be represented as\n",
"\n",
"\\begin{equation}\n",
"x[k] = \\sum_{\\kappa = -\\infty}^{\\infty} x[\\kappa] \\cdot \\delta[k-\\kappa]\n",
"\\end{equation}\n",
"\n",
"The output signal of the system is given by\n",
"\n",
"\\begin{equation}\n",
"y[k] = \\mathcal{H} \\left\\{ \\sum_{\\kappa = -\\infty}^{\\infty} x[\\kappa] \\cdot \\delta[k-\\kappa] \\right\\}\n",
"\\end{equation}\n",
"\n",
"The summation and system response operator $\\mathcal{H}$ can be exchanged under the assumption that the system is linear\n",
"\n",
"\\begin{equation}\n",
"y[k] = \\sum_{\\kappa = -\\infty}^{\\infty} x[\\kappa] \\cdot \\mathcal{H} \\left\\{ \\delta[k-\\kappa] \\right\\}\n",
"\\end{equation}\n",
"\n",
"where $\\mathcal{H} \\{\\cdot\\}$ was only applied to the Dirac impulse, since $x[\\kappa]$ can be regarded as constant factor with respect to the index $k$.\n",
"\n",
"The response of a system to a Dirac impulse as input is termed [*impulse response*](https://en.wikipedia.org/wiki/Impulse_response). It is defined as\n",
"\n",
"\\begin{equation}\n",
"h[k] = \\mathcal{H} \\left\\{ \\delta[k] \\right\\}\n",
"\\end{equation}\n",
"\n",
"If the system is time-invariant, the response to a shifted Dirac impulse is $\\mathcal{H} \\left\\{ \\delta[k-\\kappa]) \\right\\} = h[k-\\kappa]$. Hence, for a discrete LTI system we finally get\n",
"\n",
"\\begin{equation}\n",
"y[k] = \\sum_{\\kappa = -\\infty}^{\\infty} x[\\kappa] \\cdot h[k-\\kappa] = y[k] = x[k] * h[k]\n",
"\\end{equation}\n",
"\n",
"This operation is termed as linear [*convolution*](https://en.wikipedia.org/wiki/Convolution) and commonly abbreviated by $*$. The properties of an LTI system are entirely characterized by its impulse response. The response $y[k]$ of a system to an arbitrary input signal $x[k]$ is given by the convolution of the input signal $x[k]$ with its impulse response $h[k]$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Relation to Difference Equation\n",
"\n",
"The impulse response $h[k] = \\mathcal{H} \\{ \\delta[k] \\}$ is the response of an LTI system to an Dirac impulse at the input. It can be derived from the coefficients of a [linear differential equation representing the LTI system](difference_equation.ipynb) by computing the output signal for the input signal $x[k] = \\delta[k]$. Introducing this into the [solution of the difference equation](difference_equation.ipynb#Computation-of-the-Output-Signal) yields\n",
"\n",
"\\begin{equation}\n",
"h[k] = \\frac{1}{a_0} \\left( \\sum_{m=0}^{M} b_m \\; \\delta[k-m] - \\sum_{n=1}^{N} a_n \\; h[k-n] \\right)\n",
"\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Finite Impulse Response\n",
"\n",
"Let's consider the case of a [non-recursive system](difference_equation.ipynb#Recursive-and-Non-Recursive-Systems) with $a_n = 0$ for $n > 0$. Without loss of generality it can be assumed that $a_0 = 1$, since $\\frac{1}{a_0}$ can be incorporated into the other coefficients by dividing them through $a_0$. The impulse response is given as\n",
"\n",
"\\begin{equation}\n",
"h[k] = \\sum_{m=0}^{M} b_m \\; \\delta[k-m] = \\begin{cases} b_k & \\text{for } 0 \\leq k < M \\\\ 0 & \\text{otherwise} \\end{cases}\n",
"\\end{equation}\n",
"\n",
"Note that the summation in above formula constitutes a convolution between the signal given by the samples $b_m$ and the Dirac impulse $\\delta[k]$. The impulse response of a non-recursive system is of finite length $M$. Its values are given by the coefficients $b_m$ of the linear difference equation characterizing the system. An impulse response of finite length is commonly termed [finite impulse response (FIR)](https://en.wikipedia.org/wiki/Finite_impulse_response). The term FIR (system) is used synonymously to non-recursive system. The former relates to the length of the impulse response and the latter to the structure of the system."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Example - Moving Average**\n",
"\n",
"According to above findings, the impulse response of the [moving average filter](difference_equation.ipynb#Moving-Average) is given as\n",
"\n",
"\\begin{equation}\n",
"h[k] = \\frac{1}{N} \\cdot \\text{rect}_N[k]\n",
"\\end{equation}\n",
"\n",
"As alternative to the [solution of the difference equation illustrated before](difference_equation.ipynb#Moving-Average), the output signal $y[k] = \\mathcal{H} \\{ y[k] \\}$ is computed by convolution of the (same) input signal."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"application/pdf": "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ZSAvQ2hhclByb2NzIDE3IDAgUgovRW5jb2RpbmcgPDwgL0RpZmZlcmVuY2VzIFsgMTA3IC9rIDEyMCAveCAveSBdIC9UeXBlIC9FbmNvZGluZyA+PgovRmlyc3RDaGFyIDAgL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udERlc2NyaXB0b3IgMTUgMCBSCi9Gb250TWF0cml4IFsgMC4wMDEgMCAwIDAuMDAxIDAgMCBdIC9MYXN0Q2hhciAyNTUgL05hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxNCAwIFIgPj4KZW5kb2JqCjE1IDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyA5NgovRm9udEJCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9Gb250TmFtZSAvRGVqYVZ1U2Fucy1PYmxpcXVlCi9JdGFsaWNBbmdsZSAwIC9NYXhXaWR0aCAxMzUwIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxNCAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjggNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjE3IDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTcgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwOAo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTk1IDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoxNyAwIG9iago8PCAvayAxOCAwIFIgL3ggMTkgMCBSIC95IDIwIDAgUiA+PgplbmRvYmoKMjUgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA3MSA+PgpzdHJlYW0KeJwztjRQMFCwMFPQNTQ2VDCyNFYwNzNQSDHkAgqBWLlcMLEcMMvMEsQyNDdDYumaGUJlkVgg43K4YAbnwMzL4UoDAPG0FiMKZW5kc3RyZWFtCmVuZG9iagoyNiAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDY3ID4+CnN0cmVhbQp4nDO2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MCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAyMSAwIFIgPj4KZW5kb2JqCjIyIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMjEgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjQgMCBvYmoKPDwgL2JyYWNrZXRsZWZ0IDI1IDAgUiAvYnJhY2tldHJpZ2h0IDI2IDAgUiAvZml2ZSAyNyAwIFIgL2ZvdXIgMjggMCBSCi9vbmUgMzAgMCBSIC9wZXJpb2QgMzEgMCBSIC9zaXggMzIgMCBSIC90aHJlZSAzMyAwIFIgL3R3byAzNCAwIFIKL3plcm8gMzUgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMyAwIFIgL0YyIDE2IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRGVqYVZ1U2Fucy1taW51cyAyOSAwIFIgL00wIDEyIDAgUiAvTTEgMTMgMCBSID4+CmVuZG9iagoxMiAwIG9iago8PCAvQkJveCBbIC0zLjUgLTMuNSAzLjUgMy41IF0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMzEKL1N1YnR5cGUgL0Zvcm0gL1R5cGUgL1hPYmplY3QgPj4Kc3RyZWFtCnicbZBBDoQgDEX3PUUv8ElLRWXr0mu4mUzi/bcDcUBM3TTQvjx+Uf6S8E6lwPgkCUtOs+R605DSukyMGObVsijHoFEt1s51OKjP0HBjdIuxFKbU1uh4o5vpNt6TP/qwWSFGPxwOr4R7FkMmXCkxBoffCy/bw/8Rnl7UwB+ijX5jWkP9CmVuZHN0cmVhbQplbmRvYmoKMTMgMCBvYmoKPDwgL0JCb3ggWyAtMy41IC0zLjUgMy41IDMuNSBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTMxCi9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nG2QQQ6EIAxF9z1FL/BJS0Vl69JruJlM4v23A3FATN000L48flH+kvBOpcD4JAlLTrPketOQ0rpMjBjm1bIox6BRLdbOdTioz9BwY3SLsRSm1NboeKOb6Tbekz/6sFkhRj8cDq+EexZDJlwpMQaH3wsv28P/EZ5e1MAfoo1+Y1pD/QplbmRzdHJlYW0KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjM2IDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA3MDQxMTQ1MjUrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzcKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTIxODcgMDAwMDAgbiAKMDAwMDAxMTQxMSAwMDAwMCBuIAowMDAwMDExNDU0IDAwMDAwIG4gCjAwMDAwMTE1NTMgMDAwMDAgbiAKMDAwMDAxMTU3NCAwMDAwMCBuIAowMDAwMDExNTk1IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDQwMCAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDQ4MDQgMDAwMDAgbiAKMDAwMDAxMTY2MyAwMDAwMCBuIAowMDAwMDExOTI1IDAwMDAwIG4gCjAwMDAwMDU4OTQgMDAwMDAgbiAKMDAwMDAwNTY4NiAwMDAwMCBuIAowMDAwMDA1MzYwIDAwMDAwIG4gCjAwMDAwMDY5NDcgMDAwMDAgbiAKMDAwMDAwNDgyNSAwMDAwMCBuIAowMDAwMDA0OTg0IDAwMDAwIG4gCjAwMDAwMDUxNDggMDAwMDAgbiAKMDAwMDAxMDE5MSAwMDAwMCBuIAowMDAwMDA5OTkxIDAwMDAwIG4gCjAwMDAwMDk2MTEgMDAwMDAgbiAKMDAwMDAxMTI0NCAwMDAwMCBuIAowMDAwMDA2OTk5IDAwMDAwIG4gCjAwMDAwMDcxNDIgMDAwMDAgbiAKMDAwMDAwNzI4MSAwMDAwMCBuIAowMDAwMDA3NjAxIDAwMDAwIG4gCjAwMDAwMDc3NjMgMDAwMDAgbiAKMDAwMDAwNzkzMyAwMDAwMCBuIAowMDAwMDA4MDg1IDAwMDAwIG4gCjAwMDAwMDgyMDYgMDAwMDAgbiAKMDAwMDAwODU5NiAwMDAwMCBuIAowMDAwMDA5MDA3IDAwMDAwIG4gCjAwMDAwMDkzMjggMDAwMDAgbiAKMDAwMDAxMjI0NyAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDM2IDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSAzNyA+PgpzdGFydHhyZWYKMTI0MDEKJSVFT0YK\n",
"image/svg+xml": [
"\n",
"\n",
"\n",
"\n"
],
"text/plain": [
"