{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Periodic Signals\n", "\n", "*This Jupyter notebook is part of a [collection of notebooks](../index.ipynb) in the bachelors module Signals and Systems, Comunications Engineering, Universität Rostock. Please direct questions and suggestions to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Spectrum\n", "\n", "Periodic signals are an import class of signals. Many practical signals can be approximated reasonably well as periodic functions. This holds especially when considering only a limited time-interval. Examples of periodic signals are superpositions of harmonic signals, signals captured from vibrating structures or rotating machinery, as well as speech signals or signals from musical instruments. The spectrum of a periodic signal exhibits specific properties which are discussed in the following." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Representation\n", "\n", "A [periodic signal](https://en.wikipedia.org/wiki/Periodic_function) $x(t)$ is a signal that repeats its values in regular periods. It has to fulfill\n", "\n", "\\begin{equation}\n", "x(t) = x(t + n \\cdot T_\\text{p})\n", "\\end{equation}\n", "\n", "for $n \\in \\mathbb{Z}$ where its period is denoted by $T_\\text{p} > 0$. A signal is termed *aperiodic* if is not periodic. One period $x_0(t)$ of a periodic signal is given as \n", "\n", "\\begin{equation}\n", "x_0(t) = \\begin{cases}\n", "x(t) & \\text{for } 0 \\leq t < T_\\text{p} \\\\\n", "0 & \\text{otherwise}\n", "\\end{cases}\n", "\\end{equation}\n", "\n", "A periodic signal can be represented by [periodic summation](https://en.wikipedia.org/wiki/Periodic_summation) of shifted copies of one period $x_0(t)$\n", "\n", "\\begin{equation}\n", "x(t) = \\sum_{\\mu = - \\infty}^{\\infty} x_0(t - \\mu T_\\text{p})\n", "\\end{equation}\n", "\n", "which can be rewritten as convolution\n", "\n", "\\begin{equation}\n", "x(t) = \\sum_{\\mu = - \\infty}^{\\infty} x_0(t) * \\delta(t - \\mu T_\\text{p}) = x_0(t) * \\sum_{\\mu = - \\infty}^{\\infty} \\delta(t - \\mu T_\\text{p})\n", "\\end{equation}\n", "\n", "using the sifting property of the Dirac impulse. It can be concluded that a periodic signal can be represented by one period $x_0(t)$ of the signal convolved with a series of Dirac impulses." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "The cosine signal $x(t) = \\cos (\\omega_0 t)$ has a periodicity of $T_\\text{p} = \\frac{2 \\pi}{\\omega_0}$. One period is given as\n", "\n", "\\begin{equation}\n", "x_0(t) = \\cos (\\omega_0 t) \\cdot \\text{rect} \\left( \\frac{t}{T_\\text{p}} - \\frac{T_\\text{p}}{2} \\right)\n", "\\end{equation}\n", "\n", "Introduced into above representation of a periodic signal yields\n", "\n", "\\begin{align}\n", "x(t) &= \\cos (\\omega_0 t) \\cdot \\text{rect} \\left( \\frac{t}{T_\\text{p}} - \\frac{T_\\text{p}}{2} \\right) * \\sum_{\\mu = - \\infty}^{\\infty} \\delta(t - \\mu T_\\text{p}) \\\\\n", "&= \\cos (\\omega_0 t) \\sum_{\\mu = - \\infty}^{\\infty} \\text{rect} \\left( \\frac{t}{T_\\text{p}} - \\frac{T_\\text{p}}{2} - \\mu T_\\text{p} \\right) \\\\\n", "&= \\cos (\\omega_0 t)\n", "\\end{align}\n", "\n", "since the sum over the shifted rectangular signals is equal to one." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Dirac Comb\n", "\n", "The sum of shifted Dirac impulses, as used above to represent a periodic signal, is known as [*Dirac comb*](https://en.wikipedia.org/wiki/Dirac_comb). The Dirac comb is defined as\n", "\n", "\\begin{equation}\n", "{\\bot \\!\\! \\bot \\!\\! \\bot}(t) = \\sum_{\\mu = - \\infty}^{\\infty} \\delta(t - \\mu)\n", "\\end{equation}\n", "\n", "It is used for the representation of periodic signals and for the modeling of ideal sampling. In order to compute the spectrum of a periodic signal, the Fourier transform of the Dirac comb $\\mathcal{F} \\{ {\\bot \\!\\! \\bot \\!\\! \\bot}(t) \\}$ is derived in the following. Fourier transformation of the left- and right-hand side of above definition yields\n", "\n", "\\begin{equation}\n", "\\mathcal{F} \\{ {\\bot \\!\\! \\bot \\!\\! \\bot}(t) \\} = \\sum_{\\mu = - \\infty}^{\\infty} e^{-j \\mu \\omega}\n", "\\end{equation}\n", "\n", "The exponential function $e^{-j \\mu \\omega}$ for $\\mu \\in \\mathbb{Z}$ is periodic with a period of $2 \\pi$. Hence, the Fourier transform of the Dirac comb is also periodic with a period of $2 \\pi$. \n", "\n", "In order to gain further insight, the following convolution of a [rectangular signal](../notebooks/continuous_signals/standard_signals.ipynb#Rectangular-Signal) with a Dirac comb is considered\n", "\n", "\\begin{equation}\n", "{\\bot \\!\\! \\bot \\!\\! \\bot}(t) * \\text{rect}(t) = 1\n", "\\end{equation}\n", "\n", "The right hand side follows from the fact that the rectangular signals equals one for $-\\frac{1}{2} < t < \\frac{1}{2}$ which is then periodically summed up with a period of one. Fourier transform of the left- and right-hand side yields\n", "\n", "\\begin{equation}\n", "\\mathcal{F} \\{ {\\bot \\!\\! \\bot \\!\\! \\bot}(t) \\} \\cdot \\text{sinc}\\left(\\frac{\\omega}{2}\\right) = 2 \\pi \\delta(\\omega)\n", "\\end{equation}\n", "\n", "For $\\text{sinc}( \\frac{\\omega}{2} ) \\neq 0$, which is equal to $\\omega \\neq 2 n \\cdot \\pi$ with $n \\in \\mathbb{Z} \\setminus \\{0\\}$, this can be rearranged to\n", "\n", "\\begin{equation}\n", "\\mathcal{F} \\{ {\\bot \\!\\! \\bot \\!\\! \\bot}(t) \\} = 2 \\pi \\, \\delta(\\omega) \\cdot \\frac{1}{\\text{sinc}\\left(\\frac{\\omega}{2}\\right)} = 2 \\pi \\, \\delta(\\omega)\n", "\\end{equation}\n", "\n", "Note that the [multiplication property](../continuous_signals/standard_signals.ipynb#Dirac-Impulse) of the Dirac impulse and $\\text{sinc}(0) = 1$ has been used to derive the last equality. The Fourier transform is now known in the interval $-2 \\pi < \\omega < 2 \\pi$. It has already been concluded that the Fourier transform is periodic with a period of $2 \\pi$. Hence, the Fourier transformation of the Dirac comb can be derived by periodic continuation\n", "\n", "\\begin{equation}\n", "\\mathcal{F} \\{ {\\bot \\!\\! \\bot \\!\\! \\bot}(t) \\} = \\sum_{\\mu = - \\infty}^{\\infty} 2 \\pi \\, \\delta(\\omega - 2 \\pi \\mu) = \\sum_{\\mu = - \\infty}^{\\infty} 2 \\pi \\, \\left( \\frac{\\omega}{2 \\pi} - \\mu \\right)\n", "\\end{equation}\n", "\n", "The last equality follows from the scaling property of the Dirac impulse. Using the definition of the Dirac comb, the Fourier transform can now be rewritten in terms of the Dirac comb\n", "\n", "\\begin{equation}\n", "\\mathcal{F} \\{ {\\bot \\!\\! \\bot \\!\\! \\bot}(t) \\} = {\\bot \\!\\! \\bot \\!\\! \\bot} \\left( \\frac{\\omega}{2 \\pi} \\right)\n", "\\end{equation}\n", "\n", "The Fourier transform of a Dirac comb with unit distance between the Dirac impulses is a Dirac comb with a distance of $2 \\pi$ between the Dirac impulses which are weighted by $2 \\pi$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "The following example computes the truncated series\n", "\n", "\\begin{equation}\n", "X(j \\omega) = \\sum_{\\mu = -M}^{M} e^{-j \\mu \\omega}\n", "\\end{equation}\n", "\n", "as approximation of the Fourier transform $\\mathcal{F} \\{ {\\bot \\!\\! \\bot \\!\\! \\bot}(t) \\}$ of the Dirac comb. For this purpose the sum is defined and plotted in `SymPy`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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RW5jb2RpbmcgPj4gL0ZpcnN0Q2hhciAwCi9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIg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Nzk0IDEyMzMgXSAvRm9udE5hbWUgL0RlamFWdVNhbnMgL0l0YWxpY0FuZ2xlIDAKL01heFdpZHRoIDEzNDIgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjE5IDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIyIDAgb2JqCjw8IC9maXZlIDIzIDAgUiAvZm91ciAyNCAwIFIgL29uZSAyNiAwIFIgL3BhcmVubGVmdCAyNyAwIFIKL3BhcmVucmlnaHQgMjggMCBSIC9wZXJpb2QgMjkgMCBSIC9zZXZlbiAzMCAwIFIgL3RocmVlIDMxIDAgUiAvdHdvIDMyIDAgUgovemVybyAzMyAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIxIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLU9ibGlxdWUtb21lZ2EgMTggMCBSIC9EZWphVnVTYW5zLW1pbnVzIDI1IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMzQgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDYxOTE3NDkwMSswMicwMCcpCi9DcmVhdG9yIChtYXRwbG90bGliIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAobWF0cGxvdGxpYiBwZGYgYmFja2VuZCAzLjAuMykgPj4KZW5kb2JqCnhyZWYKMCAzNQowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAyMDQ5NiAwMDAwMCBuIAowMDAwMDIwMjMzIDAwMDAwIG4gCjAwMDAwMjAyNzYgMDAwMDAgbiAKMDAwMDAyMDM3NSAwMDAwMCBuIAowMDAwMDIwMzk2IDAwMDAwIG4gCjAwMDAwMjA0MTcgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzk2IDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAxMzU2MyAwMDAwMCBuIAowMDAwMDE0ODIwIDAwMDAwIG4gCjAwMDAwMTQ2MTIgMDAwMDAgbiAKMDAwMDAxNDI5MCAwMDAwMCBuIAowMDAwMDE1ODczIDAwMDAwIG4gCjAwMDAwMTM1ODUgMDAwMDAgbiAKMDAwMDAxMzc1MCAwMDAwMCBuIAowMDAwMDEzOTc1IDAwMDAwIG4gCjAwMDAwMTkwMTUgMDAwMDAgbiAKMDAwMDAxODgxNSAwMDAwMCBuIAowMDAwMDE4NDM3IDAwMDAwIG4gCjAwMDAwMjAwNjggMDAwMDAgbiAKMDAwMDAxNTkxNSAwMDAwMCBuIAowMDAwMDE2MjM1IDAwMDAwIG4gCjAwMDAwMTYzOTcgMDAwMDAgbiAKMDAwMDAxNjU2NyAwMDAwMCBuIAowMDAwMDE2NzE5IDAwMDAwIG4gCjAwMDAwMTY5MzkgMDAwMDAgbiAKMDAwMDAxNzE2MSAwMDAwMCBuIAowMDAwMDE3MjgyIDAwMDAwIG4gCjAwMDAwMTc0MjIgMDAwMDAgbiAKMDAwMDAxNzgzMyAwMDAwMCBuIAowMDAwMDE4MTU0IDAwMDAwIG4gCjAwMDAwMjA1NTYgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzNCAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzUgPj4Kc3RhcnR4cmVmCjIwNzEwCiUlRU9GCg==\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import sympy as sym\n", "sym.init_printing()\n", "\n", "mu = sym.symbols('mu', integer=True)\n", "w = sym.symbols('omega', real=True)\n", "M = 20\n", "\n", "X = sym.Sum(sym.exp(-sym.I*mu*w), (mu, -M, M)).doit()\n", "sym.plot(X, xlabel='$\\omega$', ylabel='$X(j \\omega)$', adaptive=False, nb_of_points=1000);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Change the summation limit $M$. How does the approximation change? Note: Increasing $M$ above a certain threshold may lead to numerical instabilities." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fourier-Transform\n", "\n", "In order to derive the Fourier transform $X(j \\omega) = \\mathcal{F} \\{ x(t) \\}$ of a periodic signal $x(t)$ with period $T_\\text{p}$, the signal is represented by one period $x_0(t)$ and the Dirac comb. Rewriting above representation of a periodic signal in terms of a sum of Dirac impulses by noting that $\\delta(t - \\mu T_\\text{p}) = \\frac{1}{T_\\text{p}} \\delta(\\frac{t}{T_\\text{p}} - \\mu)$ yields\n", "\n", "\\begin{equation}\n", "x(t) = x_0(t) * \\frac{1}{T_\\text{p}} {\\bot \\!\\! \\bot \\!\\! \\bot} \\left( \\frac{t}{T_\\text{p}} \\right)\n", "\\end{equation}\n", "\n", "The Fourier transform is derived by application of the [convolution theorem](../fourier_transform/theorems.ipynb#Convolution-Theorem)\n", "\n", "\\begin{align}\n", "X(j \\omega) &= X_0(j \\omega) \\cdot {\\bot \\!\\! \\bot \\!\\! \\bot} \\left( \\frac{\\omega T_\\text{p}}{2 \\pi} \\right) \\\\\n", "&= \\frac{2 \\pi}{T_\\text{p}} \\sum_{\\mu = - \\infty}^{\\infty} X_0 \\left( j \\, \\mu \\frac{2 \\pi}{T_\\text{p}} \\right) \\cdot\n", "\\delta \\left( \\omega - \\mu \\frac{2 \\pi}{T_\\text{p}} \\right)\n", "\\end{align}\n", "\n", "where $X_0(j \\omega) = \\mathcal{F} \\{ x_0(t) \\}$ denotes the Fourier transform of one period of the periodic signal. From the last equality it can be concluded that the Fourier transform of a periodic signal consists of a series of weighted Dirac impulses. These Dirac impulse are equally distributed on the frequency axis $\\omega$ at an interval of $\\frac{2 \\pi}{T_\\text{p}}$. The weights of the Dirac impulse are given by the values of the spectrum $X_0(j \\omega)$ of one period at the locations $\\omega = \\mu \\frac{2 \\pi}{T_\\text{p}}$. Such a spectrum is termed *line spectrum*." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Parseval's Theorem\n", "\n", "[Parseval's theorem](../fourier_transform/theorems.ipynb#Parseval%27s-Theorem) relates the energy of a signal in the time domain to its spectrum. The energy of a periodic signal is in general not defined. This is due to the fact that its energy is unlimited, if the energy of one period is non-zero. As alternative, the average power of a periodic signal $x(t)$ is used. It is defined as\n", "\n", "\\begin{equation}\n", "P = \\frac{1}{T_\\text{p}} \\int_{0}^{T_\\text{p}} |x(t)|^2 \\; dt\n", "\\end{equation}\n", "\n", "Introducing the Fourier transform of a periodic signal into [Parseval's theorem](../fourier_transform/theorems.ipynb#Parseval%27s-Theorem) yields\n", "\n", "\\begin{equation}\n", "\\frac{1}{T_\\text{p}} \\int_{0}^{T_\\text{p}} |x(t)|^2 \\; dt = \\frac{1}{T_\\text{p}} \\sum_{\\mu = - \\infty}^{\\infty} \\left| X_0 \\left( j \\, \\mu \\frac{2 \\pi}{T_\\text{p}} \\right) \\right|^2\n", "\\end{equation}\n", "\n", "The average power of a periodic signal can be calculated in the time-domain by integrating over the squared magnitude of one period or in the frequency domain by summing up the squared magnitude weights of the coefficients of the Dirac impulses of its Fourier transform." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fourier Transform of the Pulse Train\n", "\n", "The [pulse train](https://en.wikipedia.org/wiki/Pulse_wave) is commonly used for power control using [pulse-width modulation (PWM)](https://en.wikipedia.org/wiki/Pulse-width_modulation). It is constructed from a periodic summation of a rectangular signal $x_0(t) = \\text{rect} (\\frac{t}{T} - \\frac{T}{2})$\n", "\n", "\\begin{equation}\n", "x(t) = \\text{rect} \\left( \\frac{t}{T} - \\frac{T}{2} \\right) * \\frac{1}{T_\\text{p}} {\\bot \\!\\! \\bot \\!\\! \\bot} \\left( \\frac{t}{T_\\text{p}} \\right)\n", "\\end{equation}\n", "\n", "where $0 < T < T_\\text{p}$ denotes the width of the pulse and $T_\\text{p}$ its periodicity. Its usage for power control becomes evident when calculating the average power of the pulse train\n", "\n", "\\begin{equation}\n", "P = \\frac{1}{T_\\text{p}} \\int_{0}^{T_\\text{p}} | x(t) |^2 dt = \\frac{T}{T_\\text{p}}\n", "\\end{equation}\n", "\n", "The Fourier transform of one period $X_0(j \\omega) = \\mathcal{F} \\{ x_0(t) \\}$ is derived by applying the scaling and shift theorem of the Fourier transform to the [Fourier transform of the retangular signal](../fourier_transform/definition.ipynb#Transformation-of-the-Rectangular-Signal)\n", "\n", "\\begin{equation}\n", "X_0(j \\omega) = e^{-j \\omega \\frac{T}{2}} \\cdot T \\, \\text{sinc} \\left( \\frac{\\omega T}{2} \\right)\n", "\\end{equation}\n", "\n", "from which the spectrum of the pulse train follows by application of above formula for the Fourier transform of a periodic signal\n", "\n", "\\begin{equation}\n", "X(j \\omega) = 2 \\pi \\frac{1}{T_\\text{p}} \\sum_{\\mu = - \\infty}^{\\infty} e^{-j \\mu \\pi \\frac{T}{T_\\text{p}}} \\cdot T \\, \\text{sinc} \\left( \\mu \\pi \\frac{T}{T_\\text{p}} \\right) \\cdot \\delta \\left( \\omega - \\mu \\frac{2 \\pi}{T_\\text{p}} \\right)\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "The pulse train and its spectrum are illustrated by the subsequent computational example. First the pulse train is defined and plotted in `SymPy`" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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dCAxMjAgL3ggXSAvVHlwZSAvRW5jb2RpbmcgPj4gL0ZpcnN0Q2hhciAwCi9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYz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b3VyIC9maXZlCi9zaXggNTYgL2VpZ2h0IF0KL1R5cGUgL0VuY29kaW5nID4+Ci9GaXJzdENoYXIgMCAvRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250RGVzY3JpcHRvciAxOSAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxOCAwIFIgPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTggMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjEgMCBvYmoKPDwgL2VpZ2h0IDIyIDAgUiAvZml2ZSAyMyAwIFIgL2ZvdXIgMjQgMCBSIC9vbmUgMjYgMCBSIC9wYXJlbmxlZnQgMjcgMCBSCi9wYXJlbnJpZ2h0IDI4IDAgUiAvcGVyaW9kIDI5IDAgUiAvc2l4IDMwIDAgUiAvdHdvIDMxIDAgUiAvemVybyAzMiAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIwIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLW1pbnVzIDI1IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMzMgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDYxOTE3NDkwMSswMicwMCcpCi9DcmVhdG9yIChtYXRwbG90bGliIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAobWF0cGxvdGxpYiBwZGYgYmFja2VuZCAzLjAuMykgPj4KZW5kb2JqCnhyZWYKMCAzNAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAxMDg4NCAwMDAwMCBuIAowMDAwMDEwNjU0IDAwMDAwIG4gCjAwMDAwMTA2OTcgMDAwMDAgbiAKMDAwMDAxMDc5NiAwMDAwMCBuIAowMDAwMDEwODE3IDAwMDAwIG4gCjAwMDAwMTA4MzggMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzk5IDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMzk3MSAwMDAwMCBuIAowMDAwMDA0OTM4IDAwMDAwIG4gCjAwMDAwMDQ3MzAgMDAwMDAgbiAKMDAwMDAwNDQwNyAwMDAwMCBuIAowMDAwMDA1OTkxIDAwMDAwIG4gCjAwMDAwMDM5OTIgMDAwMDAgbiAKMDAwMDAwNDI0MyAwMDAwMCBuIAowMDAwMDA5NDM4IDAwMDAwIG4gCjAwMDAwMDkyMzggMDAwMDAgbiAKMDAwMDAwODg1OSAwMDAwMCBuIAowMDAwMDEwNDkxIDAwMDAwIG4gCjAwMDAwMDYwMzMgMDAwMDAgbiAKMDAwMDAwNjQ5OCAwMDAwMCBuIAowMDAwMDA2ODE4IDAwMDAwIG4gCjAwMDAwMDY5ODAgMDAwMDAgbiAKMDAwMDAwNzE1MCAwMDAwMCBuIAowMDAwMDA3MzAyIDAwMDAwIG4gCjAwMDAwMDc1MjIgMDAwMDAgbiAKMDAwMDAwNzc0NCAwMDAwMCBuIAowMDAwMDA3ODY1IDAwMDAwIG4gCjAwMDAwMDgyNTUgMDAwMDAgbiAKMDAwMDAwODU3NiAwMDAwMCBuIAowMDAwMDEwOTQ0IDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzMgMCBSIC9Sb290IDEgMCBSIC9TaXplIDM0ID4+CnN0YXJ0eHJlZgoxMTA5OAolJUVPRgo=\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mu = sym.symbols('mu', integer=True)\n", "t = sym.symbols('t', real=True)\n", "T = 2\n", "Tp = 5\n", "\n", "def pulse_train(T, Tp):\n", " n = sym.symbols('n', integer=True)\n", " x0 = sym.Piecewise((0, t < 0), (1, t < T), (0, True))\n", " return sym.summation(x0.subs(t, t+n*Tp), (n, -10, 10))\n", "\n", "\n", "import warnings\n", "warnings.filterwarnings(\"ignore\", module=\"sympy.plot\")\n", "sym.plot(pulse_train(T, Tp), (t, -5, 20), xlabel='$t$', ylabel='$x(t)$', adaptive=False);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The weights of the Dirac impulses are defined for fixed values $T$ and $T_\\text{p}$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 2 e^{- \\frac{2 i \\pi \\mu}{5}} \\operatorname{sinc}{\\left(\\frac{2 \\pi \\mu}{5} \\right)}$" ], "text/plain": [ " -2⋅ⅈ⋅π⋅μ \n", " ───────── \n", " 5 ⎛2⋅π⋅μ⎞\n", "2⋅ℯ ⋅sinc⎜─────⎟\n", " ⎝ 5 ⎠" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_mu = sym.exp(-sym.I * mu * sym.pi * T/Tp) * T * sym.sinc(mu * sym.pi * T/Tp)\n", "X_mu" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The weights of the Dirac impulses are plotted with [`matplotlib`](http://matplotlib.org/index.html), a Python plotting library. The library expects the values of the function to be plotted at a series of sampling points. In order to create these, the function [`sympy.lambdify`](http://docs.sympy.org/latest/modules/utilities/lambdify.html?highlight=lambdify#sympy.utilities.lambdify) is used which numerically evaluates a symbolic function at given sampling points. The resulting plot illustrates the positions and weights of the Dirac impulses." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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7vEa3z/mNz8eCmVuZHN0cmVhbQplbmRvYmoKMTUgMCBvYmoKPDwgL0Jhc2VGb250IC9EZWphVnVTYW5zLU9ibGlxdWUgL0NoYXJQcm9jcyAxNiAwIFIKL0VuY29kaW5nIDw8IC9EaWZmZXJlbmNlcyBbIDg4IC9YIDEwNiAvaiBdIC9UeXBlIC9FbmNvZGluZyA+PiAvRmlyc3RDaGFyIDAKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udERlc2NyaXB0b3IgMTQgMCBSCi9Gb250TWF0cml4IFsgMC4wMDEgMCAwIDAuMDAxIDAgMCBdIC9MYXN0Q2hhciAyNTUgL05hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxMyAwIFIgPj4KZW5kb2JqCjE0IDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyA5NgovRm9udEJCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9Gb250TmFtZSAvRGVqYVZ1U2Fucy1PYmxpcXVlCi9JdGFsaWNBbmdsZSAwIC9NYXhXaWR0aCAxMzUwIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxMyAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjggNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjE3IDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTcgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwOAo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTk1IDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoxNiAwIG9iago8PCAvWCAxNyAwIFIgL2ogMTggMCBSID4+CmVuZG9iagoyNCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDU0ID4+CnN0cmVhbQp4nDM2NlcwUDA0MlfQNTI2VTAyNFAwNzNRSDHkgjFzwSywbA4XXCGECZLPgavM4UoDAEyQDxUKZW5kc3RyZWFtCmVuZG9iagoyNSAwIG9iago8PCAvRmlsdGVyIC9G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MTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyMyAwIG9iago8PCAvYmFyIDI0IDAgUiAvZml2ZSAyNSAwIFIgL29uZSAyNyAwIFIgL3BhcmVubGVmdCAyOCAwIFIKL3BhcmVucmlnaHQgMjkgMCBSIC9wZXJpb2QgMzAgMCBSIC9zZXZlbiAzMSAwIFIgL3R3byAzMiAwIFIgL3plcm8gMzMgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMiAwIFIgL0YyIDE1IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRGVqYVZ1U2Fucy1PYmxpcXVlLW9tZWdhIDE5IDAgUiAvRGVqYVZ1U2Fucy1taW51cyAyNiAwIFIgL00wIDEyIDAgUiA+PgplbmRvYmoKMTIgMCBvYmoKPDwgL0JCb3ggWyAtMy41IC0zLjUgMy41IDMuNSBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTMxCi9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nG2QQQ6EIAxF9z1FL/BJS0Vl69JruJlM4v23A3FATN000L48flH+kvBOpcD4JAlLTrPketOQ0rpMjBjm1bIox6BRLdbOdTioz9BwY3SLsRSm1NboeKOb6Tbekz/6sFkhRj8cDq+EexZDJlwpMQaH3wsv28P/EZ5e1MAfoo1+Y1pD/QplbmRzdHJlYW0KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjM0IDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA2MTkxNzQ5MDIrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzUKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDg3NDMgMDAwMDAgbiAKMDAwMDAwODIwNyAwMDAwMCBuIAowMDAwMDA4MjUwIDAwMDAwIG4gCjAwMDAwMDgzNDkgMDAwMDAgbiAKMDAwMDAwODM3MCAwMDAwMCBuIAowMDAwMDA4MzkxIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM5OCAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDIwMDEgMDAwMDAgbiAKMDAwMDAwODQ4MSAwMDAwMCBuIAowMDAwMDAzMjU3IDAwMDAwIG4gCjAwMDAwMDMwNDkgMDAwMDAgbiAKMDAwMDAwMjcyNyAwMDAwMCBuIAowMDAwMDA0MzEwIDAwMDAwIG4gCjAwMDAwMDIwMjIgMDAwMDAgbiAKMDAwMDAwMjE4NyAwMDAwMCBuIAowMDAwMDAyNDEyIDAwMDAwIG4gCjAwMDAwMDcwMDQgMDAwMDAgbiAKMDAwMDAwNjgwNCAwMDAwMCBuIAowMDAwMDA2NDI3IDAwMDAwIG4gCjAwMDAwMDgwNTcgMDAwMDAgbiAKMDAwMDAwNDM1MiAwMDAwMCBuIAowMDAwMDA0NDc4IDAwMDAwIG4gCjAwMDAwMDQ3OTggMDAwMDAgbiAKMDAwMDAwNDk2OCAwMDAwMCBuIAowMDAwMDA1MTIwIDAwMDAwIG4gCjAwMDAwMDUzNDAgMDAwMDAgbiAKMDAwMDAwNTU2MiAwMDAwMCBuIAowMDAwMDA1NjgzIDAwMDAwIG4gCjAwMDAwMDU4MjMgMDAwMDAgbiAKMDAwMDAwNjE0NCAwMDAwMCBuIAowMDAwMDA4ODAzIDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzQgMCBSIC9Sb290IDEgMCBSIC9TaXplIDM1ID4+CnN0YXJ0eHJlZgo4OTU3CiUlRU9GCg==\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "Xn = sym.lambdify(mu, sym.Abs(X_mu), 'numpy')\n", "\n", "n = np.arange(-15, 15)\n", "plt.stem(n*2*np.pi/Tp, Xn(n))\n", "plt.xlabel('$\\omega$')\n", "plt.ylabel('$|X(j \\omega)|$');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Change the ratio $\\frac{T}{T_\\text{p}}$. How does the spectrum of the pulse train change?\n", "* Can you derive the periodicity $T_\\text{p}$ of the signal from its spectrum?\n", "* Calculate the average power of the pulse train in the frequency domain by applying Parseval's theorem." ] }, { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "**Copyright**\n", "\n", "The notebooks are provided as [Open Educational Resource](https://de.wikipedia.org/wiki/Open_Educational_Resources). Feel free to use the notebooks for your own educational purposes. The text is licensed under [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/), the code of the IPython examples under the [MIT license](https://opensource.org/licenses/MIT). Please attribute the work as follows: *Lecture Notes on Signals and Systems* by Sascha Spors." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 1 }