{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Random Signals and LTI-Systems\n", "\n", "*This jupyter notebook is part of a [collection of notebooks](../index.ipynb) on various topics of Digital Signal Processing. Please direct questions and suggestions to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Wiener Filter\n", "\n", "The [Wiener filter](https://en.wikipedia.org/wiki/Wiener_filter), named after [*Norbert Wiener*](https://en.wikipedia.org/wiki/Norbert_Wiener), aims at estimating an unknown random signal by filtering a noisy distorted observation of the signal. It has a wide range of applications in signal processing. For instance, noise reduction, system identification, deconvolution and signal detection. The Wiener filter is frequently used as basic building block for algorithms that denoise audio signals, like speech, or remove noise from a image." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Signal Model\n", "\n", "The following signal model is underlying the Wiener filter\n", "\n", "![Illustration: Signal model for the Wiener filter](model_wiener_filter.png)\n", "\n", "The random signal $s[k]$ is subject to distortion by the linear time-invariant (LTI) system $G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ and additive noise $n[k]$, resulting in the observed signal $x[k] = s[k] * g[k] + n[k]$. The additive noise $n[k]$ is assumed to be uncorrelated from $s[k]$. It is furthermore assumed that all random signals are wide-sense stationary (WSS). This distortion model holds for many practical problems, like e.g. the measurement of a physical quantity by a sensor.\n", "\n", "The basic concept of the Wiener filter is to apply the LTI system $H(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ to the observed signal $x[k]$ such that the output signal $y[k] = x[k] * h[k]$ matches $s[k]$ as close as possible. In order to quantify the deviation between $y[k]$ and $s[k]$, the error signal\n", "\n", "\\begin{equation}\n", "e[k] = y[k] - s[k]\n", "\\end{equation}\n", "\n", "is introduced. The error $e[k]$ equals zero, if the output signal $y[k]$ perfectly matches $s[k]$. In general, this goal cannot be achieved in a strict sense. As alternative one could aim at minimizing the linear average of the error $e[k]$. However, this quantity is not very well suited for optimization since it is signed. Instead, the quadratic average of the error $e[k]$ is used in the Wiener filter and other techniques. This measure is known as [*mean squared error*](https://en.wikipedia.org/wiki/Mean_squared_error) (MSE). It is defined as\n", "\n", "\\begin{equation}\n", "E \\{ |e[k]|^2 \\} = \\frac{1}{2 \\pi} \\int\\limits_{-\\pi}^{\\pi} \\Phi_{ee}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) \\,\\mathrm{d}\\Omega = \\varphi_{ee}[\\kappa] \\Big\\vert_{\\kappa = 0}\n", "\\end{equation}\n", "\n", "the equalities are deduced from the properties of the power spectral density (PSD) and the auto-correlation function (ACF). Above equation is referred to as [*cost function*](https://en.wikipedia.org/wiki/Loss_function). We aim at minimizing the cost function, hence minimizing the MSE between the original signal $s[k]$ and its estimate $y[k]$. The solution is referred to as [minimum mean squared error](https://en.wikipedia.org/wiki/Minimum_mean_square_error) (MMSE) solution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Transfer Function of the Wiener Filter\n", "\n", "At first, the Wiener filter shall only have access to the observed signal $x[k]$ and selected statistical measures. It is assumed that the cross-power spectral density $\\Phi_{xs}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ between the observed signal $x[k]$ and the original signal $s[k]$, and the PSD of the observed signal $\\Phi_{xx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ are known. This knowledge can either be gained by estimating both from measurements taken at an actual system or by using suitable statistical models.\n", "\n", "The optimal filter is found by minimizing the MSE $E \\{ |e[k]|^2 \\}$ with respect to the transfer function $H(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$. The solution of this optimization problem goes beyond the scope of this notebook and can be found in the literature, e.g. [[Girod et. al](../index.ipynb#Literature)]. The transfer function of the Wiener filter is given as\n", "\n", "\\begin{equation}\n", "H(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\frac{\\Phi_{sx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}{\\Phi_{xx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})} = \\frac{\\Phi_{xs}(\\mathrm{e}^{\\,-\\mathrm{j}\\,\\Omega})}{\\Phi_{xx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}\n", "\\end{equation}\n", "\n", "for $\\Phi_{xx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) \\neq 0$.\n", "No knowledge on the actual distortion process is required besides the assumption of an LTI system and additive noise. Only the PSDs $\\Phi_{sx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ and $\\Phi_{xx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ have to be known in order to estimate $s[k]$ from $x[k]$ in the MMSE sense. Care has to be taken that the filter $H(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ is causal and stable in practical applications." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example - Denoising of an Deterministic Signal**\n", "\n", "The following example considers the estimation of the original signal from a distorted observation. It is assumed that the original signal is a deterministic signal $s[k] = \\sin[\\Omega_0\\,k]$ which is distorted by an LTI system and additive wide-sense ergodic normal distributed zero-mean white noise with PSD $N_0 = 0.1$. The PSDs $\\Phi_{sx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ and $\\Phi_{xx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ are estimated from $s[k]$ and $x[k]$ using the [Welch technique](../spectral_estimation_random_signals/welch_method.ipynb). The Wiener filter is applied to the observation $x[k]$ in order to compute the estimate $y[k]$ of $s[k]$. Note that the discrete signals have been illustrated by continuous lines for ease of illustration." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNTAgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyOCA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTcgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxNyA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA4CjYzMCA2MTMg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b250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnREZXNjcmlwdG9yIDIyIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDIxIDAgUiA+PgplbmRvYmoKMjIgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDMyCi9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnROYW1lIC9EZWphVnVTYW5zIC9JdGFsaWNBbmdsZSAwCi9NYXhXaWR0aCAxMzQyIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoyMSAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyNCAwIG9iago8PCAvQiAyNSAwIFIgL0MgMjYgMCBSIC9EIDI3IDAgUiAvUCAyOSAwIFIgL1MgMzEgMCBSIC9UIDMyIDAgUiAvVyAzMyAwIFIKL2EgMzQgMCBSIC9iYXIgMzUgMCBSIC9jIDM2IDAgUiAvZCAzNyAwIFIgL2UgMzggMCBSIC9laWdodCAzOSAwIFIgL2YgNDAgMCBSCi9maXZlIDQxIDAgUiAvZm91ciA0MiAwIFIgL2kgNDMgMCBSIC9sIDQ0IDAgUiAvbiA0NiAwIFIgL28gNDcgMCBSCi9vbmUgNDggMCBSIC9wYXJlbmxlZnQgNDkgMCBSIC9wYXJlbnJpZ2h0IDUwIDAgUiAvcGVyaW9kIDUxIDAgUiAvciA1MiAwIFIKL3MgNTMgMCBSIC9zaXggNTQgMCBSIC9zcGFjZSA1NSAwIFIgL3QgNTYgMCBSIC90aHJlZSA1NyAwIFIgL3R3byA1OCAwIFIKL3UgNTkgMCBSIC96ZXJvIDYwIDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMjMgMCBSIC9GMiAxNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EzIDw8IC9DQSAwLjggL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMC44ID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9GMS1EZWphVnVTYW5zLU9tZWdhIDI4IDAgUiAvRjEtRGVqYVZ1U2Fucy1QaGkgMzAgMCBSCi9GMS1EZWphVnVTYW5zLW1pbnVzIDQ1IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKNjEgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDIwMTIxNjE1MzU1OSswMicwMCcpCi9DcmVhdG9yIChNYXRwbG90bGliIHYzLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjMuMikgPj4KZW5kb2JqCnhyZWYKMCA2MgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAyMDE2MyAwMDAwMCBuIAowMDAwMDE5ODMzIDAwMDAwIG4gCjAwMDAwMTk4NzYgMDAwMDAgbiAKMDAwMDAyMDAxOCAwMDAwMCBuIAowMDAwMDIwMDM5IDAwMDAwIG4gCjAwMDAwMjAwNjAgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzkzIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwNTI2MSAwMDAwMCBuIAowMDAwMDA3MTgwIDAwMDAwIG4gCjAwMDAwMDY5NzIgMDAwMDAgbiAKMDAwMDAwNjYyOSAwMDAwMCBuIAowMDAwMDA4MjMzIDAwMDAwIG4gCjAwMDAwMDUyODIgMDAwMDAgbiAKMDAwMDAwNTQ0MiAwMDAwMCBuIAowMDAwMDA1ODQyIDAwMDAwIG4gCjAwMDAwMDYwNjcgMDAwMDAgbiAKMDAwMDAwNjQ2NSAwMDAwMCBuIAowMDAwMDE4Mzc3IDAwMDAwIG4gCjAwMDAwMTgxNzcgMDAwMDAgbiAKMDAwMDAxNzY4MSAwMDAwMCBuIAowMDAwMDE5NDMwIDAwMDAwIG4gCjAwMDAwMDgzMDUgMDAwMDAgbiAKMDAwMDAwODYzNyAwMDAwMCBuIAowMDAwMDA4OTQyIDAwMDAwIG4gCjAwMDAwMDkxNzUgMDAwMDAgbiAKMDAwMDAwOTU0NiAwMDAwMCBuIAowMDAwMDA5Nzg0IDAwMDAwIG4gCjAwMDAwMTAxNTYgMDAwMDAgbiAKMDAwMDAxMDU2NyAwMDAwMCBuIAowMDAwMDEwNzAzIDAwMDAwIG4gCjAwMDAwMTA4NjQgMDAwMDAgbiAKMDAwMDAxMTI0MSAwMDAwMCBuIAowMDAwMDExMzY3IDAwMDAwIG4gCjAwMDAwMTE2NzAgMDAwMDAgbiAKMDAwMDAxMTk3MCAwMDAwMCBuIAowMDAwMDEyMjg4IDAwMDAwIG4gCjAwMDAwMTI3NTMgMDAwMDAgbiAKMDAwMDAxMjk1OSAwMDAwMCBuIAowMDAwMDEzMjc5IDAwMDAwIG4gCjAwMDAwMTM0NDEgMDAwMDAgbiAKMDAwMDAxMzU4MSAwMDAwMCBuIAowMDAwMDEzNjk4IDAwMDAwIG4gCjAwMDAwMTM4NjggMDAwMDAgbiAKMDAwMDAxNDEwMiAwMDAwMCBuIAowMDAwMDE0Mzg5IDAwMDAwIG4gCjAwMDAwMTQ1NDEgMDAwMDAgbiAKMDAwMDAxNDc2MSAwMDAwMCBuIAowMDAwMDE0OTgzIDAwMDAwIG4gCjAwMDAwMTUxMDQgMDAwMDAgbiAKMDAwMDAxNTMzNCAwMDAwMCBuIAowMDAwMDE1NzM5IDAwMDAwIG4gCjAwMDAwMTYxMjkgMDAwMDAgbiAKMDAwMDAxNjIxOCAwMDAwMCBuIAowMDAwMDE2NDIyIDAwMDAwIG4gCjAwMDAwMTY4MzMgMDAwMDAgbiAKMDAwMDAxNzE1NCAwMDAwMCBuIAowMDAwMDE3Mzk4IDAwMDAwIG4gCjAwMDAwMjAyMjMgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyA2MSAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgNjIgPj4Kc3RhcnR4cmVmCjIwMzgwCiUlRU9GCg==\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2020-12-16T15:35:59.441999\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.3.2, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/pdf": "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NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNTAgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyOCA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTcgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxNyA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA4CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5OTUgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjE1IDAgb2JqCjw8IC9rIDE2IDAgUiAvcyAxNyAwIFIgL3ggMTggMCBSIC95IDE5IDAgUiA+PgplbmRvYmoKMjQgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzMzggPj4Kc3RyZWFtCnicNVJLkltBCNu/U+gCrmr+zXmcmtXk/tsI7KyggRYSkBY4yMRLDFGNcsUfeYLxOoG/6+Vp/D7ehdSCpyL9wLVpG+/HmjVRsDRiKcw+9v0oIcdT498Q6LlIE2ZkMnIgGYj7tT5/1ptMOfwGpGlz+ihJehAt2N0adnxZkEHSkxqW7OSHdS2wughNmBtrIhk5tTI1z8ee4TKeGCNB1SwgSZ+4TxWMSDMeO2cteZDheKoXL369jdcyj6mXVQUytgnmYDuZCacoIhC/oCS5ibto6iiOZsaa24WGkiL33T2cnPS6v5xEBV4J4SzWEo4ZesoyJzsNSqBq5QSYYb32hXGaNkq4U9PtXbGv32cmYdzmsLNSMg3OcXAvm8wRJHvdMWETHoeY9+4RjMS8+V1sEVy5zLkm04/9KNpIHxTX51xNma0o4R+q5IkV1/j//N7Pzz+QN32xCmVuZHN0cmVhbQplbmRvYmoKMjUgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzMDQgPj4Kc3RyZWFtCnicPZI7ksMwDEN7nYIXyIz4k+TzZCeV9/7tPjLJVoBJiQAoL3WZsqY8IGkmCf/R4eFiO+V32J7NzMC1RC8TyynPoSvE3EX5spmNurI6xarDMJ1b9Kici4ZNk5rnKksZtwuew7WJ55Z9xA83NKgHdY1Lwg3d1WhZCs1wdf87vUfZdzU8F5tU6tQXjxdRFeb5IU+ih+lK4nw8KCFcezBGFhLkU9FAjrNcrfJeQvYOtxqywkFqSeezJzzYdXpPLm4XzRAPZLlU+E5R7O3QM77sSgk9ErbhWO59O5qx6RqbOOx+70bWyoyuaCF+yFcn6yVg3FMmRRJkTrZYbovVnu6hKKZzhnMZIOrZioZS5mJXq38MO28sL9ksyJTMCzJGp02eOHjIfo2a9HmV53j9AWzzczsKZW5kc3RyZWFtCmVuZG9iagoyNiAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDIzNyA+PgpzdHJlYW0KeJxFUUlyBCEMu/cr9IGpwivwnk7NqfP/aywzSU4WYGsxaYGBLXiJIdbAzIEvuXxN6DR8NzLb8DrZHnBPuC7cl8uCZ8KWwFdUl3e9L13ZSH13h6p+ZmR7s0jNkJWVOvVCNCbYIRE9IzLJVixzg6QprVLlvihbgC7qlbZOO42SoCMU4W+UI+HpFUp2TWwaq9Q6oKEIy7YuiDqZJKJ2YXFq8ZYhIp91YzXH+ItOInbH4/6sMOtRJJLSZwfdcSajTZZdAzm5eaqwVio5iD5e0caE6nSqgWO817b0E2ngufZf4Qc+ff+PGPq53j/G7lwiCmVuZHN0cmVhbQplbmRvYmoKMjcgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA3MSA+PgpzdHJlYW0KeJwztjRQMFCwMFPQNTQ2VDCyNFYwNzNQSDHkAgqBWLlcMLEcMMvMEsQyNDdDYumaGUJlkVgg43K4YAbnwMzL4UoDAPG0FiMKZW5kc3RyZWFtCmVuZG9iagoyOCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDY3ID4+CnN0cmVhbQp4nDO2NFAwULA0V9A1NDZUMDYwUTA3M1BIMeSCMXPBLLBsDhdMHYRlBmIYGZogscyAxoEl4QyQGTlw03K40gDOgxXTCmVuZHN0cmVhbQplbmRvYmoKMjkgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyMjcgPj4Kc3RyZWFtCnicNU87sgMhDOs5hS6QGYxtYM+zmVQv92+fZLINEv5I8vRERyZe5sgIrNnxthYZiBn4FlPxrz3tw4TqPbiHCOXiQphhJJw167ibp+PFv13lM9bBuw2+YpYXBLYwk/WVxZnLdsFYGidxTrIbY9dEbGNd6+kU1hFMKAMhne0wJcgcFSl9sqOMOTpO5InnYqrFLr/vYX3BpjGiwhxXBU/QZFCWPe8moB0X9N/Vjd9JNIteAjKRYGGdJObOWU741WtHx1GLIjEnpBnkMhHSnK5iCqEJxTo7CioVBZfqc8rdPv9oXVtNCmVuZHN0cmVhbQplbmRvYmoKMzAgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyNDUgPj4Kc3RyZWFtCnicRVC7jUMxDOs9BRcIYP0se553SJXbvz1KRnCFIVo/kloSmIjASwyxlG/iR0ZBPQu/F4XiM8TPF4VBzoSkQJz1GRCZeIbaRm7odnDOvMMzjDkCF8VacKbTmfZc2OScBycQzm2U8YxCuklUFXFUn3FM8aqyz43XgaW1bLPTkewhjYRLSSUml35TKv+0KVsq6NpFE7BI5IGTTTThLD9DkmLMoJRR9zC1jvRxspFHddDJ2Zw5LZnZ7qftTHwPWCaZUeUpnecyPiep81xOfe6zHdHkoqVV+5z93pGW8iK126HV6VclUZmN1aeQuDz/jJ/x/gOOoFk+CmVuZHN0cmVhbQplbmRvYmoKMzEgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzOTIgPj4Kc3RyZWFtCnicPVJLbgUxCNvPKbhApfBNcp6p3u7df1ubzFSqCi8DtjGUlwypJT/qkogzTH71cl3iUfK9bGpn5iHuLjam+FhyX7qG2HLRmmKxTxzJL8i0VFihVt2jQ/GFKBMPAC3ggQXhvhz/8ReowdewhXLDe2QCYErUbkDGQ9EZSFlBEWH7kRXopFCvbOHvKCBX1KyFoXRiiA2WACm+qw2JmKjZoIeElZKqHdLxjKTwW8FdiWFQW1vbBHhm0BDZ3pGNETPt0RlxWRFrPz3po1EytVEZD01nfPHdMlLz0RXopNLI3cpDZ89CJ2Ak5kmY53Aj4Z7bQQsx9HGvlk9s95gpVpHwBTvKAQO9/d6Sjc974CyMXNvsTCfw0WmnHBOtvh5i/YM/bEubXMcrh0UUqLwoCH7XQRNxfFjF92SjRHe0AdYjE9VoJRAMEsLO7TDyeMZ52d4VtOb0RGijRB7UjhE9KLLF5ZwVsKf8rM2xHJ4PJntvtI+UzMyohBXUdnqots9jHdR3nvv6/AEuAKEZCmVuZHN0cmVhbQplbmRvYmoKMzIgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyNDcgPj4Kc3RyZWFtCnicTVG7bUQxDOvfFFzgAOtreZ4LUl32b0PJCJDCIKEvKaclFvbGSwzhB1sPvuSRVUN/Hj8x7DMsPcnk1D/muclUFL4VqpuYUBdi4f1oBLwWdC8iK8oH349lDHPO9+CjEJdgJjRgrG9JJhfVvDNkwomhjsNBm1QYd00ULK4VzTPI7VY3sjqzIGx4JRPixgBEBNkXkM1go4yxlZDFch6oCpIFWmDX6RtRi4IrlNYJdKLWxLrM4Kvn9nY3Qy/y4Ki6eH0M60uwwuileyx8rkIfzPRMO3dJI73wphMRZg8FUpmdkZU6PWJ9t0D/n2Ur+PvJz/P9CxUoXCoKZW5kc3RyZWFtCmVuZG9iagozMyAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDkwID4+CnN0cmVhbQp4nE2NQRLAIAgD77wiT1BE0P90etL/X6vUDr3ATgKJFkWC9DVqSzDuuDIVa1ApmJSXwFUwXAva7qLK/jJJTJ2G03u3A4Oy8XGD0kn79nF6AKv9egbdD9IcIlgKZW5kc3RyZWFtCmVuZG9iagozNCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDMzOCA+PgpzdHJlYW0KeJxFUktyxTAI2+cUXCAz5mfj87xOV+n9t5VwOt089AwICTI9ZUim3DaWZITkHPKlV2SI1ZCfRo5ExBDfKaHArvK5vJbEXMhuiUrxoR0/l6U3Ms2u0Kq3R6c2i0Y1KyPnIEOEelbozO5R22TD63Yh6TpTFodwLP9DBbKUdcoplARtQd/YI+hvFjwR3Aaz5nKzuUxu9b/uWwue1zpbsW0HQAmWc95gBgDEwwnaAMTc2t4WKSgfVbqKScKt8lwnO1C20Kp0vDeAGQcYOWDDkq0O12hvAMM+D/SiRsX2FaCoLCD+ztlmwd4xyUiwJ+YGTj1xOsWRcEk4xgJAiq3iFLrxHdjiLxeuiJrwCXU6ZU28wp7a4sdCkwjvUnEC8CIbbl0dRbVsT+cJtD8qkjNipB7E0QmR1JLOERSXBvXQGvu4iRmvjcTmnr7dP8I5n+v7Fxa4g+AKZW5kc3RyZWFtCmVuZG9iagozNSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDY4ID4+CnN0cmVhbQp4nDMyt1AwULA0ARKGFiYK5mYGCimGXEC+qYm5Qi4XSAzEygGzDIC0JZyCiFtCNEGUglgQpWYmZhBJOAMilwYAybQV5QplbmRzdHJlYW0KZW5kb2JqCjM2IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggNDUgPj4Kc3RyZWFtCnicMzK3UDBQsDQBEoYWJgrmZgYKKYZclhBWLhdMLAfMAtGWcAoingYAn30MtQplbmRzdHJlYW0KZW5kb2JqCjM3IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjU1ID4+CnN0cmVhbQp4nEWRS5IDIAhE956CI4D85DyZmlVy/+00mEw2dpeo/YRKI6YSLOcUeTD9yPLNZLbptRyrnY0CiiIUzOQq9FiB1Z0p4sy1RLX1sTJy3Okdg+IN566cVLK4UcY6qjoVOKbnyvqq7vy4LMq+I4cyBWzWOQ42cOW2YYwTo81Wd4f7RJCnk6mj4naQbPiDk8a+ytUVuE42++olGAeCfqEJTPJNoHWGQOPmKXpyCfbxcbvzQLC3vAmkbAjkyBCMDkG7Tq5/cev83v86w53n2gxXjnfxO0xru+MvMcmKuYBF7hTU8z0XresMHe/JmWNy031D51ywy91Bps/8H+v3D1CKZogKZW5kc3RyZWFtCmVuZG9iagozOCAwIG9iago8PCAvQkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzNwovU3VidHlwZSAvRm9ybSAvVHlwZSAvWE9iamVjdCA+PgpzdHJlYW0KeJzjMjQwUzA2NVXI5TI3NgKzcsAsI3MjIAski2BBZNMAAV8KCgplbmRzdHJlYW0KZW5kb2JqCjM5IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTYxID4+CnN0cmVhbQp4nEWQSxLDIAxD95xCR/BHBnyedLpK77+tIU2zgKexQAZ3JwSptQUT0QUvbUu6Cz5bCc7GeOg2bjUS5AR1gFak42iUUn25xWmVdPFoNnMrC60THWYOepSjGaAQOhXe7aLkcqbuzvlHcPVf9Uex7pzNxMBk5Q6EZvUp7nybHVFd3WR/0mNu1mt/FfaqsLSspeWE285dM6AE7qkc7f0FqXM6hAplbmRzdHJlYW0KZW5kb2JqCjQwIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjE0ID4+CnN0cmVhbQp4nD1QuxFDMQjrPQUL5M587TfPy6XL/m0knKRCNkISlJpMyZSHOsqSrClPHT5LYoe8h+VuZDYlKkUvk7Al99AK8X2J5hT33dWWs0M0l2g5fgszKqobHdNLNppwKhO6oNzDM/oNbXQDVocesVsg0KRg17YgcscPGAzBmROLIgxKTQb/rXL3UtzvPRxvooiUdPCu+eX0y88tvE49jkS6vfmKa3GmOgpEcEZq8op0YcWyyEOk1QQ1PQNrtQCu3nr5N2hHdBmA7BOJ4zSlHEP/1rjH6wOHilL0CmVuZHN0cmVhbQplbmRvYmoKNDEgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA4MCA+PgpzdHJlYW0KeJxFjLsNwDAIRHumYAR+JmafKJWzfxsgStxwT7p7uDoSMlPeYYaHBJ4MLIZT8QaZo2A1uEZSjZ3so7BuX3WB5npTq/X3BypPdnZxPc3LGfQKZW5kc3RyZWFtCmVuZG9iago0MiAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDQ5ID4+CnN0cmVhbQp4nDM2tFAwUDA0MAeSRoZAlpGJQoohF0gAxMzlggnmgFkGQBqiOAeuJocrDQDG6A0mCmVuZHN0cmVhbQplbmRvYmoKNDMgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNTcgPj4Kc3RyZWFtCnicRZC5EUMxCERzVUEJErAI6rHH0Xf/qRf5SrRvAC2HryVTqh8nIqbc12j0MHkOn00lVizYJraTGnIbFkFKMZh4TjGro7ehmYfU67ioqrh1ZpXTacvKxX/zaFczkz3CNeon8E3o+J88tKnoW6CvC5R9QLU4nUlQMX2vYoGjnHZ/IpwY4D4ZR5kpI3Fibgrs9xkAZr5XuMbjBd0BN3kKZW5kc3RyZWFtCmVuZG9iago0NCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDMzMiA+PgpzdHJlYW0KeJwtUjmOJDEMy/0KfmAA6/Lxnh5M1Pv/dElVBQWqbMs85HLDRCV+LJDbUWvi10ZmoMLwr6vMhe9I28g6iGvIRVzJlsJnRCzkMcQ8xILv2/gZHvmszMmzB8Yv2fcZVuypCctCxosztMMqjsMqyLFg6yKqe3hTpMOpJNjji/8+xXMXgha+I2jAL/nnqyN4vqRF2j1m27RbD5ZpR5UUloPtac7L5EvrLFfH4/kg2d4VO0JqV4CiMHfGeS6OMm1lRGthZ4OkxsX25tiPpQRd6MZlpDgC+ZkqwgNKmsxsoiD+yOkhpzIQpq7pSie3URV36slcs7m8nUkyW/dFis0UzuvCmfV3mDKrzTt5lhOlTkX4GXu2BA2d4+rZa5mFRrc5wSslfDZ2enLyvZpZD8mpSEgV07oKTqPIFEvYlviaiprS1Mvw35f3GX//ATPifAEKZW5kc3RyZWFtCmVuZG9iago0NSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDMxNyA+PgpzdHJlYW0KeJw1UktyQzEI279TcIHOmL99nnSyau6/rYQnK7AtQEIuL1nSS37UJdulw+RXH/clsUI+j+2azFLF9xazFM8tr0fPEbctCgRREz34MicVItTP1Og6eGGXPgOvEE4pFngHkwAGr+FfeJROg8A7GzLeEZORGhAkwZpLi01IlD1J/Cvl9aSVNHR+Jitz+XtyqRRqo8kIFSBYudgHpCspHiQTPYlIsnK9N1aI3pBXksdnJSYZEN0msU20wOPclbSEmZhCBeZYgNV0s7r6HExY47CE8SphFtWDTZ41qYRmtI5jZMN498JMiYWGwxJQm32VCaqXj9PcCSOmR0127cKyWzbvIUSj+TMslMHHKCQBh05jJArSsIARgTm9sIq95gs5FsCIZZ2aLAxtaCW7eo6FwNCcs6Vhxtee1/P+B0Vbe6MKZW5kc3RyZWFtCmVuZG9iago0NiAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDE3ID4+CnN0cmVhbQp4nDM2tFAwgMMUQy4AGpQC7AplbmRzdHJlYW0KZW5kb2JqCjQ3IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTMxID4+CnN0cmVhbQp4nEWPyw0EIQxD71ThEvIZPqmH1Z7Y/q/rMJpBQvhBIjvxMAis8/I20MXw0aLDN/421atjlSwfunpSVg/pkIe88hVQaTBRxIVZTB1DYc6YysiWMrcb4bZNg6xslVStg3Y8Bg+2p2WrCH6pbWHqLPEMwlVeuMcNP5BLrXe9Vb5/QlMwlwplbmRzdHJlYW0KZW5kb2JqCjQ4IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjQ4ID4+CnN0cmVhbQp4nC1ROZIDQQjL5xV6QnPT77HLkff/6QrKAYOGQyA6LXFQxk8Qlive8shVtOHvmRjBd8Gh38p1GxY5EBVI0hhUTahdvB69B3YcZgLzpDUsgxnrAz9jCjd6cXhMxtntdRk1BHvXa09mUDIrF3HJxAVTddjImcNPpowL7VzPDci5EdZlGKSblcaMhCNNIVJIoeomqTNBkASjq1GjjRzFfunLI51hVSNqDPtcS9vXcxPOGjQ7Fqs8OaVHV5zLycULKwf9vM3ARVQaqzwQEnC/20P9nOzkN97SubPF9Phec7K8MBVY8ea1G5BNtfg3L+L4PePr+fwDqKVbFgplbmRzdHJlYW0KZW5kb2JqCjQ5IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggNzIgPj4Kc3RyZWFtCnicNYyxEcAwCAN7ptAINlhg75NLRfZvQ3xOAy8dD5eiwVoNuoIjcHWp/NEjXbkpRZdjzoLhcapfSDFGPagj497HT7lfcBYSfQplbmRzdHJlYW0KZW5kb2JqCjUwIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjEwID4+CnN0cmVhbQp4nDVQyw1DMQi7ZwoWqBQCgWSeVr11/2tt0DthEf9CWMiUCHmpyc4p6Us+OkwPti6/sSILrXUl7MqaIJ4r76GZsrHR2OJgcBomXoAWN2DoaY0aNXThgqYulUKBxSXwmXx1e+i+Txl4ahlydgQRQ8lgCWq6Fk1YtDyfkE4B4v9+w+4t5KGS88qeG/kbnO3wO7Nu4SdqdiLRchUy1LM0xxgIE0UePHlFpnDis9Z31TQS1GYLTpYBrk4/jA4AYCJeWYDsrkQ5S9KOpZ9vvMf3D0AAU7QKZW5kc3RyZWFtCmVuZG9iagoyMiAwIG9iago8PCAvQmFzZUZvbnQgL0RlamFWdVNhbnMgL0NoYXJQcm9jcyAyMyAwIFIKL0VuY29kaW5nIDw8Ci9EaWZmZXJlbmNlcyBbIDMyIC9zcGFjZSA0NiAvcGVyaW9kIDQ4IC96ZXJvIC9vbmUgL3R3byA1MiAvZm91ciAvZml2ZSAvc2l4IDU2IC9laWdodCA4MwovUyA5MSAvYnJhY2tldGxlZnQgOTMgL2JyYWNrZXRyaWdodCA5NyAvYSAvYiAxMDAgL2QgL2UgMTAzIC9nIDEwNSAvaSAxMDggL2wKL20gL24gL28gMTE0IC9yIC9zIC90IDExOCAvdiBdCi9UeXBlIC9FbmNvZGluZyA+PgovRmlyc3RDaGFyIDAgL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udERlc2NyaXB0b3IgMjEgMCBSCi9Gb250TWF0cml4IFsgMC4wMDEgMCAwIDAuMDAxIDAgMCBdIC9MYXN0Q2hhciAyNTUgL05hbWUgL0RlamFWdVNhbnMKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMjAgMCBSID4+CmVuZG9iagoyMSAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgMzIKL0ZvbnRCQm94IFsgLTEwMjEgLTQ2MyAxNzk0IDEyMzMgXSAvRm9udE5hbWUgL0RlamFWdVNhbnMgL0l0YWxpY0FuZ2xlIDAKL01heFdpZHRoIDEzNDIgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjIwIDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIzIDAgb2JqCjw8IC9TIDI0IDAgUiAvYSAyNSAwIFIgL2IgMjYgMCBSIC9icmFja2V0bGVmdCAyNyAwIFIgL2JyYWNrZXRyaWdodCAyOCAwIFIKL2QgMjkgMCBSIC9lIDMwIDAgUiAvZWlnaHQgMzEgMCBSIC9maXZlIDMyIDAgUiAvZm91ciAzMyAwIFIgL2cgMzQgMCBSCi9pIDM1IDAgUiAvbCAzNiAwIFIgL20gMzcgMCBSIC9uIDM5IDAgUiAvbyA0MCAwIFIgL29uZSA0MSAwIFIKL3BlcmlvZCA0MiAwIFIgL3IgNDMgMCBSIC9zIDQ0IDAgUiAvc2l4IDQ1IDAgUiAvc3BhY2UgNDYgMCBSIC90IDQ3IDAgUgovdHdvIDQ4IDAgUiAvdiA0OSAwIFIgL3plcm8gNTAgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMiAwIFIgL0YyIDE0IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTMgPDwgL0NBIDAuOCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAwLjggPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0YxLURlamFWdVNhbnMtbWludXMgMzggMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iago1MSAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMjAxMjE2MTUzNjAwKzAyJzAwJykKL0NyZWF0b3IgKE1hdHBsb3RsaWIgdjMuMy4yLCBodHRwczovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKE1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgdjMuMy4yKSA+PgplbmRvYmoKeHJlZgowIDUyCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDE1Nzk0IDAwMDAwIG4gCjAwMDAwMTU1MTggMDAwMDAgbiAKMDAwMDAxNTU2MSAwMDAwMCBuIAowMDAwMDE1NzAzIDAwMDAwIG4gCjAwMDAwMTU3MjQgMDAwMDAgbiAKMDAwMDAxNTc0NSAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzOTcgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDAzODgyIDAwMDAwIG4gCjAwMDAwMDUzNzcgMDAwMDAgbiAKMDAwMDAwNTE2OSAwMDAwMCBuIAowMDAwMDA0ODM2IDAwMDAwIG4gCjAwMDAwMDY0MzAgMDAwMDAgbiAKMDAwMDAwMzkwMyAwMDAwMCBuIAowMDAwMDA0MDYyIDAwMDAwIG4gCjAwMDAwMDQ0NjAgMDAwMDAgbiAKMDAwMDAwNDYyNCAwMDAwMCBuIAowMDAwMDE0MTM0IDAwMDAwIG4gCjAwMDAwMTM5MzQgMDAwMDAgbiAKMDAwMDAxMzQ2MyAwMDAwMCBuIAowMDAwMDE1MTg3IDAwMDAwIG4gCjAwMDAwMDY0OTIgMDAwMDAgbiAKMDAwMDAwNjkwMyAwMDAwMCBuIAowMDAwMDA3MjgwIDAwMDAwIG4gCjAwMDAwMDc1OTAgMDAwMDAgbiAKMDAwMDAwNzczMyAwMDAwMCBuIAowMDAwMDA3ODcyIDAwMDAwIG4gCjAwMDAwMDgxNzIgMDAwMDAgbiAKMDAwMDAwODQ5MCAwMDAwMCBuIAowMDAwMDA4OTU1IDAwMDAwIG4gCjAwMDAwMDkyNzUgMDAwMDAgbiAKMDAwMDAwOTQzNyAwMDAwMCBuIAowMDAwMDA5ODQ4IDAwMDAwIG4gCjAwMDAwMDk5ODggMDAwMDAgbiAKMDAwMDAxMDEwNSAwMDAwMCBuIAowMDAwMDEwNDMzIDAwMDAwIG4gCjAwMDAwMTA2MDMgMDAwMDAgbiAKMDAwMDAxMDgzNyAwMDAwMCBuIAowMDAwMDExMTI0IDAwMDAwIG4gCjAwMDAwMTEyNzYgMDAwMDAgbiAKMDAwMDAxMTM5NyAwMDAwMCBuIAowMDAwMDExNjI3IDAwMDAwIG4gCjAwMDAwMTIwMzIgMDAwMDAgbiAKMDAwMDAxMjQyMiAwMDAwMCBuIAowMDAwMDEyNTExIDAwMDAwIG4gCjAwMDAwMTI3MTUgMDAwMDAgbiAKMDAwMDAxMzAzNiAwMDAwMCBuIAowMDAwMDEzMTgwIDAwMDAwIG4gCjAwMDAwMTU4NTQgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyA1MSAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgNTIgPj4Kc3RhcnR4cmVmCjE2MDExCiUlRU9GCg==\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2020-12-16T15:35:59.922123\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.3.2, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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", "import scipy.signal as sig\n", "\n", "N = 2**14 # number of samples\n", "M = 256 # length of Wiener filter\n", "Om0 = 0.1 * np.pi # frequency of original signal\n", "N0 = 0.1 # PSD of additive white noise\n", "\n", "# generate original signal\n", "s = np.cos(Om0 * np.arange(N))\n", "# generate observed signal\n", "g = 1 / 20 * np.asarray([1, 2, 3, 4, 5, 4, 3, 2, 1])\n", "np.random.seed(1)\n", "n = np.random.normal(size=N, scale=np.sqrt(N0))\n", "x = np.convolve(s, g, mode=\"same\") + n\n", "# estimate (cross) PSDs using Welch technique\n", "f, Pxx = sig.csd(x, x, nperseg=M)\n", "f, Psx = sig.csd(s, x, nperseg=M)\n", "# compute Wiener filter\n", "H = Psx / Pxx\n", "H = H * np.exp(\n", " -1j * 2 * np.pi / len(H) * np.arange(len(H)) * (len(H) // 2)\n", ") # shift for causal filter\n", "h = np.fft.irfft(H)\n", "# apply Wiener filter to observation\n", "y = np.convolve(x, h, mode=\"same\")\n", "\n", "# plot (cross) PSDs\n", "Om = np.linspace(0, np.pi, num=len(H))\n", "\n", "plt.figure(figsize=(10, 4))\n", "plt.subplot(121)\n", "plt.plot(\n", " Om, 20 * np.log10(np.abs(0.5 * Pxx)), label=r\"$| \\Phi_{xx}(e^{j \\Omega}) |$ in dB\"\n", ")\n", "plt.plot(\n", " Om, 20 * np.log10(np.abs(0.5 * Psx)), label=r\"$| \\Phi_{sx}(e^{j \\Omega}) |$ in dB\"\n", ")\n", "plt.title(\"(Cross) PSDs\")\n", "plt.xlabel(r\"$\\Omega$\")\n", "plt.legend()\n", "plt.axis([0, np.pi, -60, 40])\n", "plt.grid()\n", "\n", "# plot transfer function of Wiener filter\n", "plt.subplot(122)\n", "plt.plot(Om, 20 * np.log10(np.abs(H)))\n", "plt.title(\"Transfer function of Wiener filter\")\n", "plt.xlabel(r\"$\\Omega$\")\n", "plt.ylabel(r\"$| H(e^{j \\Omega}) |$ in dB\")\n", "plt.axis([0, np.pi, -150, 3])\n", "plt.grid()\n", "plt.tight_layout()\n", "\n", "# plot signals\n", "idx = np.arange(500, 600)\n", "plt.figure(figsize=(10, 4))\n", "plt.plot(idx, x[idx], label=r\"observed signal $x[k]$\")\n", "plt.plot(idx, s[idx], label=r\"original signal $s[k]$\")\n", "plt.plot(idx, y[idx], label=r\"estimated signal $y[k]$\")\n", "plt.title(\"Signals\")\n", "plt.xlabel(r\"$k$\")\n", "plt.axis([idx[0], idx[-1], -1.5, 1.5])\n", "plt.legend()\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's listen to the observed signal $x[k]$ and the output of the Wiener filter $y[k]$" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from scipy.io import wavfile\n", "\n", "fs = 8000\n", "wavfile.write(\"Wiener_observed_signal.wav\", fs, np.int16(x * 16384))\n", "wavfile.write(\"Wiener_output.wav\", fs, np.int16(y * 16384))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Observed signal**\n", "\n", "[./Wiener_observed_signal.wav](./Wiener_observed_signal.wav)\n", "\n", "**Output of Wiener filter**\n", "\n", "[./Wiener_output.wav](./Wiener_output.wav)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Take a look at the PSDs and the resulting transfer function of the Wiener filter. How does the Wiener filter remove the noise from the observed signal?\n", "* Change the frequency `Om0` of the original signal $s[k]$ and the noise power `N0` of the additive noise. What changes?\n", "\n", "Solution: The cross-PSD $\\Phi_{sx}(e^{j \\Omega})$ has its maximum at the frequency $\\Omega_0$ of the original signal $s[k]$, besides this frequency the PSD $\\Phi_{xx}(e^{j \\Omega})$ has approximately the value of the PSD $\\Phi_{nn}(e^{j \\Omega}) = N_0$ of the additive noise. The resulting Wiener filter $G(e^{j \\Omega})$ has an attenuation of 0 dB at $\\Omega_0$ which increases off this frequency. It has the characteristics of a band-pass filter centered at $\\Omega_0$. By filtering the observed signal $x[k]$ with the Wiener filter, the major portion of the additive white noise is removed. However, around $\\Omega_0$ both the original signal $s[k]$ and noise pass the filter. This explains the remaining small deviations between the estimated signal $y[k]$ and the original signal $y[k]$. The adaption of the Wiener filter to the original signal and additive noise changes when changing its frequency and PSD." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Wiener Deconvolution\n", "\n", "As discussed above, the general formulation of the Wiener filter is based on the knowledge of the PSDs $\\Phi_{sx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ and $\\Phi_{xx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ characterizing the distortion process and the observed signal, respectively. These PSDs can be derived from the PSDs of the original signal $\\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ and the noise $\\Phi_{nn}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$, and the transfer function $G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ of the distorting system.\n", "\n", "Under the assumption that $n[k]$ is uncorrelated from $s[k]$, the PSD $\\Phi_{sx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ can be derived as\n", "\n", "\\begin{equation}\n", "\\Phi_{sx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) \\cdot G(\\mathrm{e}^{\\,-\\mathrm{j}\\,\\Omega})\n", "\\end{equation}\n", "\n", "and\n", "\n", "\\begin{equation}\n", "\\Phi_{xx}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) \\cdot |G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})|^2 + \\Phi_{nn}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})\n", "\\end{equation}\n", "\n", "Introducing these results into the general formulation of the Wiener filter yields\n", "\n", "\\begin{equation}\n", "H(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\frac{\\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) \\cdot G(\\mathrm{e}^{\\,-\\mathrm{j}\\,\\Omega})}{\\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) \\cdot |G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})|^2 + \\Phi_{nn}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}\n", "\\end{equation}\n", "\n", "This specialization is also known as [*Wiener deconvolution filter*](https://en.wikipedia.org/wiki/Wiener_deconvolution). The filter can be derived from the PSDs of the original signal $s[k]$ and the noise $n[k]$, and the transfer function $G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ of the distorting system. This form is especially useful when the PSDs can be modeled reasonably well by analytic probabilty density functions (PSDs). In many cases, the additive noise can be modeled as white noise $\\Phi_{nn}(e^{j \\Omega}) = N_0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interpretation\n", "\n", "The Wiener deconvolution filter derived above is also useful for an interpretation of the operation of the Wiener filter. It can be rewritten by introducing the frequency dependent [signal-to-noise ratio](https://en.wikipedia.org/wiki/Signal-to-noise_ratio) $\\text{SNR}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\frac{\\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}{\\Phi_{nn}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}$ between the original signal and the noise as\n", "\n", "\\begin{equation}\n", "H(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\frac{1}{G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})} \\cdot \\left( \\frac{|G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})|^2}{|G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})|^2 + \\frac{1}{\\text{SNR}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}} \\right)\n", "\\end{equation}\n", "\n", "Now two special cases are discussed:\n", "\n", "1. If there is no additive noise $\\Phi_{nn}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = 0$, the bracketed expression is equal to 1. Hence, the Wiener filter is simply given as the inverse system to the distorting system $$H(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\frac{1}{G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}$$\n", "\n", "2. If the distorting system is just a pass-through $G(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = 1$, the Wiener filter is given as\n", "\n", " $$H(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\frac{\\text{SNR}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}{\\text{SNR}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) + 1}=\\frac{\\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}{\\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})+\\Phi_{nn}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})}$$\n", " Two extreme cases are considered\n", " * for $\\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})\\gg \\Phi_{nn}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ (high $\\text{SNR}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$) at a given frequency $\\Omega$ the transfer function approaches 1\n", " * for $\\Phi_{ss}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})\\ll \\Phi_{nn}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ (low $\\text{SNR}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$) at a given frequency $\\Omega$ the transfer function approaches 0\n", " \n", "The discussed cases explain the operation of the Wiener filter for specific situations, the general operation is a combination of these." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example - Denoising of a deterministic signal with the Wiener deconvolution filter**\n", "\n", "The preceding example of the general Wiener filter will now be reevaluated with the Wiener deconvolution filter." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDgKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk5NSA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0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ZG9iagoyMSAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyNCAwIG9iago8PCAvQiAyNSAwIFIgL0QgMjYgMCBSIC9QIDI4IDAgUiAvUyAzMCAwIFIgL1QgMzEgMCBSIC9XIDMyIDAgUiAvYSAzMyAwIFIKL2JhciAzNCAwIFIgL2MgMzUgMCBSIC9kIDM2IDAgUiAvZSAzNyAwIFIgL2VpZ2h0IDM4IDAgUiAvZiAzOSAwIFIKL2ZpdmUgNDAgMCBSIC9mb3VyIDQxIDAgUiAvaSA0MiAwIFIgL2wgNDMgMCBSIC9uIDQ1IDAgUiAvbyA0NiAwIFIKL29uZSA0NyAwIFIgL3BhcmVubGVmdCA0OCAwIFIgL3BhcmVucmlnaHQgNDkgMCBSIC9wZXJpb2QgNTAgMCBSIC9yIDUxIDAgUgovcyA1MiAwIFIgL3NpeCA1MyAwIFIgL3NwYWNlIDU0IDAgUiAvdCA1NSAwIFIgL3RocmVlIDU2IDAgUiAvdHdvIDU3IDAgUgovdSA1OCAwIFIgL3plcm8gNTkgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMyAwIFIgL0YyIDE0IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTMgPDwgL0NBIDAuOCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAwLjggPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0YxLURlamFWdVNhbnMtT21lZ2EgMjcgMCBSIC9GMS1EZWphVnVTYW5zLVBoaSAyOSAwIFIKL0YxLURlamFWdVNhbnMtbWludXMgNDQgMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iago2MCAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMjAxMjE2MTUzNjAwKzAyJzAwJykKL0NyZWF0b3IgKE1hdHBsb3RsaWIgdjMuMy4yLCBodHRwczovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKE1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgdjMuMy4yKSA+PgplbmRvYmoKeHJlZgowIDYxCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDE4ODgxIDAwMDAwIG4gCjAwMDAwMTg1NTEgMDAwMDAgbiAKMDAwMDAxODU5NCAwMDAwMCBuIAowMDAwMDE4NzM2IDAwMDAwIG4gCjAwMDAwMTg3NTcgMDAwMDAgbiAKMDAwMDAxODc3OCAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzOTMgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDA0MTcyIDAwMDAwIG4gCjAwMDAwMDYyMTMgMDAwMDAgbiAKMDAwMDAwNjAwNSAwMDAwMCBuIAowMDAwMDA1NjYyIDAwMDAwIG4gCjAwMDAwMDcyNjYgMDAwMDAgbiAKMDAwMDAwNDE5MyAwMDAwMCBuIAowMDAwMDA0MzUzIDAwMDAwIG4gCjAwMDAwMDQ3NTMgMDAwMDAgbiAKMDAwMDAwNDk3OCAwMDAwMCBuIAowMDAwMDA1MjY0IDAwMDAwIG4gCjAwMDAwMTcxMDUgMDAwMDAgbiAKMDAwMDAxNjkwNSAwMDAwMCBuIAowMDAwMDE2NDA5IDAwMDAwIG4gCjAwMDAwMTgxNTggMDAwMDAgbiAKMDAwMDAwNzMzOCAwMDAwMCBuIAowMDAwMDA3NjcwIDAwMDAwIG4gCjAwMDAwMDc5MDMgMDAwMDAgbiAKMDAwMDAwODI3NCAwMDAwMCBuIAowMDAwMDA4NTEyIDAwMDAwIG4gCjAwMDAwMDg4ODQgMDAwMDAgbiAKMDAwMDAwOTI5NSAwMDAwMCBuIAowMDAwMDA5NDMxIDAwMDAwIG4gCjAwMDAwMDk1OTIgMDAwMDAgbiAKMDAwMDAwOTk2OSAwMDAwMCBuIAowMDAwMDEwMDk1IDAwMDAwIG4gCjAwMDAwMTAzOTggMDAwMDAgbiAKMDAwMDAxMDY5OCAwMDAwMCBuIAowMDAwMDExMDE2IDAwMDAwIG4gCjAwMDAwMTE0ODEgMDAwMDAgbiAKMDAwMDAxMTY4NyAwMDAwMCBuIAowMDAwMDEyMDA3IDAwMDAwIG4gCjAwMDAwMTIxNjkgMDAwMDAgbiAKMDAwMDAxMjMwOSAwMDAwMCBuIAowMDAwMDEyNDI2IDAwMDAwIG4gCjAwMDAwMTI1OTYgMDAwMDAgbiAKMDAwMDAxMjgzMCAwMDAwMCBuIAowMDAwMDEzMTE3IDAwMDAwIG4gCjAwMDAwMTMyNjkgMDAwMDAgbiAKMDAwMDAxMzQ4OSAwMDAwMCBuIAowMDAwMDEzNzExIDAwMDAwIG4gCjAwMDAwMTM4MzIgMDAwMDAgbiAKMDAwMDAxNDA2MiAwMDAwMCBuIAowMDAwMDE0NDY3IDAwMDAwIG4gCjAwMDAwMTQ4NTcgMDAwMDAgbiAKMDAwMDAxNDk0NiAwMDAwMCBuIAowMDAwMDE1MTUwIDAwMDAwIG4gCjAwMDAwMTU1NjEgMDAwMDAgbiAKMDAwMDAxNTg4MiAwMDAwMCBuIAowMDAwMDE2MTI2IDAwMDAwIG4gCjAwMDAwMTg5NDEgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyA2MCAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgNjEgPj4Kc3RhcnR4cmVmCjE5MDk4CiUlRU9GCg==\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2020-12-16T15:36:00.505041\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.3.2, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/pdf": "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NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDgKNjMwIDYxMyA2MTMgNjEz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b2NzIDIzIDAgUgovRW5jb2RpbmcgPDwKL0RpZmZlcmVuY2VzIFsgMzIgL3NwYWNlIDQ2IC9wZXJpb2QgNDggL3plcm8gL29uZSAvdHdvIDUyIC9mb3VyIC9maXZlIC9zaXggNTYgL2VpZ2h0IDgzCi9TIDkxIC9icmFja2V0bGVmdCA5MyAvYnJhY2tldHJpZ2h0IDk3IC9hIC9iIDEwMCAvZCAvZSAxMDMgL2cgMTA1IC9pIDEwOCAvbAovbSAvbiAvbyAxMTQgL3IgL3MgL3QgMTE4IC92IF0KL1R5cGUgL0VuY29kaW5nID4+Ci9GaXJzdENoYXIgMCAvRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250RGVzY3JpcHRvciAyMSAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAyMCAwIFIgPj4KZW5kb2JqCjIxIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMjAgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjMgMCBvYmoKPDwgL1MgMjQgMCBSIC9hIDI1IDAgUiAvYiAyNiAwIFIgL2JyYWNrZXRsZWZ0IDI3IDAgUiAvYnJhY2tldHJpZ2h0IDI4IDAgUgovZCAyOSAwIFIgL2UgMzAgMCBSIC9laWdodCAzMSAwIFIgL2ZpdmUgMzIgMCBSIC9mb3VyIDMzIDAgUiAvZyAzNCAwIFIKL2kgMzUgMCBSIC9sIDM2IDAgUiAvbSAzNyAwIFIgL24gMzkgMCBSIC9vIDQwIDAgUiAvb25lIDQxIDAgUgovcGVyaW9kIDQyIDAgUiAvciA0MyAwIFIgL3MgNDQgMCBSIC9zaXggNDUgMCBSIC9zcGFjZSA0NiAwIFIgL3QgNDcgMCBSCi90d28gNDggMCBSIC92IDQ5IDAgUiAvemVybyA1MCAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIyIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMyA8PCAvQ0EgMC44IC9UeXBlIC9FeHRHU3RhdGUgL2NhIDAuOCA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRjEtRGVqYVZ1U2Fucy1taW51cyAzOCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjUxIDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAyMDEyMTYxNTM2MDErMDInMDAnKQovQ3JlYXRvciAoTWF0cGxvdGxpYiB2My4zLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAoTWF0cGxvdGxpYiBwZGYgYmFja2VuZCB2My4zLjIpID4+CmVuZG9iagp4cmVmCjAgNTIKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTU3OTAgMDAwMDAgbiAKMDAwMDAxNTUxNCAwMDAwMCBuIAowMDAwMDE1NTU3IDAwMDAwIG4gCjAwMDAwMTU2OTkgMDAwMDAgbiAKMDAwMDAxNTcyMCAwMDAwMCBuIAowMDAwMDE1NzQxIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDM5NyAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDM4NzggMDAwMDAgbiAKMDAwMDAwNTM3MyAwMDAwMCBuIAowMDAwMDA1MTY1IDAwMDAwIG4gCjAwMDAwMDQ4MzIgMDAwMDAgbiAKMDAwMDAwNjQyNiAwMDAwMCBuIAowMDAwMDAzODk5IDAwMDAwIG4gCjAwMDAwMDQwNTggMDAwMDAgbiAKMDAwMDAwNDQ1NiAwMDAwMCBuIAowMDAwMDA0NjIwIDAwMDAwIG4gCjAwMDAwMTQxMzAgMDAwMDAgbiAKMDAwMDAxMzkzMCAwMDAwMCBuIAowMDAwMDEzNDU5IDAwMDAwIG4gCjAwMDAwMTUxODMgMDAwMDAgbiAKMDAwMDAwNjQ4OCAwMDAwMCBuIAowMDAwMDA2ODk5IDAwMDAwIG4gCjAwMDAwMDcyNzYgMDAwMDAgbiAKMDAwMDAwNzU4NiAwMDAwMCBuIAowMDAwMDA3NzI5IDAwMDAwIG4gCjAwMDAwMDc4NjggMDAwMDAgbiAKMDAwMDAwODE2OCAwMDAwMCBuIAowMDAwMDA4NDg2IDAwMDAwIG4gCjAwMDAwMDg5NTEgMDAwMDAgbiAKMDAwMDAwOTI3MSAwMDAwMCBuIAowMDAwMDA5NDMzIDAwMDAwIG4gCjAwMDAwMDk4NDQgMDAwMDAgbiAKMDAwMDAwOTk4NCAwMDAwMCBuIAowMDAwMDEwMTAxIDAwMDAwIG4gCjAwMDAwMTA0MjkgMDAwMDAgbiAKMDAwMDAxMDU5OSAwMDAwMCBuIAowMDAwMDEwODMzIDAwMDAwIG4gCjAwMDAwMTExMjAgMDAwMDAgbiAKMDAwMDAxMTI3MiAwMDAwMCBuIAowMDAwMDExMzkzIDAwMDAwIG4gCjAwMDAwMTE2MjMgMDAwMDAgbiAKMDAwMDAxMjAyOCAwMDAwMCBuIAowMDAwMDEyNDE4IDAwMDAwIG4gCjAwMDAwMTI1MDcgMDAwMDAgbiAKMDAwMDAxMjcxMSAwMDAwMCBuIAowMDAwMDEzMDMyIDAwMDAwIG4gCjAwMDAwMTMxNzYgMDAwMDAgbiAKMDAwMDAxNTg1MCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDUxIDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSA1MiA+PgpzdGFydHhyZWYKMTYwMDcKJSVFT0YK\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2020-12-16T15:36:01.021184\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.3.2, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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": [ "N = 2**14 # number of samples\n", "M = 256 # length of Wiener filter\n", "Om0 = 0.1 * np.pi # frequency of original signal\n", "N0 = 0.1 # PSD of additive white noise\n", "\n", "# generate original signal\n", "s = np.cos(Om0 * np.arange(N))\n", "# generate observed signal\n", "g = 1 / 20 * np.asarray([1, 2, 3, 4, 5, 4, 3, 2, 1])\n", "np.random.seed(1)\n", "n = np.random.normal(size=N, scale=np.sqrt(N0))\n", "x = np.convolve(s, g, mode=\"same\") + n\n", "# estimate PSD\n", "f, Pss = sig.csd(s, s, nperseg=M)\n", "f, Pnn = sig.csd(n, n, nperseg=M)\n", "# compute Wiener filter\n", "G = np.fft.rfft(g, M)\n", "H = 1 / G * (np.abs(G) ** 2 / (np.abs(G) ** 2 + N0 / Pss))\n", "H = H * np.exp(\n", " -1j * 2 * np.pi / len(H) * np.arange(len(H)) * (len(H) // 2 - 8)\n", ") # shift for causal filter\n", "h = np.fft.irfft(H)\n", "# apply Wiener filter to observation\n", "y = np.convolve(x, h, mode=\"same\")\n", "\n", "# plot (cross) PSDs\n", "Om = np.linspace(0, np.pi, num=len(H))\n", "\n", "plt.figure(figsize=(10, 4))\n", "plt.subplot(121)\n", "plt.plot(\n", " Om, 20 * np.log10(np.abs(0.5 * Pss)), label=r\"$| \\Phi_{ss}(e^{j \\Omega}) |$ in dB\"\n", ")\n", "plt.plot(\n", " Om, 20 * np.log10(np.abs(0.5 * Pnn)), label=r\"$| \\Phi_{nn}(e^{j \\Omega}) |$ in dB\"\n", ")\n", "plt.title(\"PSDs\")\n", "plt.xlabel(r\"$\\Omega$\")\n", "plt.legend()\n", "plt.axis([0, np.pi, -60, 40])\n", "plt.grid()\n", "\n", "# plot transfer function of Wiener filter\n", "plt.subplot(122)\n", "plt.plot(Om, 20 * np.log10(np.abs(H)))\n", "plt.title(\"Transfer function of Wiener filter\")\n", "plt.xlabel(r\"$\\Omega$\")\n", "plt.ylabel(r\"$| H(e^{j \\Omega}) |$ in dB\")\n", "plt.axis([0, np.pi, -150, 10])\n", "plt.grid()\n", "plt.tight_layout()\n", "\n", "# plot signals\n", "idx = np.arange(500, 600)\n", "plt.figure(figsize=(10, 4))\n", "plt.plot(idx, x[idx], label=r\"observed signal $x[k]$\")\n", "plt.plot(idx, s[idx], label=r\"original signal $s[k]$\")\n", "plt.plot(idx, y[idx], label=r\"estimated signal $y[k]$\")\n", "plt.title(\"Signals\")\n", "plt.xlabel(r\"$k$\")\n", "plt.axis([idx[0], idx[-1], -1.5, 1.5])\n", "plt.legend()\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Compare the transfer function of the Wiener deconvolution filter to the transfer function of the general Wiener filter from the preceding example.\n", "* What is different compared to the general Wiener filter? Why?\n", "\n", "Solution: The transfer function $H(e^{j \\Omega})$ of the Wiener deconvolution filter is much smoother than the transfer function of the general Wiener filter from the preceding example. This is due to the knowledge of the transfer function $G(e^{j \\Omega})$ of the disturbing system. The general Wiener filter inherently estimates this from the noisy observations." ] }, { "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, Digital Signal Processing - Lecture notes featuring computational examples*." ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.13" } }, "nbformat": 4, "nbformat_minor": 1 }