{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Investigating The Sampling Theorem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section, we investigate the implications of the sampling theorem. Here is the usual statement of the theorem from wikipedia:\n", "\n", "*\"If a function $x(t)$ contains no frequencies higher than B hertz, it is completely determined by giving its ordinates at a series of points spaced 1/(2B) seconds apart.\"*\n", "\n", "Since a function $x(t)$ is a function from the real line to the real line, there are uncountably many points between any two ordinates, so sampling is a massive reduction of data since it only takes a tiny number of points to completely characterize the function. This is a powerful idea worth exploring. In fact, we have seen this idea of reducing a function to a discrete set of numbers before in Fourier series expansions where (for periodic $x(t)$) \n", "\n", "$a_n = \\frac{1}{T} \\int^{T}_0 x(t) \\exp (-j \\omega_n t )dt$\n", " \n", "\n", "with corresponding reconstruction as:\n", "\n", "$x(t) = \\sum_k a_n \\exp( j \\omega_n t)$\n", "\n", "\n", "But here we are generating discrete points $a_n$ by integrating over the **entire** function $x(t)$, not just evaluating it at a single point. This means we are collecting information about the entire function to compute a single discrete point $a_n$, whereas with sampling we are just taking individual points in isolation.\n", "\n", "Let's come at this the other way: suppose we are given a set of samples $[x_1,x_2,..,x_N]$ and we are then told to reconstruct the function. What would we do? This is the kind of question seldom asked because we typically sample, filter, and then do something else without trying to reconstruct the function from the samples directly.\n", "\n", "Returning to our reconstruction challenge, perhaps the most natural thing to do is draw a straight line between each of the points as in linear interpolation. The next block of code takes samples of the $sin$ over a single period and draws a line between sampled ordinates." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: pylab import has clobbered these variables: ['f']\n", "%matplotlib prevents importing * from pylab and numpy\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax = subplots()\n", "\n", "f = 1.0 # Hz, signal frequency\n", "fs = 20.0 # Hz, sampling rate (ie. >= 2*f) \n", "t = arange(-1,1+1/fs,1/fs) # sample interval, symmetric for convenience later\n", "x = sin(2*pi*f*t)\n", "ax.plot(t,x,'o-')\n", "ax.set_xlabel('time',fontsize=18)\n", "ax.set_ylabel('amplitude',fontsize=18)\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this plot, notice how near the extremes of the $sin$ at $t=1/(4f)$ and $t=3/(4 f)$, we are taking the same density of points since the sampling theorem makes no requirement on *where* we should sample as long as we sample at a regular intervals. This means that on the up and down slopes of the $sin$, which are obviously linear-looking and where a linear approximation is a good one, we are taking the same density of samples as near the curvy peaks. Here's a bit of code that zooms in to the first peak to illustrate this." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.09999999999999998, 0.4, 0, 1.1)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax = subplots()\n", "\n", "ax.plot(t,x,'o-')\n", "ax.axis( xmin = 1/(4*f)-1/fs*3, xmax = 1/(4*f)+1/fs*3, ymin = 0, ymax = 1.1 )\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To drive this point home (and create some cool matplotlib plots), we can construct the piecewise linear interpolant and compare the quality of the approximation using numpy.piecewise:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [], "source": [ "interval=[] # piecewise domains\n", "apprx = [] # line on domains\n", "# build up points *evenly* inside of intervals\n", "tp = hstack([ linspace(t[i],t[i+1],20,False) for i in range(len(t)-1) ])\n", "# construct arguments for piecewise2\n", "for i in range(len(t)-1):\n", " interval.append( np.logical_and(t[i] <= tp,tp < t[i+1]))\n", " apprx.append( (x[i+1]-x[i])/(t[i+1]-t[i])*(tp[interval[-1]]-t[i]) + x[i])\n", "x_hat = np.piecewise(tp,interval,apprx) # piecewise linear approximation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we can examine the squared errors in the interpolant. The following snippet plots the $sin$ and with the filled-in error of the linear interpolant." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ncMgI/x9SbLxgIvRpTwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax1 = figure().add_subplot(111)\n", "ax1.fill_between(tp,x_hat,sin(2*pi*f*tp),facecolor='red')\n", "ax1.set_xlabel('time',fontsize=18)\n", "ax1.set_ylabel('Amplitude',fontsize=18)\n", "ax2 = ax1.twinx()\n", "sqe = ( x_hat - sin(2*pi*f*tp))**2\n", "ax2.plot(tp, sqe,'r')\n", "ax2.axis(xmin=-1,ymax= sqe.max() )\n", "ax2.set_ylabel('squared error', color='r',fontsize=18)\n", "ax1.set_title('Errors with Piecewise Linear Interpolant')\n", "\n", "# ax1.figure.savefig('figure_00@.png', bbox_inches='tight', dpi=300)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note: I urge you to change the $fs$ sampling rate in the code above then rerun this notebook to see how these errors change with more/less sampling points." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we could pursue this line of reasoning with higher-order polynomials instead of just straight lines, but this would all eventually take us to the same conclusion; namely, that all of these approximations improve as the density of sample points increases, which is the *exact* opposite of what the sampling theorem says --- there is *sparse* set of samples points that will retrieve the original function. Furthermore, we observed that the quality of the piecewise linear interpolation is sensitive to *where* the sample points are taken and the sampling theorem is so powerful that it *has no such requirement*. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reconstruction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at this another way by examing the Fourier Transform of a signal that is bandlimited and thus certainly satisfies the hypothesis of the sampling theorem:\n", "\n", "$X(f) = 0$ where $|f|> W$\n", "\n", "Now, the inverse Fourier transform of this is the following:\n", " \n", "$x(t) = \\int_{-W}^W X(f) e^{j 2 \\pi f t} df$\n", "\n", "We can take the $X(f)$ and expand it into a Fourier series by pretending that it is periodic with period $2 W$. Thus, we can formally write the following:\n", " \n", "$$X(f) = \\sum_k a_k e^{ - j 2 \\pi k f/(2 W) }$$\n", "\n", "we can compute the coefficients $a_k$ as \n", "\n", "$$a_k = \\frac{1}{2 W} \\int_{-W}^W X(f) e^{ j 2 \\pi k f/(2 W) } df$$\n", "\n", "These coefficients bear a striking similarity to the $x(t)$ integral we just computed above. In fact, by lining up terms, we can write:\n", "\n", "$$a_k = \\frac{1}{2 W} x \\left( t = \\frac{k}{2 W} \\right)$$\n", "\n", "Now, we can write out $X(f)$ in terms of this series and these $a_k$ and then invert the Fourier transform to obtain the following:\n", "\n", "$$x(t) = \\int_{-W}^W \\sum_k a_k e^{ - j 2 \\pi k f/(2 W) } e^{j 2 \\pi f t} df$$\n", "\n", "substitute for $a_k$\n", " \n", "$$x(t) = \\int_{-W}^W \\sum_k ( \\frac{1}{2 W} x( t = \\frac{k}{2 W} ) ) e^{ - j 2 \\pi k f/(2 W) } e^{j 2 \\pi f t} df$$\n", "\n", "switch summation and integration (usually dangerous, but OK here)\n", "\n", "$$x(t) = \\sum_k x(t = \\frac{k}{2 W}) \\frac{1}{2 W} \\int_{-W}^W e^{ - j 2 \\pi k f/(2 W) +j 2 \\pi f t} df$$\n", "\n", "which gives finally:\n", "\n", "$$x(t) = \\sum_k x(t = \\frac{k}{2 W}) \\frac{sin(\\pi (k-2 t W))} {\\pi (k- 2 t W)}$$\n", "\n", "And this what we have been seeking! A formula that reconstructs the function from its samples. Let's try it!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that since our samples are spaced at $t= k/f_s$, we'll use $W= f_s /2$ to line things up." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = figure().add_subplot(111)\n", "t = linspace(-1,1,100) # redefine this here for convenience\n", "ts = arange(-1,1+1/fs,1/fs) # sample points\n", "num_coeffs=len(ts) \n", "sm=0\n", "for k in range(-num_coeffs,num_coeffs): # since function is real, need both sides\n", " sm+=sin(2*pi*(k/fs))*sinc( k - fs * t)\n", "ax.plot( t,sm,'--',t,sin(2*pi*t),ts, sin(2*pi*ts),'o')\n", "ax.set_title('sampling rate=%3.2f Hz' % fs )\n", "\n", "# ax.figure.savefig('figure_00@.png', bbox_inches='tight', dpi=300)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can do the same check as we did for the linear interpolant above as" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax1 = figure().add_subplot(111)\n", "ax1.fill_between(t,sm,sin(2*pi*f*t),facecolor='red')\n", "ax1.set_ylabel('Amplitude',fontsize=18)\n", "ax2 = ax1.twinx()\n", "sqe = (sm - sin(2*pi*f*t))**2\n", "ax2.plot(t, sqe,'r')\n", "ax2.axis(xmin=0,ymax = sqe.max())\n", "ax2.set_ylabel('squared error', color='r',fontsize=18)\n", "ax1.set_title('Errors with sinc Interpolant')\n", "\n", "# ax1.figure.savefig('figure_00@.png', bbox_inches='tight', dpi=300)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These interpolating functions are called the \"Whittaker\" interpolating functions. Let's examine these functions more closely with the following code" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = figure()\n", "ax = fig.add_subplot(111) # create axis handle\n", "k=0\n", "fs=2 # makes this plot easier to read\n", "ax.plot (t,sinc( k - fs * t), \n", " t,sinc( k+1 - fs * t),'--',k/fs,1,'o',(k)/fs,0,'o',\n", " t,sinc( k-1 - fs * t),'--',k/fs,1,'o',(-k)/fs,0,'o'\n", ")\n", "ax.hlines(0,-1,1)\n", "ax.vlines(0,-.2,1)\n", "ax.annotate('sample value goes here',\n", " xy=(0,1),\n", " xytext=(-1+.1,1.1),\n", " arrowprops={'facecolor':'red','shrink':0.05},\n", " )\n", "ax.annotate('no interference here',\n", " xy=(0,0),\n", " xytext=(-1+.1,0.5),\n", " arrowprops={'facecolor':'green','shrink':0.05},\n", " )\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The vertical line in the previous plot shows that where one function has a peak, the other function has a zero. This is why when you put samples at each of the peaks, they match the sampled function exactly at those points. In between those points, the crown shape of the functions fills in the missing values. Furthermore, as the figure above shows, there is no interference between the functions sitting on each of the interpolating functions because the peak of one is perfectly aligned with the zero of the others (dotted lines). Thus, the sampling theorem says that the filled-in values are drawn from the curvature of the sinc functions, not straight lines as we investigated earlier. \n", "\n", "As an illustration, the following code shows how the individual Whittaker functions (dashed lines) are assembled into the final approximation (black-line) using the given samples (blue-dots). I urge you to play with the sampling rate to see what happens. Note the heavy use of numpy broadcasting in this code instead of the multiple loops we used earlier." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(-1.1, 1.1, -1.1, 1.1)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nvXv3ord0VlVu9dfXpeuX2HVuFxP8NCglAKSkpFBSUkJPBxUiM0Yl+Tpksq8vy6qZM192J2/xLx/Q\n7qV2dJzbsdp2LdzcWNStm8XnsaWc3Tn82uhXNVRjhUd7P8qmU5vIulH9NFwfHx+aN29uUhXLCq5c\nMewUVVL10NB/kv5DZPdIPNy0uYkoG6oxZ3cze1BJvg4J8fKiWEr2VXEX1L59e5o2bcqRI0csPo+L\npws6t5pzaUm9JGdPDoezDqskb4WmDZsysstIvjv2nUntLS5W1rw5tGwJx45V2axzk87M6D/D/P5t\n5I7xeA3VnN9ExWpCCP7cqhVfpaVV2W7EiBFs2bLFQVFpLz8ln3oe9dh/eD9BQUFah1OjzbxvJs0b\nNTeprVXj8qGhhtkqVZjgNwH/VtXvC2sP165dY//+/Qxxgjn9KsnXMU/5+PDTlSvkFhcbbTN69Gg2\nbdrkwKi05ebrRrOPm5GZmYmfn5/W4dRowe2CmdhzokltQ0JCLE/yISGGeedOKjo6mqCgIDw8PCA5\nGT78ULNYVJKvY3zr1+fzbt2oqpJNeHg4iYmJZGdbvwlITeDaxJVjJccYMGCAJlUC66oePXpw9epV\n0tPTzT84JKTaO3ktbdq0iVFl0yWjouC33zSLRV3RddDDLVviVcWKzoYNGxIaGmr1LJvC9MJKH/L+\n7fRp1pVuZuIsdu7cSVhYmNZh1Ck6nY6goCDLxuW7doW2bZ2yWJmUkqioKO6//37DC7t2Gf5R0ohK\n8kqlRo0axWYrq+UdGnCI/JQ7d166XlzMl2lpBDjBtMny4uLiVJLXgMXj8kLAnj3g5VXhrcIS7faQ\nBTh16hQlJSV0794dpDQMK6kkrzibsiRvzVRKzxDPCiUOVl6+TJiXl1Ubddtabm4uKSkpBAYGah1K\nrVKsN/7cp4xV2wFW4vClwwz4StvFbFFRUYwYMcIwdfLMGXBxMUz51IhK8kqlunTpgqenp1WbLt+9\nKEpKyacXL/JcG9PrjzvCnj17CAwMpH79+lqHUquELg0lMa3qDT769+9PUlISN2/etMk5PzvwGQ/c\n84BN+rJUVFQUw4cPN/xQdhev4Vx5leTrMCklaQUFRt+3dsjGK8SLnN237+QTrl0ju7iY4U2aWNyn\nrSWNSWLbj9vUUI0djOk6hk8PfFplG3d3d/z8/Dhw4IDV58u8kcmq5FVMD5xudV+WKiwsJDY2lmHD\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fs=5.0 # sampling rate\n", "k=array(sorted(set((t*fs).astype(int)))) # sorted coefficient list\n", "fig,ax = subplots()\n", "\n", "ax.plot(t,(sin(2*pi*(k[:,None]/fs))*sinc(k[:,None]-fs*t)).T,'--', # individual whittaker functions\n", " t,(sin(2*pi*(k[:,None]/fs))*sinc(k[:,None]-fs*t)).sum(axis=0),'k-', # whittaker interpolant\n", " k/fs,sin(2*pi*k/fs),'ob')# samples\n", "ax.set_xlabel('time',fontsize=14)\n", "ax.axis((-1.1,1.1,-1.1,1.1));\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, if you've been following carefully, you should be somewhat uncomfortable with the second to the last plot that shows the errors in the Whittaker interpolation. Namely, *why are there any errors*? Does not the sampling theorem guarantee exact-ness which should mean no error at all? It turns out that answering this question takes us further into the implications of the sampling theorem, but that is the topic of our next post.\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section, we started our investigation of the famous sampling theorem that is the bedrock of the entire field of signal processing and we asked if we could reverse-engineer the consquences of the sampling theorem by reconstructing a sampled function from its discrete samples. This led us to consider the famous *Whittaker interpolator*, whose proof we sketched here. However, after all this work, we came to a disturbing conclusion regarding the exact-ness of the sampling theorem that we will investigate in a subsequent posting. In the meantime, I urge you to start at the top of notebook and play with the sampling frequency, and maybe even the sampled function and see what else you can discover about the sampling theorem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "* This is in the [IPython Notebook format](http://ipython.org/) and was converted to HTML using [nbconvert](https://github.com/ipython/nbconvert).\n", "\n", "* See [Signal analysis](http://books.google.com/books?id=Re5SAAAAMAAJ) for more detailed mathematical development.\n", "\n", "* The IPython Notebook corresponding to this post can be found [here](https://github.com/unpingco/Python-for-Signal-Processing/blob/master/Sampling_Theorem.ipynb)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }