{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"nbsphinx": "hidden"
},
"source": [
"# The Fourier Transform\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": [
"## Theorems\n",
"\n",
"The theorems of the Fourier transform relate basic time-domain operations to their equivalents in the Fourier domain. They are of use for the computation of Fourier transforms of signals composed from modified [standard signals](../continuous_signals/standard_signals.ipynb) and for the computation of the response of systems to an input signal. The theorems allow further to predict the consequences of modifying a signal or system by certain operations."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Temporal Scaling Theorem\n",
"\n",
"A signal $x(t)$ for which the Fourier transform $X(j \\omega) = \\mathcal{F} \\{ x(t) \\}$ is existing and known is given. The Fourier transform of the [temporally scaled signal](../continuous_signals/operations.ipynb#Temporal-Scaling) $x(a t)$ with $a \\in \\mathbb{R} \\setminus \\{0\\}$ reads\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\{ x(a t) \\} = \\frac{1}{|a|} \\cdot X \\left( \\frac{j \\omega}{a} \\right)\n",
"\\end{equation}\n",
"\n",
"The Fourier transformation of a temporally scaled signal is given by inverse scaling of the Fourier transform of the unscaled signal and weighting with $\\frac{1}{|a|}$. This relation is known as scaling theorem of the Fourier transform. It can be proven by introducing the scaled signal $x(a t)$ into the definition of the Fourier transformation together with the substitution $t' = a t$. For $a>0$ this reads\n",
"\n",
"\\begin{equation}\n",
"\\begin{split}\n",
"\\mathcal{F} \\{ x(a t) \\} &= \\int_{-\\infty}^{\\infty} x(a t) e^{-j \\omega t} dt \\\\\n",
"&= \\frac{1}{a} \\int_{-\\infty}^{\\infty} x(t') e^{-j \\frac{\\omega}{a} t'} dt' \\\\\n",
"&= \\frac{1}{a} X \\left( \\frac{\\omega}{a} \\right)\n",
"\\end{split}\n",
"\\end{equation}\n",
"\n",
"\n",
"\n",
"Note that the cases $a<0$ and $a>0$ have to be regarded separately."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Example**\n",
"\n",
"According to the scaling theorem and the [Fourier transform of the rectangular signal](definition.ipynb#Transformation-of-the-Rectangular-Signal) $\\mathcal{F} \\{ \\text{rect}(t) \\} = \\text{sinc} \\left( \\frac{\\omega}{2} \\right)$, the transform of the scaled rectangular signal $\\text{rect}(a t)$ is given as\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\{ \\text{rect}(a t) \\} = \\frac{1}{|a|} \\cdot \\text{sinc} \\left( \\frac{\\omega}{2 a} \\right)\n",
"\\end{equation}\n",
"\n",
"This can be confirmed by explicitly calculating the Fourier transformation of $\\text{rect}(a t)$"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAFUAAAAvBAMAAABgYpvOAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpnNuzKriUQQ7912ZlSugimNAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACXElEQVRIDe1VTWjUUBD+kk2ym822rgqCojT4U+lBWMGrsIIr1Iu1VAT3sMGDB0FY6cGTNicFUQzqdenSwyoFIRTreT2oKCoqIih7qB6l6FosWH9YZ97bhKxtai715EBmvpn53svkZd57QIz0u5FEOoJXgB+iMb0Y9f7EZoEj+hzwhkGLFbBhR0kCKHe6gIz2grFKT5mB5bFWHEy4DIDMgrSstwi4DTXBR85h3/CQrTMgEYMl3C3Me3p5jZG5xDq7BOMLg175JtwH2IX7Au1nbfgwFoUbVbqYBxdH716pivjObtZq0xc/e1rY2EB5auvDJoVzvsilpoyGAHgiDSpN4Cbg4x7QaOpckVHo5gJzzZNohsxlD1UcAg4Dv8jVijIV6sqIgKpNxvpK30Dcg8BPclMOqagMuMJ7xdoc79gRrmVTrBMI4UmXFPqrWA9sRm0xwk05nIrIgKjhOPAYmAfOrMat5GmgMrN90Ac+ejjAxe6T9RpFSpnnTnnB1GIdUlRUAbjUeuSOTQ+PfS+9/uHQ+taJpEKlWaS8C8Bym+H/ts5Vwj86uJwTRm4T6vOIe711loOiH8JsL5B9lvbNWdEass96KaF3QqCyp9p6nWCfQypOjDnKKMNUs2hzKx9HpLjYb5twdDKvvaWF6+63mAG0j5XSsaFsvnKVUDGGJcN0PmQ7nXZmz/x5IE1Tr6EEffd3217DKv5P/W9XwKDXKbPJ3vmJuXyoJRCbORcSEOmGcaEBLxNxc8Ao6DBOInSnPYeSjKuN6Au4kWyDpW+d/nwycoOuVot5ZG9uurkS4zfPH7SOO/LjZAAAAABJRU5ErkJggg==\n",
"text/latex": [
"$$\\frac{2 \\sin{\\left (\\frac{\\omega}{2 a} \\right )}}{\\omega}$$"
],
"text/plain": [
" ⎛ ω ⎞\n",
"2⋅sin⎜───⎟\n",
" ⎝2⋅a⎠\n",
"──────────\n",
" ω "
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import sympy as sym\n",
"%matplotlib inline\n",
"sym.init_printing()\n",
"\n",
"\n",
"def fourier_transform(x):\n",
" return sym.transforms._fourier_transform(x, t, w, 1, -1, 'Fourier')\n",
"\n",
"\n",
"t, w = sym.symbols('t omega')\n",
"a = sym.symbols('a', positive=True)\n",
"\n",
"x = sym.Heaviside(t + sym.S.Half/a) - sym.Heaviside(t - sym.S.Half/a)\n",
"X = fourier_transform(x)\n",
"X"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For illustration both the signal $x(t)$ and its Fourier transform $X(j \\omega)$ are plotted for a specific value of $a$"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"application/pdf": "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RGlmZmVyZW5jZXMgWyA5NyAvYSAxMTYgL3QgXSAvVHlwZSAvRW5jb2RpbmcgPj4gL0ZpcnN0Q2hhciAwCi9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1Nzkg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YXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxOCAwIFIgPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTggMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjEgMCBvYmoKPDwgL2MgMjIgMCBSIC9lIDIzIDAgUiAvZWlnaHQgMjQgMCBSIC9mb3VyIDI1IDAgUiAvb25lIDI3IDAgUgovcGFyZW5sZWZ0IDI4IDAgUiAvcGFyZW5yaWdodCAyOSAwIFIgL3BlcmlvZCAzMCAwIFIgL3IgMzEgMCBSIC9zaXggMzIgMCBSCi90IDMzIDAgUiAvdHdvIDM0IDAgUiAvemVybyAzNSAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIwIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLW1pbnVzIDI2IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMzYgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDUxNjE4Mzc1MiswMicwMCcpCi9DcmVhdG9yIChtYXRwbG90bGliIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAobWF0cGxvdGxpYiBwZGYgYmFja2VuZCAzLjAuMykgPj4KZW5kb2JqCnhyZWYKMCAzNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAwOTg4OCAwMDAwMCBuIAowMDAwMDA5NjU4IDAwMDAwIG4gCjAwMDAwMDk3MDEgMDAwMDAgbiAKMDAwMDAwOTgwMCAwMDAwMCBuIAowMDAwMDA5ODIxIDAwMDAwIG4gCjAwMDAwMDk4NDIgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzk0IDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMTkzMiAwMDAwMCBuIAowMDAwMDAzMTU2IDAwMDAwIG4gCjAwMDAwMDI5NDggMDAwMDAgbiAKMDAwMDAwMjYyNiAwMDAwMCBuIAowMDAwMDA0MjA5IDAwMDAwIG4gCjAwMDAwMDE5NTMgMDAwMDAgbiAKMDAwMDAwMjM3NSAwMDAwMCBuIAowMDAwMDA4NDE1IDAwMDAwIG4gCjAwMDAwMDgyMTUgMDAwMDAgbiAKMDAwMDAwNzgxMiAwMDAwMCBuIAowMDAwMDA5NDY4IDAwMDAwIG4gCjAwMDAwMDQyNTEgMDAwMDAgbiAKMDAwMDAwNDU1NCAwMDAwMCBuIAowMDAwMDA0ODcyIDAwMDAwIG4gCjAwMDAwMDUzMzcgMDAwMDAgbiAKMDAwMDAwNTQ5OSAwMDAwMCBuIAowMDAwMDA1NjY5IDAwMDAwIG4gCjAwMDAwMDU4MjEgMDAwMDAgbiAKMDAwMDAwNjA0MSAwMDAwMCBuIAowMDAwMDA2MjYzIDAwMDAwIG4gCjAwMDAwMDYzODQgMDAwMDAgbiAKMDAwMDAwNjYxNCAwMDAwMCBuIAowMDAwMDA3MDA0IDAwMDAwIG4gCjAwMDAwMDcyMDggMDAwMDAgbiAKMDAwMDAwNzUyOSAwMDAwMCBuIAowMDAwMDA5OTQ4IDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzYgMCBSIC9Sb290IDEgMCBSIC9TaXplIDM3ID4+CnN0YXJ0eHJlZgoxMDEwMgolJUVPRgo=\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"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/pdf": "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LTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDgKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk5NSA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMTUgMCBvYmoKPDwgL2EgMTYgMCBSIC90IDE4IDAgUiA+PgplbmRvYmoKMjMgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyNzkgPj4Kc3RyZWFtCnicPVI7ksUgDOtzCl+AGfAXzpOdrbL3b1eCvFdkrERGkh3SUroMDWkjVWIMqezyMy7CtlT+DiL7XD6/0NY60JyHo4uNCaAp96WrA3YVrZIWvusoMgTmENhommhOUXAKCbV92nCQh/oA6zIidr0vBiV6NrKtQ/Yg9hOpGVJBOfCOhFCEh82+Y/g4cTztzRNgTp4MOCN79TNOKV05YTkUMDK3wy2w3tdnX89GuYi85gdhDiLHInJiUxMMkkCxHF6OdPDUU6M2A+RRXDBRx2yxwM+9Zz7oMaRT6JHt2FwupF5k8IX52aHwYD+3AAYqqrWdBjtYvb+OY72GDb+P4VrkjtuKLRygTRcOxDvBEVnv7y15rt9/B3JuBgplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjc2ID4+CnN0cmVhbQp4nD1SS47oMAjb5xRcIFL4Jj1PR7Pqu//22bSaFRZgY0jKS5aopUwtk1SVXUt+dHTuMvk3NK9Gz7D15sxD5kmxODK3yj0M5JlbrNBrb9SrCwCxSO7UEtslxpZLxZJkh6ztEHdk0OHFKtnM+NrCDjdrjkdSFypepwcF+Yww8E7Mfb6JZSE0Vxltt8BBDxaoAz0wCxO5IuPdaxM9jXgLoKwPmb+ILjfUXI9sTIBTuNoL3qmU1jEPFYmiHOxGGr2fo+Y4ocPbPWI59nIJRwbe4mjHe/BFiJ5GVkSsfsizEfmGDalIj5jKG+puH3r8ja3YaH92JknB11/W20w10rng1Fyt1l+DR2jw3qjh8/dLnvH7HyEmbhIKZW5kc3RyZWFtCmVuZG9iagoyNSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDIzMCA+PgpzdHJlYW0KeJw1UUluwzAMvOsV84EA4i6/x0FP7f+vHdIJYGBoS5zNERsbEXiJwc9B5MZb1oya+JvJXfG7PBUeCbeCJ1EEXoZ72QkubxiX/TjMfPBeWjmTGk8yIBfZ9PBEyGCXQOjA7BrUYZtpJ/qGhM+OSDUbWU5fS9BLqxAoT9l+pwtKtK3qz+2zLrTta0842e2pJ5VPIJ5bsgKXjVdMFmMZ9ETlLsX0QaqzhZ6E8qJ8DrL5qCESXaKcgScGB6NAO7Dntp+JV4WgdXWfto2hGikdT/82NDVJIuQTJZzZ0rhb+P6ee/38A6ZUU58KZW5kc3RyZWFtCmVuZG9iagoyNiAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDI0NSA+PgpzdHJlYW0KeJxFULuNQzEM6z0FFwhg/Sx7nndIldu/PUpGcIUhWj+SWhKYiMBLDLGUb+JHRkE9C78XheIzxM8XhUHOhKRAnPUZEJl4htpGbuh2cM68wzOMOQIXxVpwptOZ9lzY5JwHJxDObZTxjEK6SVQVcVSfcUzxqrLPjdeBpbVss9OR7CGNhEtJJSaXflMq/7QpWyro2kUTsEjkgZNNNOEsP0OSYsyglFH3MLWO9HGykUd10MnZnDktmdnup+1MfA9YJplR5Smd5zI+J6nzXE597rMd0eSipVX7nP3ekZbyIrXbodXpVyVRmY3Vp5C4PP+Mn/H+A46gWT4KZW5kc3RyZWFtCmVuZG9iagoyNyAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDI0NyA+PgpzdHJlYW0KeJxNUbttRDEM698UXOAA62t5ngtSXfZvQ8kIkMIgoS8ppyUW9sZLDOEHWw++5JFVQ38ePzHsMyw9yeTUP+a5yVQUvhWqm5hQF2Lh/WgEvBZ0LyIrygffj2UMc8734KMQl2AmNGCsb0kmF9W8M2TCiaGOw0GbVBh3TRQsrhXNM8jtVjeyOrMgbHglE+LGAEQE2ReQzWCjjLGVkMVyHqgKkgVaYNfpG1GLgiuU1gl0otbEuszgq+f2djdDL/LgqLp4fQzrS7DC6KV7LHyuQh/M9Ew7d0kjvfCmExFmDwVSmZ2RlTo9Yn23QP+fZSv4+8nP8/0LFShcKgplbmRzdHJlYW0KZW5kb2JqCjI4IDAgb2JqCjw8IC9CQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDM3Ci9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nOMyNDBTMDY1VcjlMjc2ArNywCwjcyMgCySLYEFk0wABXwoKCmVuZHN0cmVhbQplbmRvYmoKMjkgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA4MCA+PgpzdHJlYW0KeJxFjLsNwDAIRHumYAR+JmafKJWzfxsgStxwT7p7uDoSMlPeYYaHBJ4MLIZT8QaZo2A1uEZSjZ3so7BuX3WB5npTq/X3BypPdnZxPc3LGfQKZW5kc3RyZWFtCmVuZG9iagozMCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDE0NyA+PgpzdHJlYW0KeJw9T7kNAzEM6z0FFzjAeixb81yQ6rJ/G8pGUggiQPGRZUfHClxiApOOORIvaT/4aRqBWAY1R/SEimFY4G6SAg+DLEpXni1eDJHaQl1I+NYQ3q1MZKI8rxE7cCcXowc+VBtZHnpAO0QVWa5Jw1jVVl1qnbACHLLOwnU9zKoE5dEnaykfUFRCvXT/n3va+wsAby/rCmVuZHN0cmVhbQplbmRvYmoKMzEgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNDkgPj4Kc3RyZWFtCnicNY9LDgMhDEP3OYUvMFJ+hHAeqq6m9982YVoJCQvbL8EWg5GMS0xg7Jhj4SVUT60+JCOPukk5EKlQNwRPaEwMM2zSJfDKdN8ynlu8nFbqgk5I5OmsNhqijGZew9FTzgqb/svcJGplRpkDMutUtxOysmAF5gW1PPcz7qhc6ISHncqw6E4xotxmRhp+/9v0/gJ7MjBjCmVuZHN0cmVhbQplbmRvYmoKMzIgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA0OSA+PgpzdHJlYW0KeJwzNrRQMFAwNDAHkkaGQJaRiUKKIRdIAMTM5YIJ5oBZBkAaojgHriaHKw0AxugNJgplbmRzdHJlYW0KZW5kb2JqCjMzIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTU3ID4+CnN0cmVhbQp4nEWQuRFDMQhEc1VBCRKwCOqxx9F3/6kX+Uq0bwAth68lU6ofJyKm3Ndo9DB5Dp9NJVYs2Ca2kxpyGxZBSjGYeE4xq6O3oZmH1Ou4qKq4dWaV02nLysV/82hXM5M9wjXqJ/BN6PifPLSp6FugrwuUfUC1OJ1JUDF9r2KBo5x2fyKcGOA+GUeZKSNxYm4K7PcZAGa+V7jG4wXdATd5CmVuZHN0cmVhbQplbmRvYmoKMzQgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMzEgPj4Kc3RyZWFtCnicRY/LDQQhDEPvVOES8hk+qYfVntj+r+swmkFC+EEiO/EwCKzz8jbQxfDRosM3/jbVq2OVLB+6elJWD+mQh7zyFVBpMFHEhVlMHUNhzpjKyJYytxvhtk2DrGyVVK2DdjwGD7anZasIfqltYeos8QzCVV64xw0/kEutd71Vvn9CUzCXCmVuZHN0cmVhbQplbmRvYmoKMzUgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyNDggPj4Kc3RyZWFtCnicLVE5kgNBCMvnFXpCc9PvscuR9//pCsoBg4ZDIDotcVDGTxCWK97yyFW04e+ZGMF3waHfynUbFjkQFUjSGFRNqF28Hr0HdhxmAvOkNSyDGesDP2MKN3pxeEzG2e11GTUEe9drT2ZQMisXccnEBVN12MiZw0+mjAvtXM8NyLkR1mUYpJuVxoyEI00hUkih6iapM0GQBKOrUaONHMV+6csjnWFVI2oM+1xL29dzE84aNDsWqzw5pUdXnMvJxQsrB/28zcBFVBqrPBAScL/bQ/2c7OQ33tK5s8X0+F5zsrwwFVjx5rUbkE21+Dcv4vg94+v5/AOopVsWCmVuZHN0cmVhbQplbmRvYmoKMzYgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyMTAgPj4Kc3RyZWFtCnicNVDLDUMxCLtnChaoFAKBZJ5WvXX/a23QO2ER/0JYyJQIeanJzinpSz46TA+2Lr+xIgutdSXsypognivvoZmysdHY4mBwGiZegBY3YOhpjRo1dOGCpi6VQoHFJfCZfHV76L5PGXhqGXJ2BBFDyWAJaroWTVi0PJ+QTgHi/37D7i3koZLzyp4b+Ruc7fA7s27hJ2p2ItFyFTLUszTHGAgTRR48eUWmcOKz1nfVNBLUZgtOlgGuTj+MDgBgIl5ZgOyuRDlL0o6ln2+8x/cPQABTtAplbmRzdHJlYW0KZW5kb2JqCjIxIDAgb2JqCjw8IC9CYXNlRm9udCAvRGVqYVZ1U2FucyAvQ2hhclByb2NzIDIyIDAgUgovRW5jb2RpbmcgPDwKL0RpZmZlcmVuY2VzIFsgNDAgL3BhcmVubGVmdCAvcGFyZW5yaWdodCA0NiAvcGVyaW9kIDQ4IC96ZXJvIC9vbmUgL3R3byA1MyAvZml2ZSA5OSAvYwoxMDEgL2UgMTE0IC9yIDExNiAvdCAxMjMgL2JyYWNlbGVmdCAxMjUgL2JyYWNlcmlnaHQgXQovVHlwZSAvRW5jb2RpbmcgPj4KL0ZpcnN0Q2hhciAwIC9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnREZXNjcmlwdG9yIDIwIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDE5IDAgUiA+PgplbmRvYmoKMjAgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDMyCi9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnROYW1lIC9EZWphVnVTYW5zIC9JdGFsaWNBbmdsZSAwCi9NYXhXaWR0aCAxMzQyIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxOSAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyMiAwIG9iago8PCAvYnJhY2VsZWZ0IDIzIDAgUiAvYnJhY2VyaWdodCAyNCAwIFIgL2MgMjUgMCBSIC9lIDI2IDAgUiAvZml2ZSAyNyAwIFIKL29uZSAyOSAwIFIgL3BhcmVubGVmdCAzMCAwIFIgL3BhcmVucmlnaHQgMzEgMCBSIC9wZXJpb2QgMzIgMCBSIC9yIDMzIDAgUgovdCAzNCAwIFIgL3R3byAzNSAwIFIgL3plcm8gMzYgMCBSID4+CmVuZG9iago0MSAwIG9iago8PCAvQkJveCBbIC0xNDEgLTI0MCAxMTI4IDc5NSBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMzgxCi9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nDWTuXEGMQhG862CEsQpqZ5/xpHdf+oHa0cwy/EdaJ+8kh7y84RLpsn3c5fkLVHfUpaix6Viyecxu1IZYkelysT9TPw8fnOyiCAuiVN0bippe2ay6Aj6l/5tq97vRj8ztqQO+Qoqe8HgHNlKrPvGyK50ZiabvlzwumDSybYD6u5tLjFYNpGK1ftFu4KCRWX3TN5musFKiXsmpraeyQyMruJOgpOhM8OX0fHaVQv/slmXMpM1WjLPeJelw4CeVona1jNxD7fO4N/c8tK18WQNN9BKN7zoR3E0ljW3cH2/KFh6JBYz+l6heZX4Vba5eKvY3hU74uz+Zm/9Z06Hd+bgvJnRrfAh44rKNS22KK4b3adlmkLziOGi33kc1ndW9GGAsp4BBHevQkvlXOG6S+boTAbreR9E5TGgRvsybYe2ZSz1Eh5D71JEgsnyNB2C/RSgtWPMnTgSJztdWXOumbltpeWecxkYbY/Za1OTfr9oHxHEv3/h83z9Ai8TlAoKZW5kc3RyZWFtCmVuZG9iagozOSAwIG9iago8PCAvQmFzZUZvbnQgL1NUSVhOb25Vbmljb2RlLUl0YWxpYyAvQ2hhclByb2NzIDQwIDAgUgovRW5jb2RpbmcgPDwgL0RpZmZlcmVuY2VzIFsgXSAvVHlwZSAvRW5jb2RpbmcgPj4gL0ZpcnN0Q2hhciAwCi9Gb250QkJveCBbIC0xNDEgLTI0MCAxMTI4IDc5NSBdIC9Gb250RGVzY3JpcHRvciAzOCAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NQovTmFtZSAvU1RJWE5vblVuaWNvZGUtSXRhbGljIC9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDM3IDAgUiA+PgplbmRvYmoKMzggMCBvYmoKPDwgL0FzY2VudCAxNDUwIC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtNTUyIC9GbGFncyA5NgovRm9udEJCb3ggWyAtMTQxIC0yNDAgMTEyOCA3OTUgXSAvRm9udE5hbWUgL1NUSVhOb25Vbmljb2RlLUl0YWxpYwovSXRhbGljQW5nbGUgNDM5MDkgL01heFdpZHRoIDI1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMAo+PgplbmRvYmoKMzcgMCBvYmoKWyAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAKMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwCjI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAKMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwCjI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAKMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwCjI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAKMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwCjI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgXQplbmRvYmoKNDAgMCBvYmoKPDwgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIxIDAgUiAvRjIgMTQgMCBSIC9GMyAzOSAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0RlamFWdVNhbnMtT2JsaXF1ZS1vbWVnYSAxNyAwIFIgL0RlamFWdVNhbnMtbWludXMgMjggMCBSCi9TVElYTm9uVW5pSXRhLXVuaUUyMzIgNDEgMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iago0MiAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMTkwNTE2MTgzNzUyKzAyJzAwJykKL0NyZWF0b3IgKG1hdHBsb3RsaWIgMy4wLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChtYXRwbG90bGliIHBkZiBiYWNrZW5kIDMuMC4zKSA+PgplbmRvYmoKeHJlZgowIDQzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDEzNjAxIDAwMDAwIG4gCjAwMDAwMTMyOTcgMDAwMDAgbiAKMDAwMDAxMzM1MSAwMDAwMCBuIAowMDAwMDEzNDUwIDAwMDAwIG4gCjAwMDAwMTM0NzEgMDAwMDAgbiAKMDAwMDAxMzQ5MiAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzOTUgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDAzMTIzIDAwMDAwIG4gCjAwMDAwMDQ2NjIgMDAwMDAgbiAKMDAwMDAwNDQ1NCAwMDAwMCBuIAowMDAwMDA0MTMyIDAwMDAwIG4gCjAwMDAwMDU3MTUgMDAwMDAgbiAKMDAwMDAwMzE0NCAwMDAwMCBuIAowMDAwMDAzNTY2IDAwMDAwIG4gCjAwMDAwMDM4ODEgMDAwMDAgbiAKMDAwMDAwOTkzOCAwMDAwMCBuIAowMDAwMDA5NzM4IDAwMDAwIG4gCjAwMDAwMDkzMjIgMDAwMDAgbiAKMDAwMDAxMDk5MSAwMDAwMCBuIAowMDAwMDA1NzU3IDAwMDAwIG4gCjAwMDAwMDYxMDkgMDAwMDAgbiAKMDAwMDAwNjQ1OCAwMDAwMCBuIAowMDAwMDA2NzYxIDAwMDAwIG4gCjAwMDAwMDcwNzkgMDAwMDAgbiAKMDAwMDAwNzM5OSAwMDAwMCBuIAowMDAwMDA3NTY5IDAwMDAwIG4gCjAwMDAwMDc3MjEgMDAwMDAgbiAKMDAwMDAwNzk0MSAwMDAwMCBuIAowMDAwMDA4MTYzIDAwMDAwIG4gCjAwMDAwMDgyODQgMDAwMDAgbiAKMDAwMDAwODUxNCAwMDAwMCBuIAowMDAwMDA4NzE4IDAwMDAwIG4gCjAwMDAwMDkwMzkgMDAwMDAgbiAKMDAwMDAxMjIzMSAwMDAwMCBuIAowMDAwMDEyMDE4IDAwMDAwIG4gCjAwMDAwMTE3MDUgMDAwMDAgbiAKMDAwMDAxMzI3NSAwMDAwMCBuIAowMDAwMDExMTkyIDAwMDAwIG4gCjAwMDAwMTM2NjEgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyA0MiAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgNDMgPj4Kc3RhcnR4cmVmCjEzODE1CiUlRU9GCg==\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"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"values = {a: 1/2}\n",
"\n",
"sym.plot(x.subs(values), (t, -5, 5), xlabel=r'$t$', ylabel=r'$\\mathrm{rect}(a t)$');\n",
"sym.plot(X.subs(values), (w, -20, 20), xlabel=r'$\\omega$', ylabel=r'$\\mathcal{F} \\{ \\mathrm{rect}(a t) \\}$');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Exercise**\n",
"\n",
"* Change the width $1/a$ of the rectangular signal. How does its spectrum change?\n",
"* On a qualitative level, what happens when $1/a$ increases towards infinity?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Convolution Theorem\n",
"\n",
"The [convolution theorem](https://en.wikipedia.org/wiki/Convolution_theorem) states that the Fourier transform of the convolution of two signals $x(t)$ and $y(t)$ is equal to the scalar multiplication of their Fourier transforms $X(j \\omega) = \\mathcal{F} \\{ x(t) \\}$ and $Y(j \\omega) = \\mathcal{F} \\{ y(t) \\}$\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\{ x(t) * y(t) \\} = X(j \\omega) \\cdot Y(j \\omega)\n",
"\\end{equation}\n",
"\n",
"The theorem can be proven by introducing the [definition of the convolution](../systems_time_domain/convolution.ipynb) into the [definition of the Fourier transform](definition.ipynb) and changing the order of integration\n",
"\n",
"\\begin{align}\n",
"\\mathcal{F} \\{ x(t) * y(t) \\} &= \\int_{-\\infty}^{\\infty} \\left( \\int_{-\\infty}^{\\infty} x(\\tau) \\cdot y(t-\\tau) \\; d \\tau \\right) e^{-j \\omega t} \\; dt \\\\\n",
"&= \\int_{-\\infty}^{\\infty} \\left( \\int_{-\\infty}^{\\infty} y(t-\\tau) \\, e^{-j \\omega t} \\; dt \\right) x(\\tau) \\; d\\tau \\\\\n",
"&= Y(j \\omega) \\cdot \\int_{-\\infty}^{\\infty} x(\\tau) \\, e^{-j \\omega \\tau} \\; d \\tau \\\\\n",
"&= Y(j \\omega) \\cdot X(j \\omega)\n",
"\\end{align}\n",
"\n",
"under the assumption that both Fourier transforms $X(j \\omega)$ and $Y(j \\omega)$ exist.\n",
"\n",
"The convolution theorem is very useful in the context of linear time-invariant (LTI) systems. The output signal $y(t)$ of an LTI system is given as the convolution of the input signal $x(t)$ with the impulse response $h(t)$. Hence, the signals and the system can be represented equivalently in the time and frequency domain\n",
"\n",
"![Representation of an LTI system in the time- and Fourier-domain](LTI_system_Fourier_domain.png)\n",
"\n",
"\n",
"where $H(j \\omega) = \\mathcal{F} \\{ h(t) \\}$.\n",
"Calculation of the system response by transforming the problem into the Fourier domain can be beneficial since this replaces the evaluation of the convolution integral by a scalar multiplication. The (inverse) Fourier transforms are known for many signals or can be derived by applying the properties and theorems to standard signals and their transforms. This procedure simplifies the calculation of the system response significantly in many cases.\n",
"\n",
"The convolution theorem can also be useful to derive an unknown Fourier transform. The key is here to express the signal as convolution of two other signals for which the Fourier transforms are known. This is illustrated by the following example."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Transformation of the triangular signal\n",
"\n",
"A prominent example for the derivation of a Fourier transform by the convolution theorem is the [trianguar signal](https://en.wikipedia.org/wiki/Triangular_function)\n",
"\n",
"\\begin{equation}\n",
"\\Lambda(t) = \\begin{cases} 1- |t| & \\text{for } |t| < 1 \\\\ 0 & \\text{otherwise} \\end{cases}\n",
"\\end{equation}\n",
"\n",
"which can be expressed as the convolution of two rectangular signals\n",
"\n",
"\\begin{equation}\n",
"\\Lambda(t) = \\text{rect}(t) * \\text{rect}(t)\n",
"\\end{equation}\n",
"\n",
"Applying the convolution theorem yields\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\{ \\Lambda(t) \\} = \\text{sinc}\\left( \\frac{\\omega}{2} \\right) \\cdot \\text{sinc}\\left( \\frac{\\omega}{2} \\right) = \\text{sinc}^2 \\left( \\frac{\\omega}{2} \\right)\n",
"\\end{equation}\n",
"\n",
"Both the signal and its transform are plotted for illustration"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"application/pdf": "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L0RlamFWdVNhbnMtT2JsaXF1ZQovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxMiAwIFIgPj4KZW5kb2JqCjEzIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyA5NgovRm9udEJCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9Gb250TmFtZSAvRGVqYVZ1U2Fucy1PYmxpcXVlCi9JdGFsaWNBbmdsZSAwIC9NYXhXaWR0aCAxMzUwIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxMiAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAg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NDggL3plcm8gL29uZSAvdHdvIDUyIC9mb3VyIC9maXZlCi9zaXggNTYgL2VpZ2h0IF0KL1R5cGUgL0VuY29kaW5nID4+Ci9GaXJzdENoYXIgMCAvRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250RGVzY3JpcHRvciAxOCAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxNyAwIFIgPj4KZW5kb2JqCjE4IDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTcgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjAgMCBvYmoKPDwgL2VpZ2h0IDIyIDAgUiAvZml2ZSAyMyAwIFIgL2ZvdXIgMjQgMCBSIC9vbmUgMjYgMCBSIC9wYXJlbmxlZnQgMjcgMCBSCi9wYXJlbnJpZ2h0IDI4IDAgUiAvcGVyaW9kIDI5IDAgUiAvc2l4IDMwIDAgUiAvdHdvIDMxIDAgUiAvemVybyAzMiAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDE5IDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLUxhbWJkYSAyMSAwIFIgL0RlamFWdVNhbnMtbWludXMgMjUgMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iagozMyAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMTkwNTE2MTgzNzUyKzAyJzAwJykKL0NyZWF0b3IgKG1hdHBsb3RsaWIgMy4wLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChtYXRwbG90bGliIHBkZiBiYWNrZW5kIDMuMC4zKSA+PgplbmRvYmoKeHJlZgowIDM0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDA5MTM0IDAwMDAwIG4gCjAwMDAwMDg4NzggMDAwMDAgbiAKMDAwMDAwODkyMSAwMDAwMCBuIAowMDAwMDA5MDIwIDAwMDAwIG4gCjAwMDAwMDkwNDEgMDAwMDAgbiAKMDAwMDAwOTA2MiAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzOTcgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDAyMTg1IDAwMDAwIG4gCjAwMDAwMDI5ODEgMDAwMDAgbiAKMDAwMDAwMjc3MyAwMDAwMCBuIAowMDAwMDAyNDU3IDAwMDAwIG4gCjAwMDAwMDQwMzQgMDAwMDAgbiAKMDAwMDAwMjIwNiAwMDAwMCBuIAowMDAwMDA3NjYyIDAwMDAwIG4gCjAwMDAwMDc0NjIgMDAwMDAgbiAKMDAwMDAwNzA4MyAwMDAwMCBuIAowMDAwMDA4NzE1IDAwMDAwIG4gCjAwMDAwMDQwNjYgMDAwMDAgbiAKMDAwMDAwNDI1NyAwMDAwMCBuIAowMDAwMDA0NzIyIDAwMDAwIG4gCjAwMDAwMDUwNDIgMDAwMDAgbiAKMDAwMDAwNTIwNCAwMDAwMCBuIAowMDAwMDA1Mzc0IDAwMDAwIG4gCjAwMDAwMDU1MjYgMDAwMDAgbiAKMDAwMDAwNTc0NiAwMDAwMCBuIAowMDAwMDA1OTY4IDAwMDAwIG4gCjAwMDAwMDYwODkgMDAwMDAgbiAKMDAwMDAwNjQ3OSAwMDAwMCBuIAowMDAwMDA2ODAwIDAwMDAwIG4gCjAwMDAwMDkxOTQgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzMyAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzQgPj4Kc3RhcnR4cmVmCjkzNDgKJSVFT0YK\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"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/pdf": "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IDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjggNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjE3IDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTcgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwOAo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTk1IDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoxNSAwIG9iago8PCAvdCAxNyAwIFIgPj4KZW5kb2JqCjIyIDAgb2JqCjw8IC9CQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDU4Ci9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nOMyNDRSMFDI5bIAkjlcRhZmCuZGlkCWsaUFlGVmbgaWMzU3BtPGJkYKZsZGQBZEbw5XGgDSKg1wCmVuZHN0cmVhbQplbmRvYmoKMjMgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyNzkgPj4Kc3RyZWFtCnicPVI7ksUgDOtzCl+AGfAXzpOdrbL3b1eCvFdkrERGkh3SUroMDWkjVWIMqezyMy7CtlT+DiL7XD6/0NY60JyHo4uNCaAp96WrA3YVrZIWvusoMgTmENhommhOUXAKCbV92nCQh/oA6zIidr0vBiV6NrKtQ/Yg9hOpGVJBOfCOhFCEh82+Y/g4cTztzRNgTp4MOCN79TNOKV05YTkUMDK3wy2w3tdnX89GuYi85gdhDiLHInJiUxMMkkCxHF6OdPDUU6M2A+RRXDBRx2yxwM+9Zz7oMaRT6JHt2FwupF5k8IX52aHwYD+3AAYqqrWdBjtYvb+OY72GDb+P4VrkjtuKLRygTRcOxDvBEVnv7y15rt9/B3JuBgplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjc2ID4+CnN0cmVhbQp4nD1SS47oMAjb5xRcIFL4Jj1PR7Pqu//22bSaFRZgY0jKS5aopUwtk1SVXUt+dHTuMvk3NK9Gz7D15sxD5kmxODK3yj0M5JlbrNBrb9SrCwCxSO7UEtslxpZLxZJkh6ztEHdk0OHFKtnM+NrCDjdrjkdSFypepwcF+Yww8E7Mfb6JZSE0Vxltt8BBDxaoAz0wCxO5IuPdaxM9jXgLoKwPmb+ILjfUXI9sTIBTuNoL3qmU1jEPFYmiHOxGGr2fo+Y4ocPbPWI59nIJRwbe4mjHe/BFiJ5GVkSsfsizEfmGDalIj5jKG+puH3r8ja3YaH92JknB11/W20w10rng1Fyt1l+DR2jw3qjh8/dLnvH7HyEmbhIKZW5kc3RyZWFtCmVuZG9iagoyNSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDM5MiA+PgpzdHJlYW0KeJw9UktuBTEI288puECl8E1ynqne7t1/W5vMVKoKLwO2MZSXDKklP+qSiDNMfvVyXeJR8r1samfmIe4uNqb4WHJfuobYctGaYrFPHMkvyLRUWKFW3aND8YUoEw8ALeCBBeG+HP/xF6jB17CFcsN7ZAJgStRuQMZD0RlIWUERYfuRFeikUK9s4e8oIFfUrIWhdGKIDZYAKb6rDYmYqNmgh4SVkqod0vGMpPBbwV2JYVBbW9sEeGbQENnekY0RM+3RGXFZEWs/PemjUTK1URkPTWd88d0yUvPRFeik0sjdykNnz0InYCTmSZjncCPhnttBCzH0ca+WT2z3mClWkfAFO8oBA7393pKNz3vgLIxc2+xMJ/DRaaccE62+HmL9gz9sS5tcxyuHRRSovCgIftdBE3F8WMX3ZKNEd7QB1iMT1WglEAwSws7tMPJ4xnnZ3hW05vREaKNEHtSOET0ossXlnBWwp/yszbEcng8me2+0j5TMzKiEFdR2eqi2z2Md1Hee+/r8AS4AoRkKZW5kc3RyZWFtCmVuZG9iagoyNiAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDI0NyA+PgpzdHJlYW0KeJxNUbttRDEM698UXOAA62t5ngtSXfZvQ8kIkMIgoS8ppyUW9sZLDOEHWw++5JFVQ38ePzHsMyw9yeTUP+a5yVQUvhWqm5hQF2Lh/WgEvBZ0LyIrygffj2UMc8734KMQl2AmNGCsb0kmF9W8M2TCiaGOw0GbVBh3TRQsrhXNM8jtVjeyOrMgbHglE+LGAEQE2ReQzWCjjLGVkMVyHqgKkgVaYNfpG1GLgiuU1gl0otbEuszgq+f2djdDL/LgqLp4fQzrS7DC6KV7LHyuQh/M9Ew7d0kjvfCmExFmDwVSmZ2RlTo9Yn23QP+fZSv4+8nP8/0LFShcKgplbmRzdHJlYW0KZW5kb2JqCjI3IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggOTAgPj4Kc3RyZWFtCnicTY1BEsAgCAPvvCJPUETQ/3R60v9fq9QOvcBOAokWRYL0NWpLMO64MhVrUCmYlJfAVTBcC9ruosr+MklMnYbTe7cDg7LxcYPSSfv2cXoAq/16Bt0P0hwiWAplbmRzdHJlYW0KZW5kb2JqCjI4IDAgb2JqCjw8IC9CQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDM3Ci9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nOMyNDBTMDY1VcjlMjc2ArNywCwjcyMgCySLYEFk0wABXwoKCmVuZHN0cmVhbQplbmRvYmoKMjkgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA4MCA+PgpzdHJlYW0KeJxFjLsNwDAIRHumYAR+JmafKJWzfxsgStxwT7p7uDoSMlPeYYaHBJ4MLIZT8QaZo2A1uEZSjZ3so7BuX3WB5npTq/X3BypPdnZxPc3LGfQKZW5kc3RyZWFtCmVuZG9iagozMCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDE0NyA+PgpzdHJlYW0KeJw9T7kNAzEM6z0FFzjAeixb81yQ6rJ/G8pGUggiQPGRZUfHClxiApOOORIvaT/4aRqBWAY1R/SEimFY4G6SAg+DLEpXni1eDJHaQl1I+NYQ3q1MZKI8rxE7cCcXowc+VBtZHnpAO0QVWa5Jw1jVVl1qnbACHLLOwnU9zKoE5dEnaykfUFRCvXT/n3va+wsAby/rCmVuZHN0cmVhbQplbmRvYmoKMzEgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNDkgPj4Kc3RyZWFtCnicNY9LDgMhDEP3OYUvMFJ+hHAeqq6m9982YVoJCQvbL8EWg5GMS0xg7Jhj4SVUT60+JCOPukk5EKlQNwRPaEwMM2zSJfDKdN8ynlu8nFbqgk5I5OmsNhqijGZew9FTzgqb/svcJGplRpkDMutUtxOysmAF5gW1PPcz7qhc6ISHncqw6E4xotxmRhp+/9v0/gJ7MjBjCmVuZHN0cmVhbQplbmRvYmoKMzIgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA0OSA+PgpzdHJlYW0KeJwzNrRQMFAwNDAHkkaGQJaRiUKKIRdIAMTM5YIJ5oBZBkAaojgHriaHKw0AxugNJgplbmRzdHJlYW0KZW5kb2JqCjMzIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMzE3ID4+CnN0cmVhbQp4nDVSS3JDMQjbv1Nwgc6Yv32edLJq7r+thCcrsC1AQi4vWdJLftQl26XD5Fcf9yWxQj6P7ZrMUsX3FrMUzy2vR88Rty0KBFETPfgyJxUi1M/U6Dp4YZc+A68QTikWeAeTAAav4V94lE6DwDsbMt4Rk5EaECTBmkuLTUiUPUn8K+X1pJU0dH4mK3P5e3KpFGqjyQgVIFi52AekKykeJBM9iUiycr03VojekFeSx2clJhkQ3SaxTbTA49yVtISZmEIF5liA1XSzuvocTFjjsITxKmEW1YNNnjWphGa0jmNkw3j3wkyJhYbDElCbfZUJqpeP09wJI6ZHTXbtwrJbNu8hRKP5MyyUwccoJAGHTmMkCtKwgBGBOb2wir3mCzkWwIhlnZosDG1oJbt6joXA0JyzpWHG157X8/4HRVt7owplbmRzdHJlYW0KZW5kb2JqCjM0IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjQ4ID4+CnN0cmVhbQp4nC1ROZIDQQjL5xV6QnPT77HLkff/6QrKAYOGQyA6LXFQxk8Qlive8shVtOHvmRjBd8Gh38p1GxY5EBVI0hhUTahdvB69B3YcZgLzpDUsgxnrAz9jCjd6cXhMxtntdRk1BHvXa09mUDIrF3HJxAVTddjImcNPpowL7VzPDci5EdZlGKSblcaMhCNNIVJIoeomqTNBkASjq1GjjRzFfunLI51hVSNqDPtcS9vXcxPOGjQ7Fqs8OaVHV5zLycULKwf9vM3ARVQaqzwQEnC/20P9nOzkN97SubPF9Phec7K8MBVY8ea1G5BNtfg3L+L4PePr+fwDqKVbFgplbmRzdHJlYW0KZW5kb2JqCjM1IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjEwID4+CnN0cmVhbQp4nDVQyw1DMQi7ZwoWqBQCgWSeVr11/2tt0DthEf9CWMiUCHmpyc4p6Us+OkwPti6/sSILrXUl7MqaIJ4r76GZsrHR2OJgcBomXoAWN2DoaY0aNXThgqYulUKBxSXwmXx1e+i+Txl4ahlydgQRQ8lgCWq6Fk1YtDyfkE4B4v9+w+4t5KGS88qeG/kbnO3wO7Nu4SdqdiLRchUy1LM0xxgIE0UePHlFpnDis9Z31TQS1GYLTpYBrk4/jA4AYCJeWYDsrkQ5S9KOpZ9vvMf3D0AAU7QKZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago8PCAvQmFzZUZvbnQgL0RlamFWdVNhbnMgL0NoYXJQcm9jcyAyMSAwIFIKL0VuY29kaW5nIDw8Ci9EaWZmZXJlbmNlcyBbIDQwIC9wYXJlbmxlZnQgL3BhcmVucmlnaHQgNDYgL3BlcmlvZCA0OCAvemVybyAvb25lIC90d28gNTIgL2ZvdXIgL2ZpdmUKL3NpeCA1NiAvZWlnaHQgMTIzIC9icmFjZWxlZnQgMTI1IC9icmFjZXJpZ2h0IF0KL1R5cGUgL0VuY29kaW5nID4+Ci9GaXJzdENoYXIgMCAvRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250RGVzY3JpcHRvciAxOSAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxOCAwIFIgPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTggMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjEgMCBvYmoKPDwgL2JyYWNlbGVmdCAyMyAwIFIgL2JyYWNlcmlnaHQgMjQgMCBSIC9laWdodCAyNSAwIFIgL2ZpdmUgMjYgMCBSCi9mb3VyIDI3IDAgUiAvb25lIDI5IDAgUiAvcGFyZW5sZWZ0IDMwIDAgUiAvcGFyZW5yaWdodCAzMSAwIFIKL3BlcmlvZCAzMiAwIFIgL3NpeCAzMyAwIFIgL3R3byAzNCAwIFIgL3plcm8gMzUgMCBSID4+CmVuZG9iago0MCAwIG9iago8PCAvQkJveCBbIC0xNDEgLTI0MCAxMTI4IDc5NSBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMzgxCi9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nDWTuXEGMQhG862CEsQpqZ5/xpHdf+oHa0cwy/EdaJ+8kh7y84RLpsn3c5fkLVHfUpaix6Viyecxu1IZYkelysT9TPw8fnOyiCAuiVN0bippe2ay6Aj6l/5tq97vRj8ztqQO+Qoqe8HgHNlKrPvGyK50ZiabvlzwumDSybYD6u5tLjFYNpGK1ftFu4KCRWX3TN5musFKiXsmpraeyQyMruJOgpOhM8OX0fHaVQv/slmXMpM1WjLPeJelw4CeVona1jNxD7fO4N/c8tK18WQNN9BKN7zoR3E0ljW3cH2/KFh6JBYz+l6heZX4Vba5eKvY3hU74uz+Zm/9Z06Hd+bgvJnRrfAh44rKNS22KK4b3adlmkLziOGi33kc1ndW9GGAsp4BBHevQkvlXOG6S+boTAbreR9E5TGgRvsybYe2ZSz1Eh5D71JEgsnyNB2C/RSgtWPMnTgSJztdWXOumbltpeWecxkYbY/Za1OTfr9oHxHEv3/h83z9Ai8TlAoKZW5kc3RyZWFtCmVuZG9iagozOCAwIG9iago8PCAvQmFzZUZvbnQgL1NUSVhOb25Vbmljb2RlLUl0YWxpYyAvQ2hhclByb2NzIDM5IDAgUgovRW5jb2RpbmcgPDwgL0RpZmZlcmVuY2VzIFsgXSAvVHlwZSAvRW5jb2RpbmcgPj4gL0ZpcnN0Q2hhciAwCi9Gb250QkJveCBbIC0xNDEgLTI0MCAxMTI4IDc5NSBdIC9Gb250RGVzY3JpcHRvciAzNyAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NQovTmFtZSAvU1RJWE5vblVuaWNvZGUtSXRhbGljIC9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDM2IDAgUiA+PgplbmRvYmoKMzcgMCBvYmoKPDwgL0FzY2VudCAxNDUwIC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtNTUyIC9GbGFncyA5NgovRm9udEJCb3ggWyAtMTQxIC0yNDAgMTEyOCA3OTUgXSAvRm9udE5hbWUgL1NUSVhOb25Vbmljb2RlLUl0YWxpYwovSXRhbGljQW5nbGUgNDM5MDkgL01heFdpZHRoIDI1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMAo+PgplbmRvYmoKMzYgMCBvYmoKWyAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAKMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwCjI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAKMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwCjI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAKMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwCjI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAKMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwCjI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MAoyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgMjUwIDI1MCAyNTAgXQplbmRvYmoKMzkgMCBvYmoKPDwgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIwIDAgUiAvRjIgMTQgMCBSIC9GMyAzOCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0RlamFWdVNhbnMtTGFtYmRhIDIyIDAgUiAvRGVqYVZ1U2Fucy1PYmxpcXVlLW9tZWdhIDE2IDAgUgovRGVqYVZ1U2Fucy1taW51cyAyOCAwIFIgL1NUSVhOb25VbmlJdGEtdW5pRTIzMiA0MCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjQxIDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA1MTYxODM3NTMrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgNDIKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTI1NzEgMDAwMDAgbiAKMDAwMDAxMjI0MSAwMDAwMCBuIAowMDAwMDEyMjk1IDAwMDAwIG4gCjAwMDAwMTIzOTQgMDAwMDAgbiAKMDAwMDAxMjQxNSAwMDAwMCBuIAowMDAwMDEyNDM2IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDQwMiAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDIzNTkgMDAwMDAgbiAKMDAwMDAwMzQ3MCAwMDAwMCBuIAowMDAwMDAzMjYyIDAwMDAwIG4gCjAwMDAwMDI5NDYgMDAwMDAgbiAKMDAwMDAwNDUyMyAwMDAwMCBuIAowMDAwMDAyMzgwIDAwMDAwIG4gCjAwMDAwMDI2OTUgMDAwMDAgbiAKMDAwMDAwODg4MyAwMDAwMCBuIAowMDAwMDA4NjgzIDAwMDAwIG4gCjAwMDAwMDgyNzMgMDAwMDAgbiAKMDAwMDAwOTkzNiAwMDAwMCBuIAowMDAwMDA0NTU1IDAwMDAwIG4gCjAwMDAwMDQ3NDYgMDAwMDAgbiAKMDAwMDAwNTA5OCAwMDAwMCBuIAowMDAwMDA1NDQ3IDAwMDAwIG4gCjAwMDAwMDU5MTIgMDAwMDAgbiAKMDAwMDAwNjIzMiAwMDAwMCBuIAowMDAwMDA2Mzk0IDAwMDAwIG4gCjAwMDAwMDY1NjQgMDAwMDAgbiAKMDAwMDAwNjcxNiAwMDAwMCBuIAowMDAwMDA2OTM2IDAwMDAwIG4gCjAwMDAwMDcxNTggMDAwMDAgbiAKMDAwMDAwNzI3OSAwMDAwMCBuIAowMDAwMDA3NjY5IDAwMDAwIG4gCjAwMDAwMDc5OTAgMDAwMDAgbiAKMDAwMDAxMTE3NSAwMDAwMCBuIAowMDAwMDEwOTYyIDAwMDAwIG4gCjAwMDAwMTA2NDkgMDAwMDAgbiAKMDAwMDAxMjIxOSAwMDAwMCBuIAowMDAwMDEwMTM2IDAwMDAwIG4gCjAwMDAwMTI2MzEgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyA0MSAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgNDIgPj4Kc3RhcnR4cmVmCjEyNzg1CiUlRU9GCg==\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"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = sym.Piecewise((1 - abs(t), abs(t) < 1), (0, True))\n",
"X = sym.sinc(w/2)**2\n",
"\n",
"sym.plot(x, (t, -2, 2), xlabel=r'$t$', ylabel=r'$\\Lambda(t)$')\n",
"sym.plot(X, (w, -20, 20), xlabel=r'$\\omega$', ylabel=r'$\\mathcal{F} \\{ \\Lambda(t) \\}$');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Exercise**\n",
"\n",
"* Extend above example by temporal scaling of the triangular signal.\n",
"* Derive the Fourier transform of a trapezoidal shaped signal by convolving two rectangular signals of different width."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Temporal Shift Theorem\n",
"\n",
"The [temporal shift](../continuous_signals/operations.ipynb#Temporal-Shift) $x(t-\\tau)$ of a signal $x(t)$ can be expressed by a convolution with a shifted Dirac impulse\n",
"\n",
"\\begin{equation}\n",
"x(t - \\tau) = x(t) * \\delta(t - \\tau)\n",
"\\end{equation}\n",
"\n",
"for $\\tau \\in \\mathbb{R}$. This follows from the sifting property of the Dirac impulse. Applying a Fourier transform to the left- and right-hand side and exploiting the convolution theorem yields\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\{ x(t - \\tau) \\} = X(j \\omega) \\cdot e^{- j \\omega \\tau}\n",
"\\end{equation}\n",
"\n",
"where $X(j \\omega) = \\mathcal{F} \\{ x(t) \\}$. Note that $\\mathcal{F} \\{ \\delta(t - \\tau) \\} = e^{- j \\omega \\tau}$ can be derived from the definition of the Fourier transform together with the sifting property of the Dirac impulse. Above relation is known as shift theorem of the Fourier transform.\n",
"\n",
"Expressing $X(j \\omega)$ by its absolute value $|X(j \\omega)|$ and phase $\\varphi(j \\omega)$ results in\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\{ x(t - \\tau) \\} = | X(j \\omega) | \\cdot e^{j (\\varphi(j \\omega) - \\omega \\tau)}\n",
"\\end{equation}\n",
"\n",
"Temporal shifting of a signal does not change the absolute value of its spectrum but it subtracts the linear contribution $\\omega \\tau$ from the phase of its spectrum."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Differentiation Theorem\n",
"\n",
"Let's assume a signal $x(t)$ whose temporal derivative $\\frac{d x(t)}{dt}$ exists. Using the [derivation property of the Dirac impulse](../continuous_signals/standard_signals.ipynb#Dirac-Impulse), the derivative of the signal can be expressed by the convolution\n",
"\n",
"\\begin{equation}\n",
"\\frac{d x(t)}{dt} = \\frac{d \\delta(t)}{dt} * x(t)\n",
"\\end{equation}\n",
"\n",
"Fourier transformation of the left- and right-hand side together with the [convolution theorem](#Convolution-Theorem) yields the Fourier transform of the derivative of $x(t)$\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\left\\{ \\frac{d x(t)}{dt} \\right\\} = j \\omega \\cdot X(j \\omega)\n",
"\\end{equation}\n",
"\n",
"where $X(j \\omega) = \\mathcal{F} \\{ x(t) \\}$. The Fourier transform $\\mathcal{F} \\{ \\frac{d \\delta(t)}{dt} \\} = j \\omega$ can be derived by applying the definition of the Fourier transform together with the derivation property of the Dirac impulse. Above result is known as differentiation theorem of the Fourier transform. It states that the differentiation of a signal in the time domain is equivalent to a multiplication of its spectrum by $j \\omega$. Splitting the spectrum of the differentiated signal into its magnitude and phase\n",
"\n",
"\\begin{equation}\n",
"j \\omega \\cdot X(j \\omega) = |\\omega \\, X(j \\omega)| \\; e^{j (\\varphi(j \\omega) + \\frac{\\pi}{2} )}\n",
"\\end{equation}\n",
"\n",
"reveals that differentiation of a signal results in an attenuation of the higher frequencies of its magnitude spectrum and adds a phase shift of $\\frac{\\pi}{2}$.\n",
"\n",
"The main applications of the differentiation theorem are the transformation of differential equations or the derivation of transforms of signals which can be expressed as derivatives of other signals. This latter is illustrated by the following example. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Transformation of the sign signal\n",
"\n",
"The derivative of the [sign signal](../continuous_signals/standard_signals.ipynb#Sign-Signal) $\\text{sgn}(t)$ [is given by the Dirac impulse](https://en.wikipedia.org/wiki/Sign_function#Properties)\n",
"\n",
"\\begin{equation}\n",
"\\frac{d}{dt} \\text{sgn}(t) = 2 \\cdot \\delta(t)\n",
"\\end{equation}\n",
"\n",
"Fourier transformation of the left- and right-hand side and application of the differentiation theorem yields\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\{ \\text{sgn}(t) \\} = \\frac{2}{j \\omega}\n",
"\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Transformation of the Heaviside signal\n",
"\n",
"The transformation of the [Heaviside signal](../continuous_signals/standard_signals.ipynb#Heaviside-Signal) $\\epsilon(t)$ is derived by expressing it in terms of the sign signal\n",
"\n",
"\\begin{equation}\n",
"\\epsilon(t) = \\frac{1}{2} ( \\text{sgn}(t) + 1 )\n",
"\\end{equation}\n",
"\n",
"Using the linearity of the Fourier transform yields\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\{ \\epsilon(t) \\} = \\frac{1}{j \\omega} + \\pi \\cdot \\delta(\\omega)\n",
"\\end{equation}\n",
"\n",
"The Fourier transformation of the Heaviside signal plays an important role in the context of [analytic signals](https://en.wikipedia.org/wiki/Analytic_signal) and their generation by the [Hilbert transform](https://en.wikipedia.org/wiki/Hilbert_transform)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Integration Theorem\n",
"\n",
"Let's assume a signal $x(t)$ for which the integral $\\int_{-\\infty}^{t} x(\\tau) \\; d\\tau$ exists. The integration can be regarded as inverse operation to the temporal derivative. The integration can be represented as convolution with the rectangular signal $\\epsilon(t)$ ([see integration theorem of the Laplace transform](../laplace_transform/theorems.ipynb#Integration-Theorem))\n",
"\n",
"\\begin{equation}\n",
"\\int_{-\\infty}^{t} x(\\tau) \\; d\\tau = \\int_{-\\infty}^{\\infty} x(\\tau) \\cdot \\epsilon(t - \\tau) \\; d\\tau = x(t) * \\epsilon(t)\n",
"\\end{equation}\n",
"\n",
"Fourier transformation of the left- and right-hand side, application of the convolution theorem and using the Fourier transform of the Heaviside signal $\\epsilon(t)$ yields the integration theorem of the Fourier transform\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\left\\{ \\int_{-\\infty}^{t} x(\\tau) \\; d\\tau \\right\\} \n",
"= X(j \\omega) * \\left( \\frac{1}{j \\omega} + \\pi \\delta(\\omega) \\right) \n",
"= \\frac{1}{j \\omega} X(j \\omega) + \\pi X(0) \\delta(\\omega)\n",
"\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Example**\n",
"\n",
"A signal whose amplitude increases linear over a finite temporal interval to a finite value can be defined as\n",
"\n",
"\\begin{equation}\n",
"x(t) = \\begin{cases}\n",
"0 & \\text{for } t < - \\frac{1}{2} \\\\\n",
"t + \\frac{1}{2} & \\text{for } - \\frac{1}{2} < t < \\frac{1}{2} \\\\\n",
"1 & \\text{for } t > \\frac{1}{2}\n",
"\\end{cases}\n",
"\\end{equation}\n",
"\n",
"Such functions are known as [ramp functions](https://en.wikipedia.org/wiki/Ramp_function). In order to derive the Fourier transform of the ramp signal $x(t)$ it is important to note that it can be expressed as integration over the rectangular signal $\\text{rect}(t)$\n",
"\n",
"\\begin{equation}\n",
"x(t) = \\int_{-\\infty}^{t} \\text{rect}(\\tau) \\; d\\tau \n",
"\\end{equation}\n",
"\n",
"Now its straightforward to apply the integration theorem to yield the desired Fourier transform\n",
"\n",
"\\begin{equation}\n",
"X(j \\omega) = \\frac{1}{j \\omega} \\text{sinc}\\left( \\frac{\\omega}{2} \\right) + \\pi \\cdot \\text{sinc}(0) \\cdot \\delta(\\omega)\n",
"\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Multiplication Theorem\n",
"\n",
"The Fourier transform of a multiplication of two signals $x(t)$ and $y(t)$ is given as\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F} \\{ x(t) \\cdot y(t) \\} = \\frac{1}{2 \\pi} X(j \\omega) * Y(j \\omega)\n",
"\\end{equation}\n",
"\n",
"The Fourier transform of a multiplication of two signals $x(t) \\cdot y(t)$ is given by the convolution of their Fourier transforms $X(j \\omega) = \\mathcal{F} \\{ x(t) \\}$ and $Y(j \\omega) = \\mathcal{F} \\{ y(t) \\}$ weighted by $\\frac{1}{2 \\pi}$. Note, the convolution is performed with respect to the angular frequency $\\omega$.\n",
"\n",
"The multiplication theorem can be proven in a similar way as the convolution theorem by computing the inverse Fourier transform of the convolved spectra\n",
"\n",
"\\begin{equation}\n",
"\\begin{split}\n",
"\\mathcal{F}^{-1} \\left\\{ \\frac{1}{2 \\pi} X(j \\omega) * Y(j \\omega) \\right\\} &= \\frac{1}{2 \\pi} \\int_{-\\infty}^{\\infty} \\left( \\frac{1}{2 \\pi} \\int_{-\\infty}^{\\infty} X(j \\nu) \\cdot Y(j (\\omega-\\nu)) \\; d \\nu \\right) e^{j \\omega t} \\; d\\omega \\\\\n",
"&= \\frac{1}{2 \\pi} \\int_{-\\infty}^{\\infty} \\left( \\frac{1}{2 \\pi} \\int_{-\\infty}^{\\infty} Y(j (\\omega-\\nu)) \\, e^{j \\omega t} \\; d\\omega \\right) X(j \\nu) \\; d\\nu \\\\\n",
"&= y(t) \\cdot \\frac{1}{2 \\pi} \\int_{-\\infty}^{\\infty} X(j \\nu) \\, e^{j \\nu t} \\; d \\nu \\\\\n",
"&= y(t) \\cdot x(t)\n",
"\\end{split}\n",
"\\end{equation}\n",
"\n",
"Alternatively the duality of the Fourier transform can be applied to the [convolution theorem](#Convolution-Theorem). Applications of the multiplication theorem include the modulation and windowing of signals. The former leads to the modulation theorem introduced later, the latter is illustrated by the following example."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Example**\n",
"\n",
"Windowing of signals is often applied to derive signals of finite duration from signals of infinite duration. Here the signal $x(t)$ is multiplied by a weighting function $w(t)$ in order to derive the finite length signal \n",
"\n",
"\\begin{equation}\n",
"y(t) = w(t) \\cdot x(t)\n",
"\\end{equation}\n",
"\n",
"The following example considers the Fourier transform of a finite-length cosine signal. Following the concept of windowing, the signal can be defined as\n",
"\n",
"\\begin{equation}\n",
"y(t) = \\text{rect}(a t) \\cdot \\cos(\\omega_0 t) \n",
"\\end{equation}\n",
"\n",
"where $\\text{rect}(a t)$ denotes the scaled [rectangular signal](../continuous_signals/standard_signals.ipynb#Rectangular-Signal) which is zero for $|t| > \\frac{1}{2 a}$. The Fourier transform $Y(j \\omega) = \\mathcal{F} \\{ y(t) \\}$ is derived by the multiplication theorem, the [Fourier transform of the rectangular signal](definition.ipynb#Transformation-of-the-Rectangular-Signal), and the [Fourier transform of the cosine signal](properties.ipynb#Transformation-of-the-cosine-and-sine-signal) as\n",
"\n",
"\\begin{align}\n",
"Y(j \\omega) &= \\frac{1}{2 \\pi} \\cdot \\frac{1}{|a|} \\text{sinc}\\left( \\frac{\\omega}{2 a} \\right) * \\pi \\left( \\delta(\\omega + \\omega_0) + \\delta(\\omega - \\omega_0) \\right) \\\\\n",
"&= \\frac{1}{2 |a|} \\left( \\text{sinc}\\left( \\frac{\\omega + \\omega_0}{2 a} \\right) + \\text{sinc}\\left( \\frac{\\omega - \\omega_0}{2 a} \\right) \\right)\n",
"\\end{align}\n",
"\n",
"The latter identity results from the sifting property of the Dirac impulse. The convolution is computed in the following in `SymPy` by symbolic evaluation of the convolution integral."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def convolve(x, y, var):\n",
" tau = sym.symbols('tau')\n",
" return sym.integrate(x.subs(var, tau) * y.subs(var, var - tau), (tau, -sym.oo, sym.oo))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using above function, both the Fourier transform of the cosine signal and the rectangular window are convolved which each other"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOsAAAA0BAMAAACZTNIcAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMnZmzRC73UTviSKZVKsmUdgqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEf0lEQVRYCe1XbWgcRRh+NpfNXbJ3yVkh4he5pop4QjgCKoIfh4rQP7rSLyyl2Ro8LAVz/iihWur9rQg9kUQkWg8/sETUozSBfkAXLC3UUoO/rP5Z4wcICrbSGm0lvu/uzO7s5W4UoQtSX7iZ531n5nn2nZmbnQXa25ftw0Bfp4aWuELgxpoaMS/u5Ny4H3mGE2ENUgniIwY1o9ZT261AyhN9FDyqGRY1qQQOhSOCVEH2sl6TSNbjBFzAqIqAgtO2iKnV4ZLqEVYJHPLdiGwnub5lrkgkaqsOWCWzxL3ZAnzkqybhLo8jLbbPjQdiBE6cYCTs2ppAtgHkmqmCWTIqZDsCXEaZRpgXxbCMkqEpYrKKCLKVynRlXCUYa1WTgzBQo6zy2XwXp0fm47k6pth5hAuyXMGv2hYxAidO0K08bnzwED1Q5ptTzxZF2MdWFc+zf1IEdbIxAkeQCYIs+TDWDJcP7ccNbx4cKQBbZj+iGO7gYq37o8c1G2OzjhnGd3JBJmVXjd5mrfWMXZ8NL9ISnJ5doLYYgUMBhaCrTv5GoIo9wP6CcRnWW9ibp+B39FtpwdpiH00Fm5A1HaSR9tC7iKEmDi9kXqW2GIFDAd8Cggxvjr02GngO2A78iu4yzjUpWAm6tZTBTsYQPxiZkM1M0cnV46GnjoESHkWOpyRG4HJvtoDAOE8wfekusCx1vICxBrcCjwdV+/J4jeLZycldr09OegRferrpyzoYKJh/UIBMR2AtUQfzvWU3lB0q8BhgN/0GltsZNYzVqCCTa7v5iSuhrHEhaNMRmCw7h3XnQ9kxNxile1gcj0+yZZsP5XmS/WzFwaMjsHiSvwC+DWVpbbFAQd0o3ji+iWyp6i9JWVpb5P6GgLYucM7GDl7Yx3ht6XDuY9IffF6/2Pzx95Hjo5adnJtCT5NS7eZsQYfzh9RLR+Dv5JdHi7XBN54Z/H3bPb952HqaB4V/TYIuTnFEsfsEljv53eEDxvbpJyemr5/YA/OnWX5u+d8muIIgVVfIYlAmRMGlcC1lj7MCyC0l42qtI8h6ak8V99ZC726SNT8tcgrC5Jmsvgpkm6x1BJ3PZH6BhPYBNuX5jBUWvoFkoF2tI+j8BjKU6Td24gxujLjDG0cUWol0BA+u7C4jP0sAzNu0viORn1bmO4q2Ig3Bi619I5+vQoFZnjF3GeMbpI9/fpdqTxDdpULKEORcCeevu8WeMZZK0rccibR1Z4J53bjwmvv28jJeeaAYyvbZumFRW0eC96M+1wxq93a76rFfrpnp/W8masnHbkqQSN1XEzIHEpEDjp3YRkpJy1oePqFMk5btt9FbT1629yL66fKXeLZV9NNVN2lZ2k5pOt1Y9tg7B4GkdjLAHy0km5nBhJ2gLH/ikOxTJb5EJ5Zt1g1kP7fxQoKy95MqZzsN/npLKttcA0dZlj5mU7S3kpK9Cbjdl/0TPeWvk5K1dp85W/Un+WHc6zaSku2mO0/Zl91avHkxn5Qs7ycyPi58S2ptA7X/ZcW0X82qKy/YV/8Llb8ADjHizn8iLSYAAAAASUVORK5CYII=\n",
"text/latex": [
"$$\\frac{\\operatorname{sinc}{\\left (\\frac{\\omega - \\omega_{0}}{2 a} \\right )} + \\operatorname{sinc}{\\left (\\frac{\\omega + \\omega_{0}}{2 a} \\right )}}{2 \\left|{a}\\right|}$$"
],
"text/plain": [
" ⎛ω - ω₀⎞ ⎛ω + ω₀⎞\n",
"sinc⎜──────⎟ + sinc⎜──────⎟\n",
" ⎝ 2⋅a ⎠ ⎝ 2⋅a ⎠\n",
"───────────────────────────\n",
" 2⋅│a│ "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"w0, a = sym.symbols('omega0 a')\n",
"\n",
"class rect(sym.Function):\n",
"\n",
" @classmethod\n",
" def eval(cls, arg):\n",
" return sym.Heaviside(arg + sym.S.Half) - sym.Heaviside(arg - sym.S.Half)\n",
"\n",
" \n",
"y = rect(a*t) * sym.cos(w0*t)\n",
"W = 1/abs(a) * sym.sinc(w/(2*a))\n",
"X = sym.pi*(sym.DiracDelta(w + w0) + sym.DiracDelta(w - w0))\n",
"\n",
"Y = 1/(2*sym.pi) * convolve(W, X, w)\n",
"Y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Both the signal and its Fourier transform are plotted for specific values $\\omega_0$, $a$"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"application/pdf": "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aXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2Fucy1PYmxpcXVlCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDEyIDAgUiA+PgplbmRvYmoKMTMgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDk2Ci9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnROYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL0l0YWxpY0FuZ2xlIDAgL01heFdpZHRoIDEzNTAgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjEyIDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNTAgNjM1IDQw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RGlmZmVyZW5jZXMgWyA0MCAvcGFyZW5sZWZ0IC9wYXJlbnJpZ2h0IDQ2IC9wZXJpb2QgNDggL3plcm8gL29uZSAvdHdvIDUyIC9mb3VyIC9maXZlCjU1IC9zZXZlbiBdCi9UeXBlIC9FbmNvZGluZyA+PgovRmlyc3RDaGFyIDAgL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udERlc2NyaXB0b3IgMTkgMCBSCi9Gb250TWF0cml4IFsgMC4wMDEgMCAwIDAuMDAxIDAgMCBdIC9MYXN0Q2hhciAyNTUgL05hbWUgL0RlamFWdVNhbnMKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTggMCBSID4+CmVuZG9iagoxOSAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgMzIKL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udE5hbWUgL0RlamFWdVNhbnMgL0l0YWxpY0FuZ2xlIDAKL01heFdpZHRoIDEzNDIgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjE4IDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIxIDAgb2JqCjw8IC9maXZlIDIyIDAgUiAvZm91ciAyMyAwIFIgL29uZSAyNSAwIFIgL3BhcmVubGVmdCAyNiAwIFIKL3BhcmVucmlnaHQgMjcgMCBSIC9wZXJpb2QgMjggMCBSIC9zZXZlbiAyOSAwIFIgL3R3byAzMCAwIFIgL3plcm8gMzEgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMCAwIFIgL0YyIDE0IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRGVqYVZ1U2Fucy1taW51cyAyNCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjMyIDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA1MTYxODM3NTUrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzMKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTE4NDIgMDAwMDAgbiAKMDAwMDAxMTYxMiAwMDAwMCBuIAowMDAwMDExNjU1IDAwMDAwIG4gCjAwMDAwMTE3NTQgMDAwMDAgbiAKMDAwMDAxMTc3NSAwMDAwMCBuIAowMDAwMDExNzk2IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM5MiAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDU2MTMgMDAwMDAgbiAKMDAwMDAwNjYyOCAwMDAwMCBuIAowMDAwMDA2NDIwIDAwMDAwIG4gCjAwMDAwMDYwOTcgMDAwMDAgbiAKMDAwMDAwNzY4MSAwMDAwMCBuIAowMDAwMDA1NjM0IDAwMDAwIG4gCjAwMDAwMDU4ODUgMDAwMDAgbiAKMDAwMDAxMDQwOCAwMDAwMCBuIAowMDAwMDEwMjA4IDAwMDAwIG4gCjAwMDAwMDk4MzQgMDAwMDAgbiAKMDAwMDAxMTQ2MSAwMDAwMCBuIAowMDAwMDA3NzIzIDAwMDAwIG4gCjAwMDAwMDgwNDMgMDAwMDAgbiAKMDAwMDAwODIwNSAwMDAwMCBuIAowMDAwMDA4Mzc1IDAwMDAwIG4gCjAwMDAwMDg1MjcgMDAwMDAgbiAKMDAwMDAwODc0NyAwMDAwMCBuIAowMDAwMDA4OTY5IDAwMDAwIG4gCjAwMDAwMDkwOTAgMDAwMDAgbiAKMDAwMDAwOTIzMCAwMDAwMCBuIAowMDAwMDA5NTUxIDAwMDAwIG4gCjAwMDAwMTE5MDIgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzMiAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzMgPj4Kc3RhcnR4cmVmCjEyMDU2CiUlRU9GCg==\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",
"