{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Realization of Non-Recursive Filters\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": [ "## Quantization Effects\n", "\n", "Numbers and numerical operations are represented with a finite numerical resolution in digital processors. The same holds for the amplitude values of signals and the algorithmic operations applied to them. Hence, the intended characteristics of a digital filter may deviate in practice due to the finite numerical resolution. The [double-precision floating point representation](https://en.wikipedia.org/wiki/Double-precision_floating-point_format) used in numerical environments like MATLAB or Python/numpy is assumed to be quasi-continuous. This representation serves therefore as reference for the evaluation of quantization effects.\n", "\n", "This section investigates the consequences of quantization in non-recursive filters. We first take a look on the quantization of the filter coefficients, followed by the effects caused by a finite numerical resolution of the operations. The realization of non-recursive filters is subject to both effects." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Quantization of Filter Coefficients\n", "\n", "The output signal $y[k]$ of a non-recursive filter with a finite impulse response (FIR) $h[k]$ of length $N$ is given as\n", "\n", "\\begin{equation}\n", "y[k] = h[k] * x[k] = \\sum_{\\kappa = 0}^{N-1} h[\\kappa] \\; x[k - \\kappa]\n", "\\end{equation}\n", "\n", "where $x[k]$ denotes the input signal. The quantized impulse response $h_Q[k]$ (quantized filter coefficients) is yielded by quantizing the impulse response $h[k]$\n", "\n", "\\begin{equation}\n", "h_Q[k] = \\mathcal{Q} \\{ h[k] \\} = h[k] + e[k]\n", "\\end{equation}\n", "\n", "where $e[k] = h_Q[k] - h[k]$ denotes the [quantization error](../quantization/introduction.ipynb#Model-of-the-Quantization-Process). Introducing $h_Q[k]$ into above equation and rearranging results in\n", "\n", "\\begin{equation}\n", "y_Q[k] = \\sum_{\\kappa = 0}^{N-1} h[\\kappa] \\; x[k - \\kappa] + \\sum_{\\kappa = 0}^{N-1} e[\\kappa] \\; x[k - \\kappa]\n", "\\end{equation}\n", "\n", "The input signal $x[k]$ is filtered by the quantization noise $e[k]$ and superimposed to the desired output of the filter. The overall transfer function $H_Q(e^{j \\Omega})$ of the filter with quantized filter coefficients is given as\n", "\n", "\\begin{equation}\n", "H_Q(e^{j \\Omega}) = \\sum_{k=0}^{N-1} h[k] \\; e^{-j \\Omega k} + \\sum_{k=0}^{N-1} e[k] \\; e^{-j \\Omega k} = H(e^{j \\Omega}) + E(e^{j \\Omega})\n", "\\end{equation}\n", "\n", "Hence, the quantization of filter coefficients results in a linear distortion of the desired frequency response. To some extent, this distortion can be incorporated into the design of the filter. However, the magnitude of the quantization error $| E(e^{j \\Omega}) |$ cannot get arbitrarily small for a finite quantization step $Q$. This limits the achievable attenuation of a digital filter with quantized coefficients. It is therefore important to normalize the filter coefficients $h[k]$ before quantization in order to keep the relative power of the quantization noise small." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example - Effect of coefficient quantization in a lowpass filter\n", "\n", "The coefficients of a digital lowpass filter with a cutoff frequency of $\\Omega_0 = \\frac{\\pi}{2}$ are quantized in the following example." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import scipy.signal as sig\n", "\n", "w = 8 # wordlength of quantized coefficients\n", "A = 1 # attenuation of filter coefficients\n", "N = 256 # number of coefficients for filter\n", "Q = 1/(2**(w-1)) # quantization stepsize\n", "\n", "def uniform_midtread_quantizer(x, Q):\n", " # limiter\n", " x = np.copy(x)\n", " idx = np.where(x <= -1)\n", " x[idx] = -1\n", " idx = np.where(x > 1 - Q)\n", " x[idx] = 1 - Q\n", " # linear uniform quantization\n", " xQ = Q * np.floor(x/Q + 1/2)\n", " \n", " return xQ\n", "\n", "# design lowpass\n", "h = A * sig.firwin(N, .5)\n", "# quantize coefficients\n", "hQ = uniform_midtread_quantizer(h, Q)\n", "\n", "# plot frequency response\n", "Om, H = sig.freqz(h)\n", "Om, HQ = sig.freqz(hQ)\n", "Om, E = sig.freqz(hQ-h)\n", "\n", "plt.figure(figsize=(10, 4))\n", "plt.plot(Om, 20*np.log10(np.abs(H)), label=r'$| H(e^{j \\Omega}) |$ in dB (Designed)')\n", "plt.plot(Om, 20*np.log10(np.abs(HQ)), label=r'$| H_Q(e^{j \\Omega}) |$ in dB (Quantized coefficients)')\n", "plt.title('Magnitude of the transfer function w and w/o quantization of coefficients')\n", "plt.xlabel(r'$\\Omega$')\n", "plt.axis([0, np.pi, -130, 10])\n", "plt.legend(loc=3)\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Change the wordlength `w` of the quantized filter coefficients. How does the magnitude response $| H_Q(e^{j \\Omega}) |$ of the quantized filter change?\n", "* Change the attenuation `A` of the filter coefficients. What changes?\n", "* Why does the magnitude response of the quantized filter $| H_Q(e^{j \\Omega}) |$ deviate more from the magnitude response of the designed filter $| H(e^{j \\Omega}) |$ in the frequency ranges with high attenuation?\n", "\n", "Solution: The magnitude response of the quantized filter deviates more from the designed filter the shorter the wordlength `w` is chosen. This is due to the increasing quantization error for shorter wordlengths. The quantization error increases also in comparison to the filter coefficients if their amplitude (attenuation `A`) is small. The deviations from the designed filter are generally higher for high attenuations since the quantization error is additive $H_Q(e^{j \\Omega}) = H(e^{j \\Omega}) + E(e^{j \\Omega})$, as derived above." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Quantization of Signals and Operations\n", "\n", "Besides the quantization of filter coefficients $h[k]$, also the quantization of the signals, state variables and operations has to be considered in a practical implementation of filters. The computation of the output signal $y[k] = h[k] * x[k]$ of a non-recursive filter by convolution involves multiplications and additions. In digital signal processors numbers are often represented in [fixed-point arithmetic](https://en.wikipedia.org/wiki/Fixed-point_arithmetic) using [two's complement](https://en.wikipedia.org/wiki/Two's_complement). When multiplying two numbers with a wordlength of $w$-bits in this representation the result would require $2w$-bits. Hence the result has to be requantized to $w$-bits. The rounding operation in the quantizer is often realized as truncation of the $w$ least significant bits. The resulting quantization error is known as [round-off error](https://en.wikipedia.org/wiki/Round-off_error). The addition of two numbers may fall outside the maximum/minimum values of the representation and may suffer from clipping. Similar considerations hold also for other number representations, like e.g. [floating point](https://en.wikipedia.org/wiki/Floating_point).\n", "\n", "As for the [quantization noise](../quantization/linear_uniform_quantization_error.ipynb#Model-for-the-Quantization-Error), a statistical model for the round-off error in multipliers is used to quantify the average impact of round-off noise in a non-recursive filter." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Model for round-off errors in multipliers\n", "\n", "As outlined above, multipliers require a requantization of the result in order to keep the wordlength constant. The multiplication of a quantized signal $x_Q[k]$ with a quantized factor $a_Q$ can be written as\n", "\n", "\\begin{equation}\n", "y_Q[k] = \\mathcal{Q} \\{ a_Q \\cdot x_Q[k] \\} = a_Q \\cdot x_Q[k] + e[k]\n", "\\end{equation}\n", "\n", "where the round-off error $e[k]$ is defined as\n", "\n", "\\begin{equation}\n", "e[k] = y_Q[k] - a_Q \\cdot x_Q[k]\n", "\\end{equation}\n", "\n", "This leads to the following model of a multiplier including round-off effects\n", "\n", "![Model for round-off noise in a multiplier](roundoff_model.png)\n", "\n", "The round-off error can be modeled statistically in the same way as quantization noise [[Zölzer](../index.ipynb#Literature)]. Under the assumption that the average magnitude of $a_Q \\cdot x_Q[k]$ is much larger that the quantization step size $Q$, the round-off error $e[k]$ can be approximated by the following statistical model\n", "\n", "1. The round-off error $e[k]$ is not correlated with the input signal $x_Q[k]$\n", "\n", "2. The round-off error is [white](../random_signals/white_noise.ipynb)\n", "\n", " $$ \\Phi_{ee}(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\sigma_e^2 $$\n", "\n", "2. The probability density function (PDF) of the round-off error is given by the zero-mean [uniform distribution](../random_signals/important_distributions.ipynb#Uniform-Distribution)\n", "\n", " $$ p_e(\\theta) = \\frac{1}{Q} \\cdot \\text{rect} \\left( \\frac{\\theta}{Q} \\right) $$\n", "\n", "The variance (power) of the round-off error is [derived from its PDF](../random_signals/important_distributions.ipynb#Uniform-Distribution) as\n", "\n", "\\begin{equation}\n", "\\sigma_e^2 = \\frac{Q^2}{12}\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Round-off noise\n", "\n", "Using above model of a multiplier and discarding clipping, a straightforward realization of the convolution with quantized signals would be to requantize after every multiplication \n", "\n", "\\begin{equation}\n", "\\begin{split}\n", "y_Q[k] &= \\sum_{\\kappa = 0}^{N-1} \\mathcal{Q} \\{ h_Q[\\kappa] \\; x_Q[k - \\kappa] \\} \\\\\n", "&= \\sum_{\\kappa = 0}^{N-1} h_Q[\\kappa] \\; x_Q[k - \\kappa] + e[\\kappa] \\\\ \n", "&= \\left( \\sum_{\\kappa = 0}^{N-1} h_Q[\\kappa] \\; x_Q[k - \\kappa] \\right) + e_\\text{tot}[k]\n", "\\end{split}\n", "\\end{equation}\n", "\n", "where $e_\\text{tot}[k] = \\sum_{\\kappa = 0}^{N-1} e[\\kappa]$. The round-off errors $e[\\kappa]$ for each multiplication are uncorrelated to each other. The overall power of the round-off error is then given as\n", "\n", "\\begin{equation}\n", "\\sigma_{e, \\text{tot}}^2 = N \\cdot \\frac{Q^2}{12}\n", "\\end{equation}\n", "\n", "Many digital signal processors allow to perform the multiplications and additions in an internal register with double wordlength. In this case, only the result of the convolution sum has to be requantized \n", "\n", "\\begin{equation}\n", "y_Q[k] = \\mathcal{Q} \\left\\{ \\sum_{\\kappa = 0}^{N-1} h_Q[\\kappa] \\; x_Q[k - \\kappa] \\right\\} = \n", "\\left( \\sum_{\\kappa = 0}^{N-1} h_Q[\\kappa] \\; x_Q[k - \\kappa] \\right) + e[k]\n", "\\end{equation}\n", "\n", "and the total power of the round-off noise in this case is\n", "\n", "\\begin{equation}\n", "\\sigma_{e, \\text{tot}}^2 = \\frac{Q^2}{12}\n", "\\end{equation}\n", "\n", "It is evident that this realization is favorable due to the lower round-off noise, especially for filters with a large number $N$ of coefficients." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example - Effect of requantization after each multiplication\n", "\n", "The following example simulates the round-off noise of a non-recursive filter when requantization is performed after each multiplication. Clipping is not considered. The input signal $x[k]$ is drawn from a [uniform distribution](../random_signals/important_distributions.ipynb#Uniform-Distribution) with $a=-1$ and $b=1-Q$. Both the input signal and filter coefficients are quantized. The output signal $y[k]$ without requantization of the multiplications is computed, as well as the output signal $y_Q[k]$ with requantization. The statistical properties of the round-off noise $e[k] = y_Q[k] - y[k]$ are evaluated." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Power of overall round-off noise is -85.992869 dB\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "w = 16 # wordlength of quantized coefficients/operations\n", "N = 32 # number of coefficients for filter\n", "L = 8192 # length of input signal\n", "Q = 1/(2**(w-1)) # quantization stepsize\n", "\n", "\n", "def uniform_midtread_quantizer(x, Q):\n", " xQ = Q * np.floor(x/Q + 1/2)\n", " \n", " return xQ\n", "\n", "\n", "# random impulse response\n", "h = np.random.uniform(size=N, low=-1, high=1)\n", "hQ = uniform_midtread_quantizer(h, Q)\n", "# input signal\n", "x = np.random.uniform(size=L, low=-1, high=1-Q)\n", "xQ = uniform_midtread_quantizer(x, Q)\n", "# output signal by convolution\n", "y = np.zeros(L+N-1)\n", "yQ = np.zeros(L+N-1)\n", "for k in np.arange(L):\n", " for kappa in np.arange(N):\n", " if (k-kappa) >= 0:\n", " y[k] += hQ[kappa] * xQ[k-kappa]\n", " yQ[k] += uniform_midtread_quantizer(hQ[kappa] * xQ[k-kappa], Q)\n", "\n", "# overall round-off error\n", "e = yQ - y\n", "\n", "# estimate power of round-off error\n", "sx = 10*np.log10(np.var(e))\n", "print('Power of overall round-off noise is %f dB' %sx)\n", "# estimated PDF of round-off error\n", "pe, bins = np.histogram(e, bins=50, density=True, range=(-10*Q, 10*Q))\n", "# estimate PSD of round-off error\n", "nf, Pee = sig.welch(e, nperseg=128)\n", "\n", "\n", "# plot statistical properties of error signal\n", "plt.figure(figsize=(10,6))\n", "\n", "plt.subplot(121)\n", "plt.bar(bins[:-1]/Q, pe*Q, width = 20/len(pe))\n", "plt.title('Estimated PDF of the round-off noise')\n", "plt.xlabel(r'$\\theta / Q$')\n", "plt.ylabel(r'$\\hat{p}_x(\\theta) / Q$')\n", "#plt.axis([-1, 1, 0, 1.2])\n", "\n", "plt.subplot(122)\n", "plt.plot(nf*2*np.pi, Pee*6/Q**2/N)\n", "plt.title('Estimated PSD of the round-off noise')\n", "plt.xlabel(r'$\\Omega$')\n", "plt.ylabel(r'$\\hat{\\Phi}_{ee}(e^{j \\Omega}) / \\sigma_e^2$')\n", "plt.axis([0, np.pi, 0, 2])\n", "plt.grid();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Change the wordlength `w` and check if the $\\sigma_e^2$ derived by numerical simulation is equal to its theoretic value derived above?\n", "* Can you explain the shape of the estimated PDF for the round-off noise?\n", "\n", "Solution: The power of the overall round-off noise was derived above as $\\sigma_e^2 = N \\frac{Q}{12}$. Using results from the [model of quantization noise for a uniform quantizer](../quantization/linear_uniform_quantization_error.ipynb#Model-for-the-Quantization-Error) this can be rewritten as $10 \\log_{10} (\\sigma_e^2) \\approx 10 \\log_{10} (N) - 10 \\log_{10} (3) - 6.02 w$. Hence a doubling of the filter length results in approximately 3 dB more round-off noise at the filter output. The requantization noise of the individual multiplications can be modeled as uniformly distributed white noise. It follows from the [central limit theorem](https://en.wikipedia.org/wiki/Central_limit_theorem) that the superposition of these individual round-off errors results in a normal distribution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example - Comparison of round-off noise of conventional and fast convolution\n", "\n", "The overall round-off noise in an FIR filter scales with the number of multiplications when rounding is performed after each of these. The fast convolution algorithm requires less multiplications and as a consequence also less rounding operations resulting in potentially less round-off noise at the filter output. This effect is illustrated by the following example. The conventional convolution and the fast convolution is computed for two rectangular signals of the same length $y[k] = A\\cdot\\text{rect}_L[k] * A\\cdot\\text{rect}_L[k]$. The round-off noise is computed by comparing the results to the theoretical result $A^2 L \\cdot \\Lambda_{2L -1}[k]$. Since we cannot change the representation of numbers nor the rounding operations in the given implementation of the FFT, a floating point representation of the signal amplitudes is used for this example. The amplitude $A$ has been chosen such to trigger rounding operations." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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95z/cOWWlJTwhz/8gZNOOonhw4ezbl1oK3682KYPmlKqL/B94CzglCh5ZwAzAIqLi3E6nUmXr6amxpJ6BHsg19terF+/HmfdFgAqK4NHRZVvMzW1XRDuF2MgS5cs4cAmR8i0beXlcdW1YMGCkNvD3Wfr163DWbM5rroEg6KiIqqrqwH484ebWbenBq11wvr2DSnuwq3nhrbCAqxdu5a7776bjz76iO7du3PgwAGqq6u57rrruPzyy7nqqqt4/vnnuf7663n55Zdpbm5mx44dvP/++2zYsIEpU6YwefJkLr74Yl544QXOOOMMmpqa+Pjjj/nLX/7CzJkzyc/P59NPP6WxsZFzzz2XcePGUVdXx7Jly/jyyy/p06cP55xzDh999BHXXHMNf//73/nvf/9L9+7dqa6uRmtNTU0Na9as4d///jeffPIJWmvOOussSktL6dq1Kxs3buSpp57igQceYNq0abzwwgtMnTqVc845h6lTpwKGxWnmzJlcd911NDY2kpOT4zn3bq6//nrGjh3Lc889h8vloqamhrlz58Zcb0NDAytXrmTgwIE899xzXHzxxezbt49p06Yxa9YsBg8ezIwZM/jHP/7Bddddh8vlora21iOP+7++vp7m5maGDx/O+eefz3nnncf3vvc9wIihV19fH7bcX/ziF2it6dKlC59//jlPPvkk9913H//85z/9jrmhoSHud4ltFDTgQeBWrbUr2sOjtX4CeAKgtLRUWzERqh0nXBWSh1xvG/DBe57F448/nrIxAwB4Ydti2OvfZ6zk6KNh86aYqxgwYABsCVaCSktLGda3yE8GN8ceMwg2rY+5rnHjx8OnHwVt97vPfI95yBDKSvvHXI/gZe3atZ4YWDm5OTgcDlwuFw5HaOU7VnJycyLG2Pryyy/5wQ9+QElJCYAn79dff82sWbPIycnhpz/9KXfeeSeFhYXk5ORw2WWXUVRUxCmnnMK+ffsoLCzkkksu4dZbbyU3N5dPP/2UiRMn0qtXL+bOncvKlSv573//C0BVVRXffvstnTp1YsyYMQwZMgSAk08+mb1791JYWIhSii5dunhkca8vW7aMSy+9lN69ewNw2WWXsXTpUi666CIGDhzI+PHjARg7dix79uyhsLCQpUuXcvXVV3Po0CFqamqYPHkyhYWF5OXlkZeXF3Ru5s6dy0svvUReXh4AXbt25c0334y53qlTpzJ79mxuu+023nnnHV599VV27drFoEGDOOmkkwC49tprmTlzJr/4xS9wOBx07tzZI4/7v6CggJycHM+5Lygo8N4vbevhyr3ttttQSnHllVdSWFjI+PHjmT17dtAx5+fnM3r0aJN3lD92UtBKgVfalLMewAVKqRat9TupFUsQhEwjsoszPutLq5kRB0LS+MN3TwSsDVxq1lrnm8etvLj3B+MlX1ZWxpw5c3j11Ve54oorPOmPPPIIkydP9ivP6XT6leNwOGhpidynUUe4PwPLcrs4p0+fzjvvvMPIkSN59tln47IUxVPvlClTuPzyy7nkkktQSjF48GCWL19uqj7fc20mRlkk+XxlNHOOY8U2cdC01gO11iVa6xLgDeB6Uc4EQUgFivAv1Xj7oIl+lnlMmjSJ1157jcrKSgAOHDC6YY8bN45XXnkFgBdffJHTTz89allTp07lmWeeYd68eR6FbPLkyTz22GM0NxuDaDZs2EBtbW3EcgoLC4NcjwATJkzgnXfeoa6ujtraWt5++23OOOOMiGVVV1fTp08fmpubefHFF6Mew6RJk3jssccAcLlcHD58OK56jznmGBwOB3fffTdTpkwBYMiQIZSXl7Npk2FJf/7555k4cWLQvsXFxaxdu5bW1lbefvttz/Zw58VsucnAMgVNKfUysAg4XilVoZT6iVLqOqXUdVbJIAiC4Es4nSkrQsvoiFND02FrE9KVE088kTvuuIOJEycycuRIbrrpJgAefvhhnnnmGUaMGMHzzz/PQw89FLWsc889l7lz53L22WeTm5sLGO62oUOHctJJJzFs2DB+9rOfRbXizJgxg/PPP98zSMDNSSedxPTp0xkzZgxjx47l2muvjeqau/vuuxk7diznnHOOx50aiYceeojPPvuM4cOHc/LJJ7N69eq46gXDivbCCy/wgx/8ADCsjM888wyXX345w4cPJysri+uuC1Yv7r//fi688ELOOuss+vTxhrGZOnUqf/3rXxk9ejSbN3u7PZgtNxmoaOY7u1NaWqoXL16c9HqkT1JmIdc79ZTc5u2Pdd8lw7mirQ/atf9ZzMdr/fug3XjWsTz8aex90H5edgyPOYP7oM35nwkc37vQTwY3d144lD++uyZoezS+uH0Sp973SdB23zhovvX95bIR/ED6oLWLtWvXcsIJJ/htk7k4M4tU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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "L = 1024 # length of signals x[k]\n", "A = 1/7 # amplitude of signal\n", "M = 2*L-1\n", "\n", "\n", "# generate signals\n", "x = A * np.ones(L)\n", "y = A**2 * L * sig.triang(M)\n", "\n", "# linear convolution\n", "y1 = np.convolve(x, x, 'full')\n", "e1 = y - y1\n", "# fast convolution\n", "y2 = np.fft.irfft(np.fft.rfft(x, M+1) * np.fft.rfft(x, M+1))[0:M]\n", "e2 = y - y2\n", "\n", "plt.figure(figsize=(10, 4))\n", "plt.plot(np.abs(e1), label='conventional convolution')\n", "plt.plot(np.abs(e2), label='fast convolution')\n", "plt.xlabel(r'$k$')\n", "plt.ylabel(r'$|e[k]|$')\n", "plt.legend()\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercises**\n", "\n", "* Change the length `L` of the signal. How does the round-off noise scale with length? Why?\n", "* Extend above code to compute the power of the round-off noise for various lengths.\n", "\n", "Solution: The round-off noise scales with the number of multiplications which itself scales by the length `L` of the signal. This also explains the shape of the round-off errors for the conventional convolution. The two rectangular functions overlap fully in the center which results in the maximum number of non-zero multiplications." ] }, { "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, 2016-2018*." ] } ], "metadata": { "anaconda-cloud": {}, "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.1" } }, "nbformat": 4, "nbformat_minor": 1 }