{ "metadata": { "name": "", "signature": "sha256:fe1bc9b4f4bfe626ffbb7096ba36bfc36735bf870182ab5f9d0337b973751444" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import print_function\n", "from deltasigma import *\n", "from IPython.core.display import Image" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "# skip this, this is just to display nice tables.\n", "from itertools import izip_longest\n", "class Table(list):\n", " def _repr_html_(self):\n", " html = [\"\"]\n", " for row in self:\n", " html.append(\"\")\n", " for col in row:\n", " try:\n", " float(col)\n", " html.append(\"\" % col)\n", " except(ValueError):\n", " html.append(\"\" % col)\n", " html.append(\"\")\n", " html.append(\"
%.6f%s
\")\n", " return ''.join(html)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Modulator realization and dynamic range scaling - # demo3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this ipython notebook, the following is demonstrated:\n", "\n", " * A 5th order delta sigma modulator is synthesized, with optimized zeros and an OSR equal to 42.\n", "\n", " * We then convert the synthesized NTF into `a`, `g`, `b`, `c` coefficients for the `CRFB` modulator structure.\n", " \n", " * The maxima for each state are evaluated.\n", " \n", " * The `ABCD` matrix is scaled so that the state maxima are less than the specified limit.\n", "\n", " * The state maxima are re-evaluated and limit compliance is checked.\n", "\n", "**NOTE:** This is an ipython port of `dsdemo3.m`, from the **[MATLAB Delta Sigma Toolbox](http://www.mathworks.com/matlabcentral/fileexchange/19-delta-sigma-toolbox)**, written by Richard Schreier." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Delta sigma modulator synthesis" ] }, { "cell_type": "code", "collapsed": false, "input": [ "order = 5\n", "R = 42\n", "opt = 1\n", "H = synthesizeNTF(order, R, opt)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's inspect the NTF, printing out the transfer function and plotting poles and zeros with respect to the unit circle." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print(pretty_lti(H))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " (z^2 - 1.995z + 1) (z^2 - 1.998z + 1) (z - 1) \n", "--------------------------------------------------------------\n", " (z^2 - 1.614z + 0.6657) (z^2 - 1.797z + 0.8552) (z - 0.7783) \n" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "figure(figsize=(10, 5))\n", "plotPZ(H, showlist=True)\n", "title('NTF');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nvSV+oefkiDPeHTuA/v3FmRjTP05OwOLFwNWrwOuvixEKV1cxp6yDP+BZObVt2xaXLl1Camoqevfu\nDQ8PD/j5+Un2Vr979y769esHX19f+Pr64tChQwCA2NhYeHl5wcvLC97e3nj06JHac8PDw9GrVy8A\nwKZNm9C5c2cAQHJyMhwcHFSFt2vXroiMjFR7fmJiItq3b48WLVqgRYsWOHz4MIAXF631798fTk5O\nePPNN1XPiYqKgpOTE1q0aIFNmzZJvv/Ro0erYq9fvz4+//xzAMDXX38NX19feHh4qFbmSkxMhIOD\nA0JCQuDm5obr169jypQpcHNzg7u7O9avX696T+3bt1eNNhw4cEDtuBEREQgODs6XH3d3d7i5uWH6\n9Omq7cHBwYiIiJCMXaNIARTyNnQuN5do926ioCCihg2J5s4lun9f7qhYWeXmEu3bR9S3L1HdukSf\nfkqUmip3VMapsN9J1apVIyKirKws6tWrF/344480fvx4+uyzz4iIaN++feTp6UlERKtXr6bx48cT\nEdHgwYPpwIEDRER09epVcnJyIiKinj170qFDh4iIKCMjg7Kzs/MdLzs7mxo0aJBv25tvvkmLFy+m\nHj16UEREhGr7vn37aMCAAWoxP378mJ4+fUpERBcuXCAfHx8iIoqOjqaaNWtSUlIS5ebmkp+fHx08\neJCePHlCVlZWdOnSJSIiGjBgAPXs2bPQXCUmJpKzszNdu3aNdu7cSWPGjCEiopycHOrRowft37+f\nEhISqEKFCnT06FEiItqwYQMFBARQbm4u3b59m5o0aULJycm0YMECmjNnDhER5ebmUnp6utrxunTp\nQsePHycioqSkJGrSpAndu3ePsrOz6fXXX6fNmzer9m3WrBk9evRI7TWkfr5lrUN6vXY0047sbGD9\nemDBArFk5OTJYnENPuM1bCYmQMeO4uvCBWDOHHGv8fjxwKRJYtlNJq8nT57A6/m8Tvv27TFixAi0\natUKv//+OwCgY8eOSElJUZuL3LNnD86fP696nJ6ejoyMDLRp0wbvv/8+hg4dij59+qg1uLl37x6q\nF1gdZ/HixXBxcUHr1q0xcOBA1faGDRtKLkmZmZmJ8ePH49SpUzA1NcXFixdV3/P19UWjRo0AAJ6e\nnkhISECVKlXQrFkz1XDvm2++ieXLl0vm4+nTp+jfvz8WL14MKysrLFq0CLt27VLlKCMjA5cuXYKV\n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\nFmEiIiJN/g/kLN178MlMjQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Evaluation of the coefficients for a CRFB topology\n", "The CRFB topology is depicted in the following diagram." ] }, { "cell_type": "code", "collapsed": false, "input": [ "Image(url='http://python-deltasigma.readthedocs.org/en/latest/_images/CRFB.png', retina=True)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the modulator order is 5, we're interested in the topology for odd order modulators." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Unscaled modulator" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the coefficients" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a, g, b, c = realizeNTF(H)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Feed-in selection\n", "We'll use a single feed-in for the input, to have a maximally flat STF.\n", "\n", "This means setting $\\ b_n = 0, \\ \\forall n > 1$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "b = np.concatenate((b[0].reshape((1, )), np.zeros((b.shape[0] - 1, ))), axis=0)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "t = Table()\n", "ilabels = ['#1', '#2', '#3', '#4', '#5', '#6']\n", "t.append(['Coefficients', 'DAC feedback', 'Resonator feedback', \n", " 'Feed-in', 'Interstage'])\n", "t.append(['', 'a(n)', 'g(n)', ' b(n)', ' c(n)'])\n", "[t.append(x) for x in izip_longest(ilabels, a.tolist(), g.tolist(), b.tolist(), c.tolist(), fillvalue=\"\")]\n", "t" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
CoefficientsDAC feedbackResonator feedbackFeed-inInterstage
a(n)g(n) b(n) c(n)
#10.0006670.0016220.0006671.000000
#20.0085830.0045930.0000001.000000
#30.0552010.0000001.000000
#40.2476070.0000001.000000
#50.5569350.0000001.000000
#60.000000
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "[['Coefficients',\n", " 'DAC feedback',\n", " 'Resonator feedback',\n", " 'Feed-in',\n", " 'Interstage'],\n", " ['', 'a(n)', 'g(n)', ' b(n)', ' c(n)'],\n", " ('#1',\n", " 0.0006670795813848548,\n", " 0.001622050471799641,\n", " 0.0006670795813848548,\n", " 1.0),\n", " ('#2', 0.00858263528791858, 0.004592653480622877, 0.0, 1.0),\n", " ('#3', 0.05520145164490777, '', 0.0, 1.0),\n", " ('#4', 0.24760725165069095, '', 0.0, 1.0),\n", " ('#5', 0.5569351152496758, '', 0.0, 1.0),\n", " ('#6', '', '', 0.0, '')]" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the state maxima" ] }, { "cell_type": "code", "collapsed": false, "input": [ "ABCD = stuffABCD(a, g, b, c);\n", "u = np.linspace(0, 0.6, 30);\n", "N = 1e4; \n", "T = np.ones((1, N))\n", "maxima = np.zeros((order, len(u)))\n", "for i in range(len(u)):\n", " ui = u[i]\n", " v, xn, xmax, _ = simulateDSM(ui*T, ABCD);\n", " maxima[:, i] = np.squeeze(xmax)\n", " if any(xmax > 1e2):\n", " umax = ui;\n", " u = u[:i+1];\n", " maxima = maxima[:, :i]\n", " break;\n", "# save the maxima\n", "prescale_maxima = np.copy(maxima)\n", "print('The state maxima have been evaluated through simulation.')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The state maxima have been evaluated through simulation.\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot of the state maxima" ] }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(order):\n", " semilogy(u, maxima[i, :],'o-')\n", " if not i:\n", " hold(True)\n", "grid(True)\n", "xlabel('DC input')\n", "ylabel('Peak value')\n", "title('Simulated State Maxima')\n", "xlim([0, 0.6]) \n", "ylim([1e-4, 10]);" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nWdgwiIhIlv8Dv++G1o4cwqwAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Scaled modulator\n", "### Calculate the scaled coefficients" ] }, { "cell_type": "code", "collapsed": false, "input": [ "ABCDs, umax, _ = scaleABCD(ABCD, N_sim=1e5)\n", "as_, gs, bs, cs = mapABCD(ABCDs)\n", "print('\\nScaled modulator, umax = %.2f\\n' % umax)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Scaled modulator, umax = 0.58\n", "\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "t = Table()\n", "ilabels = ['#1', '#2', '#3', '#4', '#5', '#6']\n", "t.append(['Coefficients', 'DAC feedback', 'Resonator feedback', \n", " 'Feed-in', 'Interstage'])\n", "t.append(['', 'a(n)', 'g(n)', ' b(n)', ' c(n)'])\n", "[t.append(x) for x in izip_longest(ilabels, as_.tolist(), gs.tolist(), bs.tolist(), cs.tolist(), fillvalue=\"\")]\n", "t" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
CoefficientsDAC feedbackResonator feedbackFeed-inInterstage
a(n)g(n) b(n) c(n)
#10.1002980.0085080.1002980.135347
#20.1746560.0108170.0000000.190649
#30.2141650.0000000.380271
#40.3653040.0000000.424567
#50.3488520.0000001.596478
#60.000000
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "[['Coefficients',\n", " 'DAC feedback',\n", " 'Resonator feedback',\n", " 'Feed-in',\n", " 'Interstage'],\n", " ['', 'a(n)', 'g(n)', ' b(n)', ' c(n)'],\n", " ('#1',\n", " 0.10029776281150876,\n", " 0.008508036472780891,\n", " 0.10029776281150876,\n", " 0.13534708993993422),\n", " ('#2', 0.1746558669940846, 0.010817262174793148, 0.0, 0.19064921465592474),\n", " ('#3', 0.21416477448384996, '', 0.0, 0.38027088891160843),\n", " ('#4', 0.36530362444711645, '', 0.0, 0.42456708605296417),\n", " ('#5', 0.3488522641362608, '', 0.0, 1.5964784308584519),\n", " ('#6', '', '', 0.0, '')]" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the state maxima" ] }, { "cell_type": "code", "collapsed": false, "input": [ "u = np.linspace(0, umax, 30)\n", "N = 1e4\n", "T = np.ones((N,))\n", "maxima = np.zeros((order, len(u)))\n", "for i in range(len(u)):\n", " ui = u[i]\n", " v, xn, xmax, _ = simulateDSM(ui*T, ABCDs)\n", " maxima[:, i] = xmax.squeeze()\n", " if any(xmax > 1e2):\n", " umax = ui;\n", " u = u[:i]\n", " maxima = maxima[:, :i]\n", " break\n", "print('The state maxima have been re-evaluated through simulation.')\n", "print(\"The maximum input was found to be %.6f\" % umax)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The state maxima have been re-evaluated through simulation.\n", "The maximum input was found to be 0.583333\n" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot of the state maxima after scaling" ] }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(order):\n", " semilogy(u, maxima[i, :], 'o-')\n", " if not i:\n", " hold(True)\n", "grid(True)\n", "ylabel('Peak value')\n", "xlabel('DC input')\n", "xlim([0, 0.6])\n", "ylim([4e-2, 4]);" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nsXfvXurXr1+ulSqLyLBIBkQOoGePnpyJOsPlRZdpOL4h9V6vR3vnTsz0OM/bqyfhaXQt9c6+cAfT\nlSvJAQKAiKdeVF0wV9ZWg63WzJhReKHufevYpIQEJkybVmLC2BwTw5oZM9Dn5mJwcyM0MtKyrKLA\n2bPqSSAhgQnPPkuIv7/5Gcu3XvqrV1W/lnOHDvDttxbHQiMjGZeQYHHuP2s1pLvCzroKuQHVuaBT\nePBWz2FBklhyZAkxJ2NoF9AOP3c/rnDF6hweztabi4f3Ncc8c/FMckw5uDu5EzEqovB4cVOnWrca\nrgCzZk3g+edD6NYNXnoJWrSAwYNt72IqrIsDthrKQut331qPz16lJoz09PTCfl+9Xs8TTzzBs88+\nW+4Vs9Uza57h233fciTvCH0H9aXzkc641jZfgb5KTiZ45DDWfPFviwVsfya8Tx+bd2+1tdVgs9xc\n9GfPqn7Kef16aNnS/OCbtm3NrzZt2Bwfz29jxli2Go4dgyFDCAHYs8e8o6qLC/oSNvJz7tnTPDhd\njCEsrEythp17d9Gv+HTW4c+rJriYtTGM/mK0RSvgwNQDBG8LJt49nrb+bRn4wEA+Df2UAO8AYupZ\nly+x1QCQ54OS3Aly9ShuBnNLAnPOPHIEfvvNPDC9caP6r36rVs4Ue/IoULyLybaBaSE0S3FggLKR\njcpGNir/6PYPi8/dzM9X/LduVfalpVVS7crg4kVFmThRUfz9lXG1aimK+fqmbLz1rwLK+L59FSU+\nXlEWLFCUN99UlL59FaVOHWWcXl9YpvhrvJ+f+ZyrVilKcrKiKIoyLjRUvWxYmFWVNq1erYwNCrIo\n925QkLJp9WqrsqvXrFaCngpSiKLwFfRUkLJ6TVFZo8mopKSlKF2e61JUbnhR+RbPtFBS0lJUvz2r\n16xWwkaEKb2G91LCRoRZnNei3OpNSlDQWIvw/P3HKn37blICAxWlYUNFGTlSUZYvV5Q+fcapfSuU\nsLDxJZ47LGy80qvXRCUsbLyyevWmP/+ZKoqycePGUss4Ki3Hpijaj8/eS3+JLYyCabRqdDodq1at\nKof0ZT9nV8tdP6ecO0e/WrVo56M+8F3RVLuN6tWD6dNh5UoYNAg2bCA0MbFwULjA2KAgHhs9uqhl\nMazoWQT67t1VZx05P/AA3DaDrCxdR2VpNcz4fobqdNbXZrzGA5cfIPFGImdvnqWaWzWyrqtMQwPq\n+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\nqAKrz2uJAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### System version information" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#%install_ext http://raw.github.com/jrjohansson/version_information/master/version_information.py\n", "%load_ext version_information\n", "%reload_ext version_information\n", "\n", "%version_information numpy, scipy, matplotlib, deltasigma" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
SoftwareVersion
Python2.7.5+ (default, Sep 17 2013, 17:31:54) [GCC 4.8.1]
IPython2.0.0
OSposix [linux2]
numpy1.8.0
scipy0.13.0
matplotlib1.3.1
deltasigma0.1-2
Sat May 03 11:16:57 2014 CEST
" ], "json": [ "{\"Software versions\": [{\"version\": \"2.7.5+ (default, Sep 17 2013, 17:31:54) [GCC 4.8.1]\", \"module\": \"Python\"}, {\"version\": \"2.0.0\", \"module\": \"IPython\"}, {\"version\": \"posix [linux2]\", \"module\": \"OS\"}, {\"version\": \"1.8.0\", \"module\": \"numpy\"}, {\"version\": \"0.13.0\", \"module\": \"scipy\"}, {\"version\": \"1.3.1\", \"module\": \"matplotlib\"}, {\"version\": \"0.1-2\", \"module\": \"deltasigma\"}]}" ], "latex": [ "\\begin{tabular}{|l|l|}\\hline\n", "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n", "Python & 2.7.5+ (default, Sep 17 2013, 17:31:54) [GCC 4.8.1] \\\\ \\hline\n", "IPython & 2.0.0 \\\\ \\hline\n", "OS & posix [linux2] \\\\ \\hline\n", "numpy & 1.8.0 \\\\ \\hline\n", "scipy & 0.13.0 \\\\ \\hline\n", "matplotlib & 1.3.1 \\\\ \\hline\n", "deltasigma & 0.1-2 \\\\ \\hline\n", "\\hline \\multicolumn{2}{|l|}{Sat May 03 11:16:57 2014 CEST} \\\\ \\hline\n", "\\end{tabular}\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "Software versions\n", "Python 2.7.5+ (default, Sep 17 2013, 17:31:54) [GCC 4.8.1]\n", "IPython 2.0.0\n", "OS posix [linux2]\n", "numpy 1.8.0\n", "scipy 0.13.0\n", "matplotlib 1.3.1\n", "deltasigma 0.1-2\n", "Sat May 03 11:16:57 2014 CEST" ] } ], "prompt_number": 17 } ], "metadata": {} } ] }