{ "metadata": { "name": "Sampling_Theorem_Part_2" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "We left off with the disturbing realization that even though we are satisfied the requirements of the sampling theorem, we still have errors in our approximating formula. We can resolve this by examining the Whittaker interpolating functions which are used to reconstruct the signal from its samples." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division\n", "\n", "t = linspace(-5,5,300) # redefine this here for convenience\n", "\n", "fig,ax = subplots()\n", "\n", "fs=5.0\n", "ax.plot(t,sinc(fs * t))\n", "ax.grid()\n", "ax.annotate('This keeps going...',\n", " xy=(-4,0),\n", " xytext=(-5+.1,0.5),\n", " arrowprops={'facecolor':'green','shrink':0.05},fontsize=14)\n", "ax.annotate('... and going...',\n", " xy=(4,0),\n", " xytext=(3+.1,0.5),\n", " arrowprops={'facecolor':'green','shrink':0.05},fontsize=14)\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 1, "text": [ "" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice in the above plot that the function extends to infinity in either direction. This basically means that the signals we can represent must also extend to infinity in either direction which then means that we have to sample forever to exactly reconstruct the signal! So, on the one hand the sampling theorem says we only need a sparse density of samples, this result says we need to sample forever. No free lunch here!\n", "\n", "This is a deep consequence of dealing with band-limited functions which, as we have just demonstrated, are **not** time-limited. Now, the new question is how to get these signals into a computer with finite memory. How can we use what we have learned about the sampling theorem with these finite-duration signals?" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Approximately Time-Limited Functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's back off a bit and settle for functions that are *approximately* time-limited in the sense that almost all of their energy is concentrated in a finite time-window:\n", "\n", "$\\int_{-\\tau}^\\tau |f(t)|^2 dt = E-\\epsilon$\n", "\n", "where $E$ is the total energy of the signal:\n", "\n", "$\\int_{-\\infty}^\\infty |f(t)|^2 dt = E$\n", "\n", "Now, with this new definition, we can seek out functions that are band-limited but come very, very (i.e. within $\\epsilon$) close to being time-limited as well. In other words, we want functions $\\phi(t)$ so that they are band-limited:\n", "\n", "$\\phi(t) = \\int_{-W}^W \\Phi(\\nu) e^{2 \\pi j \\nu t} dt$ \n", "\n", "and coincidentally maximize the following:\n", "\n", "$\\int_{-\\tau}^\\tau |\\phi(t) |^2 dt$\n", "\n", "After a lot of complicated math that I'm skipping, this eventually boils down to solving the following normalized eigenvalue equation:\n", "\n", "$\\int_{-1}^1 \\psi(x)\\frac{\\sin(2\\pi\\beta(t-x)}{\\pi(t-x)} dx = \\lambda \\psi(t)$\n", "\n", "with $\\psi(t) = \\phi(\\tau t )$ and $\\beta=\\tau W$. Note that $\\beta$ is proportional to the time-bandwith product. Fortunately, this is a classic problem and the $\\psi$ functions turn out to be the angular prolate spheroidal wave functions. Also, it turns out that the $\\phi$ functions are orthonormal on the real-line:\n", "\n", "$\\int_{-\\infty}^\\infty \\phi_k(t) \\phi_n(t)^* dt = \\delta_{k,n}$\n", "\n", "and *orthogonal* on the finite interval $[-\\tau,\\tau]$\n", "\n", "$\\int_{-\\tau}^\\tau \\phi_k(t) \\phi_n(t)^* dt = \\lambda_k \\delta_{k,n}$\n", "\n", "This is a lot to digest at one sitting, but all we have to do here is watch the largest eigenvalue because it represents the fraction of energy contained in the interval $[-\\tau,\\tau]$. In particular, we want to track the largest eigenvalue as a function of the time-bandwidth product because this will tell us for a fixed $2W$ bandwidth, how large a time-extent we must sample through in order to approximately represent signal in terms of these angular prolate spheroidal functions.\n", "\n", "Since we have the Python-based tools at our disposal to motivate this investigation, let's look into the eigenvalues and eigenvectors of this form of the equation:\n", "\n", "$\\int_{-1}^1 \\psi(x)\\frac{\\sin(2\\pi\\sigma(t-x)/4)}{\\pi(t-x)} dx = \\lambda \\psi(t)$\n", "\n", "because it is neatly parametered by the time-bandwidth product $\\sigma = (2\\tau)(2W)$." ] }, { "cell_type": "code", "collapsed": true, "input": [ "def kernel(x,sigma=1):\n", " 'convenient function to compute kernel of eigenvalue problem'\n", " x = np.asanyarray(x)\n", " y = pi*where(x == 0,1.0e-20, x)\n", " return sin(sigma/2*y)/y" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we are ready to setup the eigenvalues and see how they change with the time-bandwidth product." ] }, { "cell_type": "code", "collapsed": false, "input": [ "nstep=100 # quick and dirty integral quantization\n", "t = linspace(-1,1,nstep) # quantization of time\n", "dt = diff(t)[0] # differential step size\n", "def eigv(sigma):\n", " return eigvalsh(kernel(t-t[:,None],sigma)).max() # compute max eigenvalue\n", "\n", "sigma = linspace(0.01,4,15) # range of time-bandwidth products to consider\n", "\n", "fig,ax = subplots()\n", "ax.plot(sigma, dt*array([eigv(i) for i in sigma]),'-o')\n", "ax.set_xlabel('time-bandwidth product $\\sigma$',fontsize=14)\n", "ax.set_ylabel('max eigenvalue',fontsize=14)\n", "ax.axis(ymax=1.01)\n", "ax.grid()\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Keep in mind that this cannot actually *achieve* a maximum of one since that would mean that it *is* possible to have both time/band-limited functions (which is impossible). But, note that if you numerically achieve this than it has to do with the crude approximation to the integral that we are using.\n", "\n", "The important part of this graph is how steep the curve is. Namely, if we have a time-bandwidth product of $3$ or more, then we have already found an eigenfunction (or, vector, in our case) that is compressed *almost* entirely into the interval $[-1,1]$. Now let's look at the corresponding eigenvector." ] }, { "cell_type": "code", "collapsed": false, "input": [ "sigma=3\n", "w,v=eigh(kernel(t-t[:,None],sigma))\n", "maxv=v[:, w.argmax()]\n", "fig,ax=subplots()\n", "ax.plot(t,maxv)\n", "ax.set_xlabel('time',fontsize=14)\n", "ax.set_title('Eigenvector corresponding to e-value=%2.4e;$\\sigma$=%3.2f'%(w.max()*dt,sigma))\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 4, "text": [ "" ] }, { "output_type": "display_data", "png": "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\ncIC5ubmpVQgMjf/77783+NjqMskNX5FIhKysLPz555+qn7i4OLUyly5dglgsVvudl5eX6v8XLlzA\npUuX0KZNG9VPcnIyfv/9d1WZDh06qP7fokUL3L59W/V47Nixqhshn376KcaNG2fQduVyOby9vWFn\np/9UXbp0SS1mAPD29salS5c0HlNd2valbbsKhULtd5q2beg59PX1xZo1a5CYmAgPDw+MGTMGly9f\n1ridTp06qY7JkGPW9r5oes+9vb3BdMwyXntbTk5OuH37Ni5fvqzx2tG1nboMPceA7vP46aefqjo1\nvPDCCwC0X3sPZGRkICwsTLWtkydP4tq1awbF/eBmsCGfD30cHBywa9cu7N27F56enli9ejVGjRoF\niUTSoPIDBw7EyJEjUVFRgWvXruH69etYsGCBQa+t+/x7772HUaNGQSwW4+LFizqPddu2bWrvgYuL\nC27evKkW+19//QUXF5eHjknfNXP9+nVMmzYNGRkZOHDgAPr374+tW7di2rRpBp/n2kQiEaRSKUaO\nHKn1Rq2zs7PW+HU9p499gyJuAh07dnzog3bx4kX4+fkB4B/mzp0748yZMwZtr24PiREjRmDevHlQ\nKBTYtWsX8vLyAPBEpmu7Xl5euHjxIpRKJZo1a6ZzHx07doRcLgdjTO1DGRAQoPU1huzLkO1q23bt\n3+k71jFjxmDMmDG4desW4uPjsWDBAmRkZADg78UDFy9eRMeOHesVmyaenp4PvecXLlxQveeG0rSd\n2teOJg157x7Qdx7Hjh2r9ljbtfdgH1OnTkVOTg569+4NkUiEsLAwjUnIyckJFRUVqseXL19WfWHp\n+3wMGjQIP/zwg8bn+vbti7179wIAunfvjtzcXNVzffr00dn7RVv5q1ev4tixY8jJyYGDgwPatm2r\n6sabkpJi0L60Pa/vWMeNG6f2BXvnzh1UV1fj7Nmzqmvil19+Qbdu3R56rb6eVe+//z5mzpwJR0dH\nAMD9+/fh5OSket7Q81xXVVUV3NzcND736KOPao1f13P6mKyfv75v1N69e6NZs2ZITU1FdXU1srKy\n8NNPP6mef+yxx+Di4oIVK1bg7t27UCqVOHnyJI4ePWrQ/tzd3SGVShEbG4suXbqga9euBm03MjIS\nnp6eWLhwISoqKnDv3j0cOnQIAODh4YFz586p9vH444/DyckJK1asQFVVFXJzc7Fnzx7ExMQYdI60\n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\nRK5CYII=\n" } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In fact, since the angular prolate spheroidal wave functions are in scipy.special, we can check our crude result against a better numerical solution" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import scipy.special\n", "\n", "# quick definition to clean up the function signature and normalize\n", "def pro(t,k=0,sigma=3): \n", " 'normalized prolate angular spherioidal wave function wrapper'\n", " tmp= scipy.special.pro_ang1(0,k,pi/2*sigma,t)[0] #kth prolate function\n", " den=linalg.norm(tmp[np.logical_not( np.isnan(tmp))])# drop those pesky NaNs at edges\n", " return tmp/den # since e-vectors are likewise normalized\n", "\n", "fig,ax=subplots()\n", "\n", "ax.plot(t,pro(t),'b.',t,maxv,'-g');\n", "ax.set_xlabel('time')\n", "ax.set_title('Comparison of $0^{th}$ prolate function')\n", "\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 5, "text": [ "" ] }, { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEZCAYAAAB7HPUdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcTPn/B/DXpHSn0IWmlIouSJQ2dom1i9C6tXJZ1mXr\ni/hat+W77LKu8cVaLWrXWreJWBRq3LMIoVqXolximi5ujVRSTZ/fH37mK2qaUp25vJ+Ph4c5nc85\n855zeXd6fz7nDI8xxkAIIUQjaHEdACGEkIZDSZ8QQjQIJX1CCNEglPQJIUSDUNInhBANQkmfEEI0\nCCV9QgjRIJT0Cfl/69atQ05ODgBgwYIFiIqK4jgiQuoeJX1C/l9aWhosLS0BAIwx9OjRg+OICKl7\nlPTJB2vfvj3+/vtvrsOQuX37Njp16oQmTZogNDRUoWXOnj2LjIwMXLx4EQCQkpKC1NRUTJ06tT5D\nfY+trS1OnjzZIO9Vm+1UF5TteNE0lPSViEAggIeHB4yNjdGqVSv4+vri/PnzXIdVrRs3bijVVfGq\nVavw6aefIj8/H8HBwe/NP3jwIJYvX46VK1dix44dAAAbGxv4+Pjgo48+QlFREWxsbNCtWzdIJJIG\njZ3H44HH4ynU1tbWFqdOnar1e1W3nerKu3Eq2/GiabS5DoC8tnbtWoSEhCAsLAx9+/ZF48aNIRQK\nER0dje7du3MdXqXKysqgra18h9CDBw/QrVu3Suc9f/4cS5YswdWrVwEA3t7e6N+/P86fP4/u3bvj\n4cOHSEtLQ48ePZCfnw9zc3NkZmaCz+d/cFx1vb14PB4+5NFZ8rZTXfrQOEkdY4RzEomEGRkZsX37\n9lXZJiUlhfXs2ZOZmJgwV1dXFh0dLZvXunVrtnr1atahQwdmZGTEJkyYwHJycli/fv1YkyZNWJ8+\nfVheXl6F9itWrGAuLi7M1NSUjR8/nhUXF8vmr1ixgtnb2zNjY2Pm4uLCDhw4UGHZkJAQ1qFDB6an\np8fKyspY69at2cmTJxljjK1cuZJZWVkxY2Nj1q5dO9nP5cX/Zr3//e9/WceOHVnTpk3ZiBEjKsSk\n6Lbo1asXa9SoEdPT02PGxsYsPT29wrLR0dFszJgxsumgoCAWGRnJDhw4wCIjI9n9+/fZmjVrWG5u\nLrt37x5btWoVu3btWpX7pbpt+e72kkqlcuO3tbWVbTN5+2HMmDFMS0uL6evrMyMjI7Z69WrGGGNi\nsZgNHTqUmZmZMTs7O/bLL79UGve72yktLY3xeDx29+5dWZtx48axBQsWKLSPHj58yIYMGcLMzMxY\n8+bN2bRp0yqNc9WqVax169bsxIkTCu3PmhwXRDGU9JVAbGws09bWZlKptNL5JSUlzN7enq1YsYKV\nlpayU6dOyU5Uxl6fGN7e3uzRo0dMLBYzc3Nz5u7uzpKTk1lxcTHr3bs3W7x4sWx9rVu3Zh06dGCZ\nmZns2bNnrHv37hVO7r1797Ls7GzGGGN79uxhhoaGLCcnR7asu7s7y8zMlJ18bxLVrVu3mLW1tWzZ\nBw8esLt371YZ/+3bt2XvaWtry7y8vFh2djZ79uwZc3Z2Zps3b1Z4W7y9Lh8fH7Zly5ZKt+XGjRtZ\ncHCwbPq7775jy5Ytk7N35KtuW767varbl28n/cr2w5vpd9syxphUKmWdO3dmS5YsYaWlpezevXus\nTZs27OjRo5XG/u52ejfpf/3112zhwoUV3q+yfSSVSlnHjh3ZzJkzWVFRESsuLmbnzp2rMs63pxU5\nthU5LojiqKavBJ4+fYoWLVpAS6vy3XHx4kUUFhZi3rx50NbWRq9evTBw4EAIBAIAr/98njZtGszM\nzNCqVSt88skn8Pb2hpubG3R1dTFkyBAkJSXJ1sfj8RAcHAwrKyuYmpri+++/R0REhGz+8OHDZaNY\nvvzySzg6OiIhIUG27PTp02FlZQVdXd0KcWpra+PVq1e4efMmSktLYWNjgzZt2lQZ/9vvCQDTp0+H\npaUlTE1NMWjQICQnJyu8Ld5dF6uinCCRSKCnpyebbty4MQoKCiptq4jqtuW726u6ffk2efuhMpcv\nX8aTJ0+wYMECaGtrw87ODpMmTcLu3burXKaq7VTV/Mr20aVLl5CdnY3Vq1dDX18furq6CpckFTm2\nFTkuiOIo6SuB5s2b48mTJygvL690flZWFqytrSv8rHXr1sjKypJNW1hYyF7r6+tXmNbT03svsb29\nPhsbmwrr2r59O9zd3WFqagpTU1PcuHEDT548qXTZt9nb2+Pnn3/GokWLYGFhgZEjRyI7O7vK+MVi\ncYWfvUlwbz5DZclY0XVV1RlqbGxcIZG9fPkSzZo1q7StouRty3fnK7Iv36hsPzx9+rTKOB48eICs\nrCxZe1NTU6xYsQKPHj2qchlFO43feHsfGRgYoKCgAJmZmWjdunWVFy3yKLI9FDkuiOIo6SsBb29v\n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\n" } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since these two lines are basically on top of each other, it implies that our extremely crude approximation to this function is actually not bad. You can play with the nstep variable above to see how the discrete time step influences this result.\n", "\n", "What does this all mean?\n", "\n", "The key fact we have demonstrated here is that when the time-bandwith product is relatively large ($\\sigma>3$), then all of the signal energy in our *approximately* time-limited functions is concentrated in the zero-th prolate function. This means that any approximately time-limited function can be expanded into the basis of prolate functions in the following way:\n", "\n", "$f(t) = \\sum_k a_k \\psi_k(t)$\n", "\n", "where $a_0 >> a_k$ when the time-bandwidth product is bigger than three, $\\sigma>3$.\n", "\n", "What we have been exploring here is formally the result of the Landau-Pollak theorem which says that if we take $\\sigma+1$ prolate functions, given a fixed $\\epsilon$, then we can then reconstruct the signal with a mean-squared error ($\\mathbb{L}_2$-norm) less than $12\\epsilon$. Notwithstanding what the theorem says, we still must control $\\epsilon$ here by expanding the time-interval over which we consider the signal. This means that the time-extent, or, duration, of the signal is what is improving the approximation. The prolate functions are a *means* to getting under this bound. The choice of the duration fixes $\\epsilon$.\n", "\n", "Let's test this bound in Python by considering our favorite band-limited function: $X(f)=1$ if $|f| < W$ and zero otherwise.\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "W=1/2 # take bandwidth = 1 Hz. This makes the total signal power=1\n", "# compute epsilon for this time-extent\n", "epsilon=1 - 2/pi*scipy.special.sici( 2*pi )[0] # using sin-integral special function\n", "\n", "fig,ax = subplots()\n", "\n", "t = linspace(-3,3,100)\n", "ax.plot(t,sinc(t)**2)\n", "ax.hlines(0,-3,3)\n", "tt = linspace(-1,1,20)\n", "ax.fill_between(tt,0,sinc(tt)**2,facecolor='g',alpha=0.5)\n", "ax.set_title('$x(t)^2$: $\\epsilon=%2.4f$ over shaded region' % epsilon)\n", "ax.set_xlabel('time')\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 6, "text": [ "" ] }, { "output_type": "display_data", "png": "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\nnvt/JxgxsIj4L1MAAAAASUVORK5CYII=\n" } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The theorem says that \n", "\n", "$\\int_{-\\infty}^\\infty | x(t) - \\sum_{k=0}^{\\sigma+1} a_k \\psi_k(t) |^2 dt < 12 \\epsilon$\n", "\n", "which computes to 0.0972*12 = 1.1664 in our case, which is not saying much since the total energy of the signal was equal to 1 and this means that the error is on the same order as the signal itself! Let's try another band-limited function:\n", "\n", "$X(f) = (1+f)$ if $f \\in [-1,0]$\n", "\n", "$X(f) = (1-f)$ if $f \\in [0,1]$\n", "\n", "and zero otherwise. This corresponds to the following time-domain function\n", "\n", "$x(t)=\\frac{\\sin(\\pi t)^2}{\\pi^2 t^2}$\n", "\n", "Let' quickly plot this:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "epsilon= 2/3. + 4/3/pi*scipy.special.sici(2*pi)[0]-8/3/pi*scipy.special.sici(4*pi)[0] # total energy is 2/3 in this case\n", "\n", "fig,ax = subplots()\n", "t = linspace(-3,3,100)\n", "ax.plot(t,sinc(t)**4)\n", "ax.hlines(0,-3,3)\n", "tt = linspace(-1,1,20)\n", "ax.fill_between(tt,0,sinc(tt)**4,facecolor='g',alpha=0.5)\n", "ax.set_title('$x(t)^2$: $\\epsilon=%2.4f$ over shaded region' % epsilon)\n", "ax.set_xlabel('time')\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 7, "text": [ "" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And in this case, $12\\epsilon=0.0236$ which is a lot better, as we would expect since $x(t)$ is much more tightly concentrated in the interval $[-1,1]$.\n", "\n", "What have we learned? If the signal is concentrated in the interval, then we don't need a large duration over which to sample it. The Landau-Pollak theorem provides specific criterion for what can expect by using prolate spheroidal wave functions that are constructed to optimize their energies in a fixed interval. The key take-away from all this is that we want large duration-bandwidth products, $duration >> 1/bandwidth$ so that we can be assured of collecting enough signal energy in the duration.\n", "\n", "Under the condition or large time-bandwidth products, let's reconsider our eigenvalue problem but now let's separate the $\\tau$ and $W$ terms as in the following:\n", "\n", "$\\int_{-\\tau}^\\tau \\phi(x)\\frac{sin(2\\pi W (t-x)}{\\pi(t-x)} dx = \\lambda \\phi(t)$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def kernel_tau(x,W=1):\n", " 'convenient function to compute kernel of eigenvalue problem'\n", " x = np.asanyarray(x)\n", " y = pi*where(x == 0,1.0e-20, x)\n", " return sin(2*W*y)/y\n", "\n", "nstep=300 # quick and dirty integral quantization\n", "t = linspace(-1,1,nstep) # quantization of time\n", "tt = linspace(-2,2,nstep)# extend interval\n", "\n", "w,v=eig(kernel_tau(t-tt[:,None],5))\n", "ii = argsort(w.real) \n", "maxv=v[:, w.real.argmax()].real\n", "fig,ax = subplots()\n", "ax.plot(tt,maxv)\n", "##plot(tt,v[:,ii[-2]].real)\n", "ax.set_xlabel('time',fontsize=14)\n", "ax.set_title('$\\phi_{max}(t),\\sigma=10*2=20$',fontsize=16)\n", "\n", "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 8, "text": [ "" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This turns out to be the sinc function. This means that when the time-bandwidth product is large, the prolate spheroidal Wave Functions devolve into sinc functions in the eigenvalue problem. This means that under these conditions, it is okay to use the Whittaker interpolating functions as we used previously." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Summary" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section, at first blush, it may look like we accomplished nothing. We started out investigating why is it that we have some residual error in the reconstruction formula using the Whittaker approximation functions. Then, we recognized that we cannot have signals that are simultaneously time-limited and band-limited. This realization drove us to investigate \"approximately\" time-limited functions. Through carefully examining the resulting eigenvalue problem, we realized that the Landau-Pollak theorem provides criterion for finite-dimensionality of band-limited signals in terms of approximately time-limited optimal prolate spheroidal wave functions. However, the real profit of these results in our discussion is that we require large time-bandwidth products in order to reduce our approximation errors and under these conditions, we can legitimately use the same Whittaker interpolating functions that we started out with in the first place! Ultimately, if we want to reduce our reconstruction errors, then we just have to sample over a longer duration since capturing the signal energy in the time domain is based on accumulating more of the signal over a longer duration." ] }, { "cell_type": "heading", "level": 2, "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_Part_2.ipynb)." ] } ], "metadata": {} } ] }