{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Experiment 4b - Filters - Hamming filter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hamming 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": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bh = filters.hamming(151)\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": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "3dB point: 14000.0 Hz\n" ] } ], "source": [ "bh = filters.hamming(101)\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\")" ] } ], "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 }