{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Experiment 4c - Filters - Gaussian filter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Gaussian filter is an averaging filter, mainly used to remove the additive gaussian noise. This is how it looks like in time domain" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "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": { "collapsed": true }, "outputs": [], "source": [ "from directdemod import filters\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from scipy import signal" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nREQm9P8BEwsPNZXMH/MAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bh = filters.gaussian(51, 5)\n", "\n", "plt.plot(bh.getB)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us observe in frequency domain. Assuming we have a sampling rate of 2MHz" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nKkqA5AAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "3dB point: 56000.0 Hz\n" ] } ], "source": [ "bh = filters.gaussian(51, 5)\n", "\n", "plt.plot(bh.getB)\n", "\n", "w, h = signal.freqz(bh.getB)\n", "\n", "Fs = 2048000\n", "w *= Fs/(2*np.pi) \n", "\n", "plt.clf() \n", "fig = plt.figure()\n", "plt.title('Digital filter frequency response')\n", "ax1 = fig.add_subplot(111)\n", "\n", "plt.plot(w, 20 * np.log10(abs(h)), 'b')\n", "plt.ylabel('Amplitude [dB]', color='b')\n", "plt.xlabel('Frequency [Hz]')\n", "\n", "ax2 = ax1.twinx()\n", "angles = np.unwrap(np.angle(h))\n", "plt.plot(w, angles, 'g')\n", "plt.ylabel('Angle (radians)', color='g')\n", "plt.grid()\n", "plt.axis('tight')\n", "plt.show()\n", "\n", "hDB = 20 * np.log10(abs(h))\n", "print(\"3dB point:\", w[hDB < (hDB[0]-3)][0], \"Hz\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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 }