{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import print_function\n", "from deltasigma import *\n", "from IPython.core.display import Image" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 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)" ] }, { "cell_type": "markdown", "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", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "order = 5\n", "R = 42\n", "opt = 1\n", "H = synthesizeNTF(order, R, opt)" ] }, { "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", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "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" ] } ], "source": [ "print(pretty_lti(H))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figure(figsize=(10, 5))\n", "plotPZ(H, showlist=True)\n", "title('NTF');" ] }, { "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", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(url='http://python-deltasigma.readthedocs.org/en/latest/_images/CRFB.png', retina=True)" ] }, { "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", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a, g, b, c = realizeNTF(H)" ] }, { "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", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "b = np.concatenate((b[0].reshape((1, )), np.zeros((b.shape[0] - 1, ))), axis=0)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/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
" ], "text/plain": [ "[['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.0006670795813848786,\n", " 0.001622050471799641,\n", " 0.0006670795813848786,\n", " 1.0),\n", " ('#2', 0.00858263528791771, 0.004592653480622877, 0.0, 1.0),\n", " ('#3', 0.05520145164491604, '', 0.0, 1.0),\n", " ('#4', 0.2476072516506828, '', 0.0, 1.0),\n", " ('#5', 0.5569351152496502, '', 0.0, 1.0),\n", " ('#6', '', '', 0.0, '')]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "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" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the state maxima" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The state maxima have been evaluated through simulation.\n" ] } ], "source": [ "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.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot of the state maxima" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Scaled modulator\n", "### Calculate the scaled coefficients" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Scaled modulator, umax = 0.58\n", "\n" ] } ], "source": [ "ABCDs, umax, _ = scaleABCD(ABCD, N_sim=1e5)\n", "as_, gs, bs, cs = mapABCD(ABCDs)\n", "print('\\nScaled modulator, umax = %.2f\\n' % umax)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/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
" ], "text/plain": [ "[['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.1002977628115526,\n", " 0.008508036472714772,\n", " 0.1002977628115526,\n", " 0.1353470899398978),\n", " ('#2', 0.17465586699409, 0.01081726217175677, 0.0, 0.19064921465740636),\n", " ('#3', 0.21416477448557475, '', 0.0, 0.3802708889041198),\n", " ('#4', 0.3653036244427978, '', 0.0, 0.4245670861721391),\n", " ('#5', 0.348852264230054, '', 0.0, 1.5964784304291457),\n", " ('#6', '', '', 0.0, '')]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "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" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the state maxima" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The state maxima have been re-evaluated through simulation.\n", "The maximum input was found to be 0.583333\n" ] } ], "source": [ "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)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot of the state maxima after scaling" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nFLpzMVAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### System version information" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/json": { "Software versions": [ { "module": "Python", "version": "2.7.10 64bit [GCC 4.2.1 (Apple Inc. build 5577)]" }, { "module": "IPython", "version": "3.1.0" }, { "module": "OS", "version": "Darwin 14.3.0 x86_64 i386 64bit" }, { "module": "numpy", "version": "1.9.2" }, { "module": "scipy", "version": "0.15.1" }, { "module": "matplotlib", "version": "1.4.3" }, { "module": "deltasigma", "version": "0.2.0" } ] }, "text/html": [ "
SoftwareVersion
Python2.7.10 64bit [GCC 4.2.1 (Apple Inc. build 5577)]
IPython3.1.0
OSDarwin 14.3.0 x86_64 i386 64bit
numpy1.9.2
scipy0.15.1
matplotlib1.4.3
deltasigma0.2.0
Tue Jun 09 19:23:44 2015 CEST
" ], "text/latex": [ "\\begin{tabular}{|l|l|}\\hline\n", "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n", "Python & 2.7.10 64bit [GCC 4.2.1 (Apple Inc. build 5577)] \\\\ \\hline\n", "IPython & 3.1.0 \\\\ \\hline\n", "OS & Darwin 14.3.0 x86\\_64 i386 64bit \\\\ \\hline\n", "numpy & 1.9.2 \\\\ \\hline\n", "scipy & 0.15.1 \\\\ \\hline\n", "matplotlib & 1.4.3 \\\\ \\hline\n", "deltasigma & 0.2.0 \\\\ \\hline\n", "\\hline \\multicolumn{2}{|l|}{Tue Jun 09 19:23:44 2015 CEST} \\\\ \\hline\n", "\\end{tabular}\n" ], "text/plain": [ "Software versions\n", "Python 2.7.10 64bit [GCC 4.2.1 (Apple Inc. build 5577)]\n", "IPython 3.1.0\n", "OS Darwin 14.3.0 x86_64 i386 64bit\n", "numpy 1.9.2\n", "scipy 0.15.1\n", "matplotlib 1.4.3\n", "deltasigma 0.2.0\n", "Tue Jun 09 19:23:44 2015 CEST" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#%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" ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 0 }