{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# System Properties\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": [ "## Classes of Systems\n", "\n", "The spectral and temporal characteristics of a linear-time invariant (LTI) system are given by its impulse response $h(t)$ and transfer function $H(s) = \\mathcal{L} \\{ h(t) \\}$, respectively. However it is useful to introduce some classes of LTI systems with specific higher-level properties. These are for instance useful for the design of systems with specific desired properties." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Real-Valued System\n", "\n", "A real-valued system is a system whose output signal $y(t) = \\mathcal{H} \\{ x(t) \\}$ is real-valued $y(t) \\in \\mathbb{R}$ for a real-valued input signal $x(t) \\in \\mathbb{R}$. Since the output signal $y(t)$ of an LTI system is given by convolving the input signal $x(t)$ with its impulse response $h(t)$, the impulse response $h(t)$ of a real-valued system has to be real-valued\n", "\n", "\\begin{equation}\n", "h(t) \\in \\mathbb{R}\n", "\\end{equation}\n", "\n", "If existing, the transfer function $H(s) = \\mathcal{L} \\{ h(t) \\}$ shows conjugate complex symmetry\n", "\n", "\\begin{equation}\n", "H(s) = H^*(s^*)\n", "\\end{equation}\n", "\n", "due to the [symmetry of the Laplace transform for real-valued signals](../laplace_transform/properties.ipynb#Symmetry-for-Real-Valued-Signals). It follows, that the poles and zeros of a rational transfer function $H(s)$ are either real-valued or complex conjugate pairs.\n", "\n", "If existing, the transfer function $H(j \\omega) = \\mathcal{F} \\{ h(t) \\}$ in the Fourier domain shows also conjugate complex symmetry\n", "\n", "\\begin{equation}\n", "H(j \\omega) = H^*(-j \\omega)\n", "\\end{equation}\n", "\n", "due to the [symmetry of the Fourier transform for real-valued signals](../fourier_transform/properties.ipynb#Real-valued-signals). The magnitude spectrum $|H(j \\omega)|$ shows even symmetry and the phase $\\varphi(j \\omega)$ odd symmetry\n", "\n", "\\begin{align}\n", "|H(j \\omega)| &= |H(-j \\omega)| \\\\\n", "\\varphi(j \\omega) &= - \\varphi(-j \\omega)\n", "\\end{align}\n", "\n", "Due to these symmetries often only the positive part $\\omega \\geq 0$ of the magnitude and phase of the transfer function are plotted. Note that such a representation is ambiguous without the additional knowledge that the system is real-valued.\n", "\n", "Since physically existing signals are real-valued, real-valued systems are of paramount importance in practical applications. The symmetry relations derived above have to be considered when designing real-valued systems in the spectral domain." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Distortionless System\n", "\n", "A distortionless system is a system whose output signal $y(t)$ is the attenuated and delayed version of the input signal $x(t)$\n", "\n", "\\begin{equation}\n", "y(t) = H_0 \\cdot x(t - \\tau)\n", "\\end{equation}\n", "\n", "where $H_0 \\in \\mathbb{R}$ denotes the attenuation and $\\tau \\in \\mathbb{R}$ the delay. The impulse response of a distortionless system is consequently given as\n", "\n", "\\begin{equation}\n", "h(t) = H_0 \\cdot \\delta(t - \\tau)\n", "\\end{equation}\n", "\n", "This can be concluded from the [sifting property of the Dirac pulse](../continuous_signals/standard_signals.ipynb#Dirac-Impulse). Its transfer function $H(j \\omega) = \\mathcal{F} \\{ h(t) \\}$ reads\n", "\n", "\\begin{equation}\n", "H(j \\omega) = H_0 \\cdot e^{- j \\omega \\tau}\n", "\\end{equation}\n", "\n", "It follows that the magnitude response of a distortonless system is constant $| H(j \\omega) | = H_0$, the phase response is linearly dependent on the frequency $\\varphi_\\text{H}(j \\omega) = - \\omega \\tau$, and the [phase and group delay](../systems_spectral_domain/phase_group_delay.ipynb) are constant $t_p = t_g = \\tau$.\n", "\n", "The characteristics of a distortionless system are often the desired properties of sensors, actuators, amplifiers and transmission paths. In this context the distortionless system serves as an idealized model for such elements or is used as goal for the equalization of non-ideal elements." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Linear-Phase System\n", "\n", "Systems whose unwrapped phase $\\varphi_\\text{H}(j \\omega) = \\arg \\{ H(j \\omega) \\}$ scales linearly with frequency \n", "\n", "\\begin{equation}\n", "\\varphi_\\text{H}(j \\omega) = - c \\cdot \\omega + d\n", "\\end{equation}\n", "\n", "with $c, d \\in \\mathbb{R}$ are termed *linear-phase systems*. There are no constraints with respect to their magnitude response $|H(j \\omega)|$. The transfer function $H(j \\omega)$ is given as\n", "\n", "\\begin{equation}\n", "H(j \\omega) = |H(j \\omega)| \\; e^{j (- c \\omega + d)}\n", "\\end{equation}\n", "\n", "The group delay of a linear-phase system is constant\n", "\n", "\\begin{equation}\n", "t_g(\\omega) = - \\frac{\\partial (- c \\cdot \\omega + d)}{\\partial \\omega} = c\n", "\\end{equation}\n", "\n", "Systems with a linear phase are often desired in practical applications, since all spectral components of a signal are delayed by the same amount when passing the system. The distortionless system introduced above can be seen as a special linear-phase system with $|H(j \\omega)| = H_0$, $c = \\tau$ and $d=0$.\n", "\n", "The impulse response of a linear-phase system shows a specific symmetry. Let's first assume that $c=0$ and $d=0$. Splitting $|H(j \\omega)| \\in \\mathbb{R}$ into its odd and even part, and considering the [symmetries of the Fourier transform](../fourier_transform/properties.ipynb#Symmetries) yields\n", "\n", "\\begin{equation}\n", "h(t) = h^*(-t)\n", "\\end{equation}\n", "\n", "This result can be generalized to the case $c \\neq 0$ by considering the [temporal shift theorem](../fourier_transform/theorems.ipynb#Temporal-Shift-Theorem) when deriving the impulse response from the transfer function. Above symmetry generalizes to\n", "\n", "\\begin{equation}\n", "h(t - c) = h^*(-t + c)\n", "\\end{equation}\n", "\n", "The impulse response of a linear-phase system exhibits complex conjugate symmetry with respect to the time instant $t-c$. In the general case $d \\neq 0$, a constant phase shift is added." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "A real-valued linear-phase system with the following transfer function\n", "\n", "\\begin{equation}\n", "H(j \\omega) = \\Lambda(\\omega) \\cdot e^{-j c \\omega}\n", "\\end{equation}\n", "\n", "is considered. Its impulse response $h(t) = \\mathcal{F}^{-1} \\{ H(j \\omega) \\}$ is derived by applying the [duality principle](../fourier_transform/properties.ipynb#Duality) to the [Fourier transformation of the triangular signal](../fourier_transform/theorems.ipynb#Transformation-of-the-triangular-signal) and considering the [shift theorem](../fourier_transform/theorems.ipynb#Temporal-Shift-Theorem)\n", "\n", "\\begin{equation}\n", "h(t) = \\frac{1}{2 \\pi} \\text{sinc}^2 \\left( \\frac{t - c}{2} \\right)\n", "\\end{equation}\n", "\n", "It is straightforward to show that the impulse response fulfills the properties stated above. For illustration, the impulse response is plotted for $c=5$" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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MTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjggNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjE3IDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTcgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwOAo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTk1IDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoxNSAwIG9iago8PCAvaCAxNiAwIFIgL3QgMTcgMCBSID4+CmVuZG9iagoy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MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyMSAwIG9iago8PCAvZWlnaHQgMjIgMCBSIC9maXZlIDIzIDAgUiAvZm91ciAyNCAwIFIgL29uZSAyNiAwIFIgL3BhcmVubGVmdCAyNyAwIFIKL3BhcmVucmlnaHQgMjggMCBSIC9wZXJpb2QgMjkgMCBSIC9zZXZlbiAzMCAwIFIgL3NpeCAzMSAwIFIgL3R3byAzMiAwIFIKL3plcm8gMzMgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMCAwIFIgL0YyIDE0IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRGVqYVZ1U2Fucy1taW51cyAyNSAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjM0IDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA2MDUwOTIxMjcrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzUKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDk1MDggMDAwMDAgbiAKMDAwMDAwOTI3OCAwMDAwMCBuIAowMDAwMDA5MzIxIDAwMDAwIG4gCjAwMDAwMDk0MjAgMDAwMDAgbiAKMDAwMDAwOTQ0MSAwMDAwMCBuIAowMDAwMDA5NDYyIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDQwNCAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDIzMTUgMDAwMDAgbiAKMDAwMDAwMzQwNCAwMDAwMCBuIAowMDAwMDAzMTk2IDAwMDAwIG4gCjAwMDAwMDI4NzMgMDAwMDAgbiAKMDAwMDAwNDQ1NyAwMDAwMCBuIAowMDAwMDAyMzM2IDAwMDAwIG4gCjAwMDAwMDI2MjIgMDAwMDAgbiAKMDAwMDAwODA0OCAwMDAwMCBuIAowMDAwMDA3ODQ4IDAwMDAwIG4gCjAwMDAwMDc0NjUgMDAwMDAgbiAKMDAwMDAwOTEwMSAwMDAwMCBuIAowMDAwMDA0NDk5IDAwMDAwIG4gCjAwMDAwMDQ5NjQgMDAwMDAgbiAKMDAwMDAwNTI4NCAwMDAwMCBuIAowMDAwMDA1NDQ2IDAwMDAwIG4gCjAwMDAwMDU2MTYgMDAwMDAgbiAKMDAwMDAwNTc2OCAwMDAwMCBuIAowMDAwMDA1OTg4IDAwMDAwIG4gCjAwMDAwMDYyMTAgMDAwMDAgbiAKMDAwMDAwNjMzMSAwMDAwMCBuIAowMDAwMDA2NDcxIDAwMDAwIG4gCjAwMDAwMDY4NjEgMDAwMDAgbiAKMDAwMDAwNzE4MiAwMDAwMCBuIAowMDAwMDA5NTY4IDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzQgMCBSIC9Sb290IDEgMCBSIC9TaXplIDM1ID4+CnN0YXJ0eHJlZgo5NzIyCiUlRU9GCg==\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sympy as sym\n", "%matplotlib inline\n", "sym.init_printing()\n", "\n", "t = sym.symbols('t', real=True)\n", "c = 5\n", "\n", "h = 1/(2*sym.pi) * sym.sinc((t-c)/2)**2\n", "sym.plot(h, (t, -5, 15), xlabel='$t$', ylabel='$h(t)$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "The linear-phase system with transfer function\n", "\n", "\\begin{equation}\n", "H(j \\omega) = \\text{rect}(\\omega - \\frac{1}{2}) \\cdot e^{-j c \\omega}\n", "\\end{equation}\n", "\n", "is investigated in this exercise.\n", "\n", "* Is the system real-valued?\n", "* Derive the impulse response $h(t)$ of the linear-phase system. Is the system causal? Is it stable in the BIBO sennse?\n", "* Do the above derived symmetries hold for the impulse response?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Minimum-Phase System\n", "\n", "For a given magnitude response $|H(j \\omega)|$ often the realization which has the minimum possible group delay $t_g(\\omega)$ is desired. The group delay quantifies the frequency dependent delay a system introduces to a signal. For many applications this delay should be as small as possible. A [causal and stable system](causality_stability.ipynb) with rational transfer function $H(s)$ is minimum-phase iff it has no zeros and poles in the right $s$-half-plane. Such a system is termed [*minimum-phase system*](https://en.wikipedia.org/wiki/Minimum_phase). It has the minimum possible group delay for a given magnitude response.\n", "\n", "In order to proof this, the dependence of the magnitude response $|H(j \\omega)|$ and phase $\\varphi_\\text{H}(j \\omega)$ on the locations of the poles and zeros of $H(s)$ is analyzed. It is assumed in the following that the poles of the system are located in the left $s$-half-plane, hence that the system is stable. The magnitude response of the system can then be written as\n", "\n", "\\begin{equation}\n", "|H(j \\omega)| = |K| \\cdot \\frac{\\prod_{\\mu=0}^{Q} | j \\omega - s_{0 \\mu} |}{\\prod_{\\nu=0}^{P} | j \\omega - s_{\\infty \\nu}|}\n", "= |K| \\cdot \\frac{\\prod_{\\mu=0}^{Q} \\sqrt{\\Re \\{ s_{0 \\mu} \\}^2 + (\\omega - \\Im \\{ s_{0 \\mu} \\} )^2 }}{\\prod_{\\nu=0}^{P} \\sqrt{\\Re \\{ s_{\\infty \\nu} \\}^2 + (\\omega - \\Im \\{ s_{\\infty \\nu} \\} )^2 }}\n", "\\end{equation}\n", "\n", "where $s_{0 \\mu}$ and $s_{\\infty \\nu}$ denote the $\\mu$-th zero and $\\nu$-th pole of $H(s)$, and $Q$ and $P$ the total number of zeros and poles, respectively. The magnitude response for a given frequency $\\omega$ is determined by the relative distances of the poles and zeros to the point $s = j \\omega$ on the imaginary axis. Mirroring the zeros at the imaginary axis does not change the magnitude response. This is due to the fact that $| j \\omega - s_{0 \\mu} | = | j \\omega + s^*_{0 \\mu} |$ holds since only the sign of the real part inside the magnitude changes.\n", "\n", "However, the group delay is different for zeros in the left and right $s$-half-plane. In the [foundations of Bode plots](../systems_spectral_domain/bode_plot.ipynb#Bode-Plots) it has been shown that the phase $\\varphi_\\text{H}(j \\omega)$ of a rational transfer function $H(s)$ can be written as\n", "\n", "\\begin{equation}\n", "\\varphi_H(j \\omega) = \\sum_{\\mu=0}^{Q} \\arg (j \\omega - s_{0 \\mu}) - \\sum_{\\nu=0}^{P} \\arg (j \\omega - s_{\\infty \\nu})\n", "\\end{equation}\n", "\n", "Since the contributions of the individual zeros are superimposed, let's first look at the contribution of a single zero. The group delay for a single zero $s_0 = \\Re \\{ s_0 \\} + j \\Im \\{ s_0 \\}$ can be derived as\n", "\n", "\\begin{equation}\n", "t_g(\\omega) = - \\frac{d}{d \\omega} \\arg (j \\omega - s_0) =\n", "\\frac{\\Re \\{ s_0 \\}}{(\\omega - \\Im \\{ s_0 \\})^2 + \\Re \\{s_0\\}} =\n", "\\frac{\\Re \\{ s_0 \\}}{\\omega^2 - 2 \\omega \\Im \\{ s_0 \\} + |s_0|^2}\n", "\\end{equation}\n", "\n", "For a given magnitude response, the denominator is invariant to a mirroring of the zero at the imaginary axis. However, the numerator $\\Re \\{ s_0 \\} < 0$ for a zero in the left $s$-half-plane and $\\Re \\{ s_0 \\} > 0$ for a zero in the right $s$-half-plane. Hence, the group delay for the zero in the left $s$-half-plane is always smaller than for its mirror-imaged zero in the right $s$-half-plane. Minimizing the group delay for each zero minimizes the overall group delay.\n", "\n", "A system where zeros are located in the left and right $s$-half-plane is called *non-minimum-phase system* or *mixed-phase system*. A system where all zeros are located in the right $s$-half-plane is called *maximum-phase system*." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "A stable real-valued minimum-phase system (MPS) with the following transfer function is investigated\n", "\n", "\\begin{equation}\n", "H_\\text{MPS}(j \\omega) = \\frac{(j \\omega - s_0)(j \\omega - s_0^*)}{(j \\omega - s_\\infty)^2}\n", "\\end{equation}\n", "\n", "The system has a real-valued pole $s_\\infty$ of order two, and a pair of complex conjugate zeros $s_0$ and $s_0^*$. The corresponding non-minimum-phase system (NMPS) with equal magnitude response $|H_\\text{MPS}(j \\omega)| = |H_\\text{NMPS}(j \\omega)|$ is yielded by mirroring the zeros at the imaginary axis\n", "\n", "\\begin{equation}\n", "H_\\text{NMPS}(j \\omega) = \\frac{(j \\omega + s_0^*)(j \\omega + s_0)}{(j \\omega - s_\\infty)^2}\n", "\\end{equation}\n", "\n", "The magnitude response and group delay for both systems are computed and plotted for $s_\\infty = -2$ and $s_0 = - 1 + j$. First the transfer functions are defined and the group delays are computed" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "w = sym.symbols('omega', real=True)\n", "jw = sym.I * w\n", "s_0 = - 1 + sym.I\n", "s_inf = -2\n", "\n", "H_MPS = (jw - s_0)*(jw - sym.conjugate(s_0))/(jw - s_inf)**2\n", "H_NMPS = (jw + sym.conjugate(s_0))*(jw + s_0)/(jw - s_inf)**2\n", "\n", "tg_MPS = - sym.diff(sym.arg(H_MPS), w)\n", "tg_NMPS = - sym.diff(sym.arg(H_NMPS), w)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The magnitude response $|H_\\text{MPS}(j \\omega)|$ of the MPS is illustrated by the green line and the magnitude response $|H_\\text{NMPS}(j \\omega)|$ of the NMPS by the red line, respectively. Note that both overlap." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjggNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjE3IDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTcgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwOAo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTk1IDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4Mzgg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IDAgPj4KZW5kb2JqCjE5IDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIyIDAgb2JqCjw8IC9iYXIgMjMgMCBSIC9laWdodCAyNCAwIFIgL2ZpdmUgMjUgMCBSIC9mb3VyIDI2IDAgUiAvcGFyZW5sZWZ0IDI4IDAgUgovcGFyZW5yaWdodCAyOSAwIFIgL3BlcmlvZCAzMCAwIFIgL3NldmVuIDMxIDAgUiAvc2l4IDMyIDAgUiAvdHdvIDMzIDAgUgovemVybyAzNCAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIxIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLU9ibGlxdWUtb21lZ2EgMTggMCBSIC9EZWphVnVTYW5zLW1pbnVzIDI3IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMzUgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDYwNTA5MjEyNyswMicwMCcpCi9DcmVhdG9yIChtYXRwbG90bGliIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAobWF0cGxvdGxpYiBwZGYgYmFja2VuZCAzLjAuMykgPj4KZW5kb2JqCnhyZWYKMCAzNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAxMDUwNiAwMDAwMCBuIAowMDAwMDEwMjQzIDAwMDAwIG4gCjAwMDAwMTAyODYgMDAwMDAgbiAKMDAwMDAxMDM4NSAwMDAwMCBuIAowMDAwMDEwNDA2IDAwMDAwIG4gCjAwMDAwMTA0MjcgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzkyIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMzEzNyAwMDAwMCBuIAowMDAwMDA0Mzg4IDAwMDAwIG4gCjAwMDAwMDQxODAgMDAwMDAgbiAKMDAwMDAwMzg1OCAwMDAwMCBuIAowMDAwMDA1NDQxIDAwMDAwIG4gCjAwMDAwMDMxNTggMDAwMDAgbiAKMDAwMDAwMzMxOCAwMDAwMCBuIAowMDAwMDAzNTQzIDAwMDAwIG4gCjAwMDAwMDkwMTMgMDAwMDAgbiAKMDAwMDAwODgxMyAwMDAwMCBuIAowMDAwMDA4NDIzIDAwMDAwIG4gCjAwMDAwMTAwNjYgMDAwMDAgbiAKMDAwMDAwNTQ4MyAwMDAwMCBuIAowMDAwMDA1NjA5IDAwMDAwIG4gCjAwMDAwMDYwNzQgMDAwMDAgbiAKMDAwMDAwNjM5NCAwMDAwMCBuIAowMDAwMDA2NTU2IDAwMDAwIG4gCjAwMDAwMDY3MjYgMDAwMDAgbiAKMDAwMDAwNjk0NiAwMDAwMCBuIAowMDAwMDA3MTY4IDAwMDAwIG4gCjAwMDAwMDcyODkgMDAwMDAgbiAKMDAwMDAwNzQyOSAwMDAwMCBuIAowMDAwMDA3ODE5IDAwMDAwIG4gCjAwMDAwMDgxNDAgMDAwMDAgbiAKMDAwMDAxMDU2NiAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDM1IDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSAzNiA+PgpzdGFydHhyZWYKMTA3MjAKJSVFT0YK\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "p1 = sym.plot(sym.Abs(H_MPS), (w, -5, 5), line_color='g', xlabel='$\\omega$', ylabel='$|H(j \\omega)|$', show=False)\n", "p2 = sym.plot(sym.Abs(H_NMPS), (w, -5, 5), line_color='r', show=False)\n", "p1.extend(p2)\n", "p1.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The same color scheme is used for the group delay of both systems" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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bVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUg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bGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTkgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjIgMCBvYmoKPDwgL2ZpdmUgMjMgMCBSIC9mb3VyIDI0IDAgUiAvb25lIDI2IDAgUiAvcGFyZW5sZWZ0IDI3IDAgUgovcGFyZW5yaWdodCAyOCAwIFIgL3BlcmlvZCAyOSAwIFIgL3R3byAzMCAwIFIgL3plcm8gMzEgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMSAwIFIgL0YyIDE0IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRGVqYVZ1U2Fucy1PYmxpcXVlLW9tZWdhIDE3IDAgUiAvRGVqYVZ1U2Fucy1taW51cyAyNSAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjMyIDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA2MDUwOTIxMjgrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzMKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTA1MzEgMDAwMDAgbiAKMDAwMDAxMDI2OCAwMDAwMCBuIAowMDAwMDEwMzExIDAwMDAwIG4gCjAwMDAwMTA0MTAgMDAwMDAgbiAKMDAwMDAxMDQzMSAwMDAwMCBuIAowMDAwMDEwNDUyIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM5MiAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDM4NTggMDAwMDAgbiAKMDAwMDAwNTQ0OCAwMDAwMCBuIAowMDAwMDA1MjQwIDAwMDAwIG4gCjAwMDAwMDQ5MTcgMDAwMDAgbiAKMDAwMDAwNjUwMSAwMDAwMCBuIAowMDAwMDAzODc5IDAwMDAwIG4gCjAwMDAwMDQzNTEgMDAwMDAgbiAKMDAwMDAwNDY2NiAwMDAwMCBuIAowMDAwMDA5MDc4IDAwMDAwIG4gCjAwMDAwMDg4NzggMDAwMDAgbiAKMDAwMDAwODUxNCAwMDAwMCBuIAowMDAwMDEwMTMxIDAwMDAwIG4gCjAwMDAwMDY1NDMgMDAwMDAgbiAKMDAwMDAwNjg2MyAwMDAwMCBuIAowMDAwMDA3MDI1IDAwMDAwIG4gCjAwMDAwMDcxOTUgMDAwMDAgbiAKMDAwMDAwNzM0NyAwMDAwMCBuIAowMDAwMDA3NTY3IDAwMDAwIG4gCjAwMDAwMDc3ODkgMDAwMDAgbiAKMDAwMDAwNzkxMCAwMDAwMCBuIAowMDAwMDA4MjMxIDAwMDAwIG4gCjAwMDAwMTA1OTEgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzMiAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzMgPj4Kc3RhcnR4cmVmCjEwNzQ1CiUlRU9GCg==\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "p1 = sym.plot(tg_MPS, (w, -5, 5), line_color='g', xlabel='$\\omega$', ylabel='$t_g(\\omega)$', show=False)\n", "p2 = sym.plot(tg_NMPS, (w, -5, 5), line_color='r', show=False)\n", "p1.extend(p2)\n", "p1.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Add a second pair of complex conjugate zeros and a pair of complex conjugate poles to above MPS.\n", "* For your MPS system derive the transfer function $H(j \\omega)$ of the corresponding maximum-phase and one mixed-phase system.\n", "* Compute the group delays for all three systems.\n", "* In what range is the group delay of the mixed-phase system located with respect to the minimum- and maximum-phase system?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### All-Pass\n", "\n", "An [all-pass](https://en.wikipedia.org/wiki/All-pass_filter) is a system with constant magnitude response $|H(j \\omega)| = H_0$ but frequency dependent phase $\\varphi_\\text{H}(j \\omega)$. It allows to modify the phase of a signal without modifying its magnitude. The [distortionless system](#Distortionless-System) is a special case of an all-pass with $\\varphi_\\text{H}(j \\omega) = - \\omega \\tau$. A stable system with rational transfer function $H(s)$ is an causal all-pass iff for each pole in the left $s$-half-plane there exists a zero in the right $s$-half-plane which is mirrored at the imaginary axis $\\Re \\{ s \\} = 0$.\n", "\n", "The magnitude response $|H(j \\omega)|$ of a system $H(s)$ with respect to its poles and zeros has already been derived before as \n", "\n", "\\begin{equation}\n", "|H(j \\omega)| = |K| \\cdot \\frac{\\prod_{\\mu=0}^{Q} | j \\omega - s_{0 \\mu} |}{\\prod_{\\nu=0}^{P} | j \\omega - s_{\\infty \\nu}|}\n", "\\end{equation}\n", "\n", "For a pole $s_{\\infty \\mu}$ and its mirror-imaged zero $s_{0 \\nu} = - s_{\\infty \\mu}^*$ the following holds\n", "\n", "\\begin{equation}\n", "|j \\omega - s_{\\infty \\mu}| = |j \\omega - s_{0 \\nu}|\n", "\\end{equation}\n", "\n", "since only the sign of the real part of the mirror-imaged zero changes. Introducing this result into $|H(j \\omega)|$ above for all pole/zero pairs yields that the magnitude response of an all-pass is constant." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example**\n", "\n", "The properties of a stable real-valued 2nd-order all-pass with transfer function\n", "\n", "\\begin{equation}\n", "H(j \\omega) = \\frac{(j \\omega - s_0)(j \\omega - s_0^*)}{(j \\omega - s_\\infty)(j \\omega - s_\\infty^*)}\n", "\\end{equation}\n", "\n", "are investigated. The pole is chosen as $s_\\infty = -1 + j$, and the zero due to the required symmetry as $s_0 = - s_\\infty^*$. First the transfer function is defined" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{\\left(i \\omega - 1 - i\\right) \\left(i \\omega - 1 + i\\right)}{\\left(i \\omega + 1 - i\\right) \\left(i \\omega + 1 + i\\right)}$" ], "text/plain": [ "(ⅈ⋅ω - 1 - ⅈ)⋅(ⅈ⋅ω - 1 + ⅈ)\n", "───────────────────────────\n", "(ⅈ⋅ω + 1 - ⅈ)⋅(ⅈ⋅ω + 1 + ⅈ)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s_inf = -1 + sym.I\n", "s_0 = - sym.conjugate(s_inf)\n", "\n", "H = (jw - s_0)*(jw - sym.conjugate(s_0)) / \\\n", " ((jw - s_inf)*(jw - sym.conjugate(s_inf)))\n", "H" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The magnitude response $|H(j \\omega)|$ of the all-pass is plotted" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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ZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEw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bmRzdHJlYW0KZW5kb2JqCjIxIDAgb2JqCjw8IC9CYXNlRm9udCAvRGVqYVZ1U2FucyAvQ2hhclByb2NzIDIyIDAgUgovRW5jb2RpbmcgPDwKL0RpZmZlcmVuY2VzIFsgNDAgL3BhcmVubGVmdCAvcGFyZW5yaWdodCA0NiAvcGVyaW9kIDQ4IC96ZXJvIC9vbmUgL3R3byA1MiAvZm91ciA1NgovZWlnaHQgMTI0IC9iYXIgXQovVHlwZSAvRW5jb2RpbmcgPj4KL0ZpcnN0Q2hhciAwIC9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnREZXNjcmlwdG9yIDIwIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDE5IDAgUiA+PgplbmRvYmoKMjAgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDMyCi9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnROYW1lIC9EZWphVnVTYW5zIC9JdGFsaWNBbmdsZSAwCi9NYXhXaWR0aCAxMzQyIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxOSAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyMiAwIG9iago8PCAvYmFyIDIzIDAgUiAvZWlnaHQgMjQgMCBSIC9mb3VyIDI1IDAgUiAvb25lIDI3IDAgUiAvcGFyZW5sZWZ0IDI4IDAgUgovcGFyZW5yaWdodCAyOSAwIFIgL3BlcmlvZCAzMCAwIFIgL3R3byAzMSAwIFIgL3plcm8gMzIgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMSAwIFIgL0YyIDE0IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRGVqYVZ1U2Fucy1PYmxpcXVlLW9tZWdhIDE4IDAgUiAvRGVqYVZ1U2Fucy1taW51cyAyNiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjMzIDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA2MDUwOTIxMjgrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDgzNTkgMDAwMDAgbiAKMDAwMDAwODA5NiAwMDAwMCBuIAowMDAwMDA4MTM5IDAwMDAwIG4gCjAwMDAwMDgyMzggMDAwMDAgbiAKMDAwMDAwODI1OSAwMDAwMCBuIAowMDAwMDA4MjgwIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM5NCAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDE3MjggMDAwMDAgbiAKMDAwMDAwMjk3OSAwMDAwMCBuIAowMDAwMDAyNzcxIDAwMDAwIG4gCjAwMDAwMDI0NDkgMDAwMDAgbiAKMDAwMDAwNDAzMiAwMDAwMCBuIAowMDAwMDAxNzQ5IDAwMDAwIG4gCjAwMDAwMDE5MDkgMDAwMDAgbiAKMDAwMDAwMjEzNCAwMDAwMCBuIAowMDAwMDA2ODkzIDAwMDAwIG4gCjAwMDAwMDY2OTMgMDAwMDAgbiAKMDAwMDAwNjMxNiAwMDAwMCBuIAowMDAwMDA3OTQ2IDAwMDAwIG4gCjAwMDAwMDQwNzQgMDAwMDAgbiAKMDAwMDAwNDIwMCAwMDAwMCBuIAowMDAwMDA0NjY1IDAwMDAwIG4gCjAwMDAwMDQ4MjcgMDAwMDAgbiAKMDAwMDAwNDk5NyAwMDAwMCBuIAowMDAwMDA1MTQ5IDAwMDAwIG4gCjAwMDAwMDUzNjkgMDAwMDAgbiAKMDAwMDAwNTU5MSAwMDAwMCBuIAowMDAwMDA1NzEyIDAwMDAwIG4gCjAwMDAwMDYwMzMgMDAwMDAgbiAKMDAwMDAwODQxOSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDMzIDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSAzNCA+PgpzdGFydHhyZWYKODU3MwolJUVPRgo=\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sym.plot(sym.Abs(H), (w, -5, 5), xlabel='$\\omega$', ylabel='$|H(j \\omega)|$', ylim=(0, 1.2));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "as well as its phase $\\varphi_\\text{H}(j \\omega)$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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ZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEw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b3IgMjAgMCBSCi9Gb250TWF0cml4IFsgMC4wMDEgMCAwIDAuMDAxIDAgMCBdIC9MYXN0Q2hhciAyNTUgL05hbWUgL0RlamFWdVNhbnMKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTkgMCBSID4+CmVuZG9iagoyMCAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgMzIKL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udE5hbWUgL0RlamFWdVNhbnMgL0l0YWxpY0FuZ2xlIDAKL01heFdpZHRoIDEzNDIgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjE5IDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIyIDAgb2JqCjw8IC9mb3VyIDIzIDAgUiAvb25lIDI1IDAgUiAvcGFyZW5sZWZ0IDI2IDAgUiAvcGFyZW5yaWdodCAyNyAwIFIKL3RocmVlIDI4IDAgUiAvdHdvIDI5IDAgUiAvemVybyAzMCAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIxIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLU9ibGlxdWUtb21lZ2EgMTcgMCBSIC9EZWphVnVTYW5zLU9ibGlxdWUtcGhpIDE4IDAgUgovRGVqYVZ1U2Fucy1taW51cyAyNCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjMxIDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA2MDUwOTIxMjkrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzIKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDkwMDEgMDAwMDAgbiAKMDAwMDAwODcwNyAwMDAwMCBuIAowMDAwMDA4NzUwIDAwMDAwIG4gCjAwMDAwMDg4NDkgMDAwMDAgbiAKMDAwMDAwODg3MCAwMDAwMCBuIAowMDAwMDA4ODkxIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM5MiAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDI0NTQgMDAwMDAgbiAKMDAwMDAwMzk1NCAwMDAwMCBuIAowMDAwMDAzNzQ2IDAwMDAwIG4gCjAwMDAwMDM0MzAgMDAwMDAgbiAKMDAwMDAwNTAwNyAwMDAwMCBuIAowMDAwMDAyNDc1IDAwMDAwIG4gCjAwMDAwMDI3MDAgMDAwMDAgbiAKMDAwMDAwMzAxNSAwMDAwMCBuIAowMDAwMDA3NTMxIDAwMDAwIG4gCjAwMDAwMDczMzEgMDAwMDAgbiAKMDAwMDAwNjk4MCAwMDAwMCBuIAowMDAwMDA4NTg0IDAwMDAwIG4gCjAwMDAwMDUwMzkgMDAwMDAgbiAKMDAwMDAwNTIwMSAwMDAwMCBuIAowMDAwMDA1MzcxIDAwMDAwIG4gCjAwMDAwMDU1MjMgMDAwMDAgbiAKMDAwMDAwNTc0MyAwMDAwMCBuIAowMDAwMDA1OTY1IDAwMDAwIG4gCjAwMDAwMDYzNzYgMDAwMDAgbiAKMDAwMDAwNjY5NyAwMDAwMCBuIAowMDAwMDA5MDYxIDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzEgMCBSIC9Sb290IDEgMCBSIC9TaXplIDMyID4+CnN0YXJ0eHJlZgo5MjE1CiUlRU9GCg==\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" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sym.plot(sym.arg(H), (w, -5, 5), xlabel='$\\omega$', ylabel=r'$\\varphi(j \\omega)$');" ] }, { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "**Copyright**\n", "\n", "This notebook is provided as [Open Educational Resource](https://en.wikipedia.org/wiki/Open_educational_resources). Feel free to use the notebook for your own purposes. The text is licensed under [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/), the code of the IPython examples under the [MIT license](https://opensource.org/licenses/MIT). Please attribute the work as follows: *Sascha Spors, Continuous- and Discrete-Time Signals and Systems - Theory and Computational Examples*." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 1 }