{
"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": [
"## The Transfer Function\n",
"\n",
"Different time-domain representations are used to characterize linear time-invariant (LTI) systems. For instance, the constant coefficients of ordinary partial differential equations (ODEs), the [impulse response](../systems_time_domain/impulse_response.ipynb) and the [step response](../systems_time_domain/step_response.ipynb). The [transfer function](../systems_time_domain/eigenfunctions.ipynb#Transfer-Function) denotes the complex factor $H(s)$ an eigenfunction $e^{s t}$ at the input of an LTI system is weighted with when passing through the system. Since the Laplace transform decomposes signals with respect to these eigenfunctions, the transfer function constitutes a representation of an LTI system in the spectral (Laplace or Fourier) domain. The links between the transfer function and the time-domain representations of LTI systems are discussed in this section."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Relation to Impulse Response and In-/Output Signal\n",
"\n",
"It was already outlined in the context of the [convolution theorem of the Fourier](../fourier_transform/theorems.ipynb#Convolution-Theorem) and [Laplace transform](../laplace_transform/theorems.ipynb#Convolution-Theorem), that an LTI system can be represented equivalently in the temporal and spectral domain. In the temporal domain the output $y(t)$ of an LTI system is given by convolving the input signal $x(t)$ with the [impulse response](../systems_time_domain/impulse_response.ipynb) $h(t)$ of the system\n",
"\n",
"\\begin{equation}\n",
"y(t) = x(t) * h(t)\n",
"\\end{equation}\n",
"\n",
"Applying the convolution theorem of the Laplace transform yields\n",
"\n",
"\\begin{equation}\n",
"Y(s) = X(s) \\cdot H(s)\n",
"\\end{equation}\n",
"\n",
"where $X(s) = \\mathcal{L} \\{ x(t) \\}$ and $Y(s) = \\mathcal{L} \\{ y(t) \\}$ are the Laplace transforms of the input and output signal, respectively. The transfer function $H(s)$ is given as the Laplace transform of the impulse response $h(t)$\n",
"\n",
"\\begin{equation}\n",
"H(s) = \\mathcal{L} \\{ h(t) \\}\n",
"\\end{equation}\n",
"\n",
"This may also be concluded from the [previously derived link between the impulse response and the transfer function](../systems_time_domain/eigenfunctions.ipynb#Link-between-Transfer-Function-and-Impulse-Response). The derived results show that an LTI system can be fully characterized either in the temporal or spectral domain by its impulse response $h(t)$ or transfer function $H(s)$ or $H(j \\omega)$, respectively.\n",
"\n",
"\n",
"\n",
"It can furthermore be concluded that the transfer function is given as the quotient between output $Y(s)$ and input signal $X(s)$ in the Laplace domain\n",
"\n",
"\\begin{equation}\n",
"H(s) = \\frac{Y(s)}{X(s)}\n",
"\\end{equation}\n",
"\n",
"for $X(s) \\neq 0$. The same relations hold in the Fourier domain if the region of convergence (ROC) of the impulse response includes the imaginary axis $\\Re \\{ s \\} = 0$. In general, the transfer function can be derived by divison of the spectra of the output and input signal. This can be used to measure the transfer function of a system by specific input signals that fulfill $X(s) \\neq 0$ with $X(s) \\approx$ constant."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Example**\n",
"\n",
"The [transfer function $H(s)$ of the 2nd order low-pass filter](../systems_time_domain/network_analysis.ipynb#Transfer-Function) was derived as\n",
"\n",
"\\begin{equation}\n",
"H(s) = \\frac{1}{C L s^2 + C R s + 1}\n",
"\\end{equation}\n",
"\n",
"According to above findings, the impulse response $h(t)$ of the low-pass is given by inverse Laplace transform of the transfer function $H(s)$. First the transfer function 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 s^{2} + C R s + 1}$"
],
"text/plain": [
" 1 \n",
"──────────────────\n",
" 2 \n",
"C⋅L⋅s + C⋅R⋅s + 1"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import sympy as sym\n",
"%matplotlib inline\n",
"sym.init_printing()\n",
"\n",
"R, L, C = sym.symbols('R L C', positive=True)\n",
"s = sym.symbols('s', complex=True)\n",
"\n",
"H = 1/(C*L*s**2 + C*R*s + 1)\n",
"H"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then the inverse Laplace transform is computed for the specific normalized values $L = .5$, $R = 1$, $C = .4$ of the network elements"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\frac{5 e^{- t} \\sin{\\left(2 t \\right)} \\theta\\left(t\\right)}{2}$"
],
"text/plain": [
" -t \n",
"5⋅ℯ ⋅sin(2⋅t)⋅Heaviside(t)\n",
"───────────────────────────\n",
" 2 "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t = sym.symbols('t', real=True)\n",
"RLC = {R: 1, L: sym.Rational('.5'), C: sym.Rational('.4')}\n",
"\n",
"h = sym.inverse_laplace_transform(H.subs(RLC), s, t)\n",
"h"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This result is plotted for illustration"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"application/pdf": "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VHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0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L0Rlc2NlbnQgLTIzNiAvRmxhZ3MgMzIKL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udE5hbWUgL0RlamFWdVNhbnMgL0l0YWxpY0FuZ2xlIDAKL01heFdpZHRoIDEzNDIgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjE3IDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIwIDAgb2JqCjw8IC9laWdodCAyMSAwIFIgL2ZvdXIgMjIgMCBSIC9oIDIzIDAgUiAvb25lIDI1IDAgUiAvcGFyZW5sZWZ0IDI2IDAgUgovcGFyZW5yaWdodCAyNyAwIFIgL3BlcmlvZCAyOCAwIFIgL3NpeCAyOSAwIFIgL3QgMzAgMCBSIC90d28gMzEgMCBSCi96ZXJvIDMyIDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMTkgMCBSIC9GMiAxNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0RlamFWdVNhbnMtbWludXMgMjQgMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iagozMyAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMTkwNTI5MDkzNzA1KzAyJzAwJykKL0NyZWF0b3IgKG1hdHBsb3RsaWIgMy4wLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChtYXRwbG90bGliIHBkZiBiYWNrZW5kIDMuMC4zKSA+PgplbmRvYmoKeHJlZgowIDM0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDA5NzE2IDAwMDAwIG4gCjAwMDAwMDk0ODYgMDAwMDAgbiAKMDAwMDAwOTUyOSAwMDAwMCBuIAowMDAwMDA5NjI4IDAwMDAwIG4gCjAwMDAwMDk2NDkgMDAwMDAgbiAKMDAwMDAwOTY3MCAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzOTggMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDAyODQ2IDAwMDAwIG4gCjAwMDAwMDM2NDIgMDAwMDAgbiAKMDAwMDAwMzQzNCAwMDAwMCBuIAowMDAwMDAzMTE4IDAwMDAwIG4gCjAwMDAwMDQ2OTUgMDAwMDAgbiAKMDAwMDAwMjg2NyAwMDAwMCBuIAowMDAwMDA4MjYzIDAwMDAwIG4gCjAwMDAwMDgwNjMgMDAwMDAgbiAKMDAwMDAwNzY3MyAwMDAwMCBuIAowMDAwMDA5MzE2IDAwMDAwIG4gCjAwMDAwMDQ3MjcgMDAwMDAgbiAKMDAwMDAwNTE5MiAwMDAwMCBuIAowMDAwMDA1MzU0IDAwMDAwIG4gCjAwMDAwMDU1OTAgMDAwMDAgbiAKMDAwMDAwNTc2MCAwMDAwMCBuIAowMDAwMDA1OTEyIDAwMDAwIG4gCjAwMDAwMDYxMzIgMDAwMDAgbiAKMDAwMDAwNjM1NCAwMDAwMCBuIAowMDAwMDA2NDc1IDAwMDAwIG4gCjAwMDAwMDY4NjUgMDAwMDAgbiAKMDAwMDAwNzA2OSAwMDAwMCBuIAowMDAwMDA3MzkwIDAwMDAwIG4gCjAwMDAwMDk3NzYgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzMyAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzQgPj4Kc3RhcnR4cmVmCjk5MzAKJSVFT0YK\n",
"image/svg+xml": [
"\n",
"\n",
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sym.plot(h, (t, 0, 10), xlabel='$t$', ylabel='h(t)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note, the result is equal to the [impulse response derived by explicit solution of the underlying ODE](../systems_time_domain/network_analysis.ipynb#Impulse-Response)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Relation to Differential Equations\n",
"\n",
"Linear ODEs with constant coefficients describing the relation between input $x(t)$ and output $y(t)$ represent an LTI system. In this case a system is characterized by the constants $\\alpha_n$ and $\\beta_m$ of the ODE\n",
"\n",
"\\begin{equation}\n",
"\\sum_{n=0}^{N} \\alpha_n \\frac{d^n}{d t^n} y(t) = \\sum_{m=0}^{M} \\beta_m \\frac{d^m}{d t^m} x(t)\n",
"\\end{equation}\n",
"\n",
"where $\\alpha_N \\neq 0$ with $N$ denoting the degree of the ODE. Initial values are discarded in the following. Applying a two-sided Laplace transform to the left- and right-hand-side and using the [differentiation theorem](../laplace_transform/theorems.ipynb#Differentiation-Theorem) yields\n",
"\n",
"\\begin{equation}\n",
"Y(s) \\sum_{n=0}^{N} \\alpha_n s^n = X(s) \\sum_{m=0}^{M} \\beta_m s^m\n",
"\\end{equation}\n",
"\n",
"Rearranging this result derives the transfer function $H(s)$ of the system as\n",
"\n",
"\\begin{equation}\n",
"H(s) = \\frac{Y(s)}{X(s)} = \\frac{\\sum_{m=0}^{M} \\beta_m s^m}{\\sum_{n=0}^{N} \\alpha_n s^n}\n",
"\\end{equation}\n",
"\n",
"The transfer function of an LTI system whose in- and output relation can be characterized by an ODE is given as rational function in $s$. The coefficients of its numerator and denominator polynomial are given by the coefficients $\\beta_m$ and $\\alpha_n$ of the ODE. The conversion between both representations of an LTI system is therefore straightforward."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Example**\n",
"\n",
"The coefficients for the 2nd order low-pass filter can be determined [from its ODE](../systems_time_domain/network_analysis.ipynb#Differential-Equation) or from above transfer function as\n",
"\n",
"\\begin{align}\n",
"\\beta_0 &= 1 & \\alpha_0 &= 1 \\\\\n",
"& & \\alpha_1 &= C R \\\\\n",
"& & \\alpha_2 &= C L\n",
"\\end{align}\n",
"\n",
"From theses coefficients the transfer function $H(s)$ is constructed in `SymPy`"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\frac{1}{C L s^{2} + C R s + 1}$"
],
"text/plain": [
" 1 \n",
"──────────────────\n",
" 2 \n",
"C⋅L⋅s + C⋅R⋅s + 1"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"R, L, C = sym.symbols('R L C', positive=True)\n",
"beta = 1\n",
"alpha = L*C, R*C, 1\n",
"\n",
"H = sym.Poly(beta, s) / sym.Poly(alpha, s)\n",
"H"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Many software packages for signal processing feature functionality for the computation of the transfer function from the coefficients $\\beta_m$ and $\\alpha_n$ of a system. For instance, the Python signal processing toolbox [`scipy.signal`](http://docs.scipy.org/doc/scipy/reference/signal.html) provides a function to numerically evaluate the transfer function $H(j \\omega)$ at a number of angular frequencies $\\omega_i$ for a given set of coefficients. This is illustrated in the following for the normalized values $R$, $L$ and $C$ used above."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"from scipy import signal\n",
"\n",
"R = 1\n",
"L = 0.5\n",
"C = 0.4\n",
"beta = 1\n",
"alpha = L*C, R*C, 1\n",
"\n",
"w, H = signal.freqresp((beta, alpha))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This results in the vector `w` of discrete angular frequencies $\\omega_i$ and the vector `H` with the values of $H(j \\omega)$ at these frequencies. The latter is plotted with the Python plotting library [`matplotlib`](http://matplotlib.org/)."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"application/pdf": "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ZXMgWyA3MiAvSCAxMDYgL2ogMTE1IC9zIF0gL1R5cGUgL0VuY29kaW5nID4+Ci9GaXJzdENoYXIgMCAvRm9udEJCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9Gb250RGVzY3JpcHRvciAxMyAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2Fucy1PYmxpcXVlCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDEyIDAgUiA+PgplbmRvYmoKMTMgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDk2Ci9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnROYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL0l0YWxpY0FuZ2xlIDAgL01heFdpZHRoIDEzNTAgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjEyIDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNTAgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyOCA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTcgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxNyA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA4CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5OTUgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjE1IDAgb2JqCjw8IC9IIDE2IDAgUiAvaiAxNyAwIFIgL3MgMTkgMCBSID4+CmVuZG9iagoyNCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDU0ID4+CnN0cmVhbQp4nDM2NlcwUDA0MlfQNTI2VTAyNFAwNzNRSDHkgjFzwSywbA4XXCGECZLPgavM4UoDAEyQDxUKZW5kc3RyZWFtCmVuZG9iagoyNSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDM5MiA+PgpzdHJlYW0KeJw9UktuBTEI288puECl8E1ynqne7t1/W5vMVKoKLwO2MZSXDKklP+qSiDNMfvVyXeJR8r1samfmIe4u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MCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIzIDAgb2JqCjw8IC9iYXIgMjQgMCBSIC9laWdodCAyNSAwIFIgL2ZvdXIgMjYgMCBSIC9pIDI3IDAgUiAvbiAyOSAwIFIgL29uZSAzMCAwIFIKL3BhcmVubGVmdCAzMSAwIFIgL3BhcmVucmlnaHQgMzIgMCBSIC9wZXJpb2QgMzMgMCBSIC9zaXggMzQgMCBSCi9zcGFjZSAzNSAwIFIgL3R3byAzNiAwIFIgL3plcm8gMzcgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMiAwIFIgL0YyIDE0IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRGVqYVZ1U2Fucy1PYmxpcXVlLW9tZWdhIDE4IDAgUiAvRGVqYVZ1U2Fucy1taW51cyAyOCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjM4IDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA1MjkwOTM3MDYrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzkKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTAzNzUgMDAwMDAgbiAKMDAwMDAxMDExMiAwMDAwMCBuIAowMDAwMDEwMTU1IDAwMDAwIG4gCjAwMDAwMTAyNTQgMDAwMDAgbiAKMDAwMDAxMDI3NSAwMDAwMCBuIAowMDAwMDEwMjk2IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM5OCAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDIzOTggMDAwMDAgbiAKMDAwMDAwNDA1NCAwMDAwMCBuIAowMDAwMDAzODQ2IDAwMDAwIG4gCjAwMDAwMDM1MTcgMDAwMDAgbiAKMDAwMDAwNTEwNyAwMDAwMCBuIAowMDAwMDAyNDE5IDAwMDAwIG4gCjAwMDAwMDI1NzkgMDAwMDAgbiAKMDAwMDAwMjgwNCAwMDAwMCBuIAowMDAwMDAzMTE5IDAwMDAwIG4gCjAwMDAwMDg4NjMgMDAwMDAgbiAKMDAwMDAwODY2MyAwMDAwMCBuIAowMDAwMDA4MjU0IDAwMDAwIG4gCjAwMDAwMDk5MTYgMDAwMDAgbiAKMDAwMDAwNTE1OSAwMDAwMCBuIAowMDAwMDA1Mjg1IDAwMDAwIG4gCjAwMDAwMDU3NTAgMDAwMDAgbiAKMDAwMDAwNTkxMiAwMDAwMCBuIAowMDAwMDA2MDUyIDAwMDAwIG4gCjAwMDAwMDYyMjIgMDAwMDAgbiAKMDAwMDAwNjQ1NiAwMDAwMCBuIAowMDAwMDA2NjA4IDAwMDAwIG4gCjAwMDAwMDY4MjggMDAwMDAgbiAKMDAwMDAwNzA1MCAwMDAwMCBuIAowMDAwMDA3MTcxIDAwMDAwIG4gCjAwMDAwMDc1NjEgMDAwMDAgbiAKMDAwMDAwNzY1MCAwMDAwMCBuIAowMDAwMDA3OTcxIDAwMDAwIG4gCjAwMDAwMTA0MzUgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzOCAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzkgPj4Kc3RhcnR4cmVmCjEwNTg5CiUlRU9GCg==\n",
"image/svg+xml": [
"\n",
"\n",
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.plot(w, abs(H))\n",
"plt.xlabel('$\\omega$ in $s^{-1}$')\n",
"plt.ylabel('$|H(j \\omega)|$')\n",
"plt.grid();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Determination from Internal Structure\n",
"\n",
"The transfer function $H(s)$ can be determined from the internal structure of an LTI system, if known. Either by derivation of the ODE characterizing the system, as shown above, or by direct analysis of the system in the Laplace/Fourier domain. For passive electrical networks this can be conducted by representing the signals and elements of the network by their complex impedances $Z(s)$ and applying Kirchhoff's circuit laws. This was illustrated for instance by the previous [Laplace domain analysis of a 2nd order low-pass filter](../laplace_transform/network_analysis.ipynb#Example:-Second-Order-Low-Pass-Filter). Similar procedures can be applied to other types of LTI systems, e.g. mechanical systems.\n",
"\n",
"The transfer function is then given as the quotient between the output signal $Y(s)$ and the input signal $X(s)$ in the Laplace/Fourier domain."
]
},
{
"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
}