{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Experiment 3 - Filters - Initial tests" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Refs [1]: https://stackoverflow.com/questions/39299838/how-do-i-import-module-in-jupyter-notebook-directory-into-notebooks-in-lower-dir\n", "\n", " [2] https://stackoverflow.com/questions/5364050/reloading-submodules-in-ipython" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Firstly we will try to figure out a way to import our implemented modules, which is another directory [1]. And for auto reload of our modules [2]. The following method works and will be used here on " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os, sys\n", "nb_dir = os.path.split(os.getcwd())[0]\n", "if nb_dir not in sys.path:\n", " sys.path.append(nb_dir)\n", " \n", "%matplotlib inline\n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from directdemod import filters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "One of the most basic filter is a rolling window averaging filter. It takes window size of n, shifts it by 1 and calculates the average of the elements within. In the following example, we create a sinusoidal signal, add noise to it and pass it through a simple rolling window filter. The results are as follows:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "\n", "time = np.linspace(0, 3*np.pi, 500)\n", "signal = np.sin(time)\n", "noisy_signal = signal + 0.5 * np.random.randn(len(time))\n", "\n", "plt.plot(time, signal)\n", "plt.plot(time, filters.rollingAverage(5).applyOn(noisy_signal))\n", "plt.plot(time, filters.rollingAverage(25).applyOn(noisy_signal))\n", "plt.plot(time, filters.rollingAverage(50).applyOn(noisy_signal))\n", "\n", "plt.legend([\"Original\", \"wSize = 5\", \"wSize = 25\", \"wSize = 50\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Observation 1\n", "A delay is observed in the filtered output, this is true for any filter and this must be kept in mind while using the designed filters. Hence our implementations should have a version by which we can get rid of this delay (phase error)\n", "\n", "### Observation 2\n", "The initial conditions of the filter influence the initial outputs, this also must be kept in mind while using the filters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Chunking\n", "When processing large signals, we will chunk the signal into several parts and pass them through the filter one after the other. For example let us consider the following array 'in' which is needed to be passed through the rolling filter. If we pass the whole thing we get," ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5\n", " 12.5 13.5 14.5 15.5 16.5 17.5 18.5]\n" ] } ], "source": [ "r = filters.rollingAverage(n = 2, storeState = False)\n", "print(r.applyOn(range(1,20)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But if we break it down into pieces and pass it through the filter we get," ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5]\n", "[ 5. 10.5 11.5 12.5 13.5]\n", "[ 7.5 15.5 16.5 17.5 18.5]\n" ] } ], "source": [ "r = filters.rollingAverage(n = 2, storeState = False)\n", "print(r.applyOn([1,2,3,4,5,6,7,8,9]))\n", "print(r.applyOn([10,11,12,13,14]))\n", "print(r.applyOn([15,16,17,18,19]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Clearly when we combine the outputs, this does not equal the case when the whole thing was passed at once" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Observation 3\n", "When the signal is chunked and passed through the filter, due to border effects the output is not the same. Hence a workaround must be implemented to prevent this." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Solutions\n", "\n", "The above observed problems:\n", "(a) delay or phase shift\n", "(b) chunking issues\n", "(c) initial conditions\n", "\n", "can be solved as follows:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A. Zero phase shift\n", "\n", "In case a zero shift is required by the filter, the filter object must be created with 'zeroPhase = True', from this the filter will try to provide zero shift. This is achieved by using scipys 'filtfilt' function rather than than the 'lfilter'\n", "\n", "The advantages: The phase shift will be zero\n", "\n", "The disadvantages: Cannot be used with chunking (i.e. do not process large signals with this), slower (since the filter is run forward and backwared to get zero shift), filter is applied twice" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "time = np.linspace(0, 3*np.pi, 500)\n", "signal = np.sin(time)\n", "noisy_signal = signal + 0.5 * np.random.randn(len(time))\n", "\n", "plt.plot(time, signal)\n", "plt.plot(time, filters.rollingAverage(5, zeroPhase = True).applyOn(noisy_signal))\n", "plt.plot(time, filters.rollingAverage(25, zeroPhase = True).applyOn(noisy_signal))\n", "plt.plot(time, filters.rollingAverage(50, zeroPhase = True).applyOn(noisy_signal))\n", "\n", "plt.legend([\"Original\", \"wSize = 5\", \"wSize = 25\", \"wSize = 50\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We observe that there is no phase shift due to the filter now" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## B. Chunking issues\n", "\n", "Chunking issues can be solved by storing the initial conditions in the filter object and updating it for ever chunk. While initializing the object use the flag 'storeState = True' to enable this. The following experiment proves that it works," ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5\n", " 12.5 13.5 14.5 15.5 16.5 17.5 18.5]\n", "[ 1. 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5]\n", "[ 9.5 10.5 11.5 12.5 13.5]\n", "[ 14.5 15.5 16.5 17.5 18.5]\n" ] } ], "source": [ "r = filters.rollingAverage(n = 2, storeState = False)\n", "print(r.applyOn(range(1,20)))\n", "\n", "r = filters.rollingAverage(n = 2, storeState = True)\n", "print(r.applyOn([1,2,3,4,5,6,7,8,9]))\n", "print(r.applyOn([10,11,12,13,14]))\n", "print(r.applyOn([15,16,17,18,19]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can clearly observe that the border issues have now been resolved" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## C. Initial output\n", "\n", "The initial output problem can be corrected by creating an initial condition in such a way that the initial output conditions are met. If we want the filter to start at say -6, we pass the flag 'initOut = [-6]', the following experiment shows the result," ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nqRTz/wE5gVtNi7mbmAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "time = np.linspace(0, 3*np.pi, 500)\n", "signal = np.sin(time)\n", "noisy_signal = signal + 0.5 * np.random.randn(len(time))\n", "\n", "plt.plot(time, signal)\n", "plt.plot(time, filters.rollingAverage(5, initOut = [-6]*5).applyOn(noisy_signal))\n", "plt.plot(time, filters.rollingAverage(25, initOut = [-6]*25).applyOn(noisy_signal))\n", "plt.plot(time, filters.rollingAverage(50, initOut = [-6]*50).applyOn(noisy_signal))\n", "\n", "plt.legend([\"Original\", \"wSize = 5\", \"wSize = 25\", \"wSize = 50\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is how we can set the initial conditions of the filter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Conclusions\n", "Hence with this we conclude that we can solve the discussed problems: (a) delay or phase shift (b) chunking issues (c) initial conditions with the solutions implemented" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }