{
"metadata": {
"name": "",
"signature": "sha256:ee5eeef4514d228895b322ee9ce6ac19a8c23dc364b416beb7d83ee21762c80b"
},
"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(\"%.6f | \" % col)\n",
" except(ValueError):\n",
" html.append(\"%s | \" % col)\n",
" html.append(\"
\")\n",
" html.append(\"
\")\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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\nZ/v27Sil6NevH02bNiUsLIwjR47YfY3ExESCgoI4mGYD8TNnzlC9enWuX78O6M0rOnToQEhICOHh\n4Zw4ccIa6yOPPELz5s1p06YNFy5cyFbc3i4Pq7HM4+ZNpT74QKmyZZWaP9/oaIQ3+flnpSpWVKpv\nX6UuXjQ6Gs9yu99fb7+tVFzcretxcfq2nJo4caIaM2aMUkqpBQsW2Kw/TUhIUFWqVFE3btxQFy5c\nUJUqVcrW844cOaIaNWqkrly5opRS6ptvvlENGzZU5cqVy1ZcnTt3Vjdv3rR73/fff6+ee+45pZRS\nW7ZsUR07drR5zPbt21WDBg1UuXLl1MGDB5VSSq1cuVLVq1dP+fr6qmvXrimllBo2bJh6//33lVJK\nrVmzxvpaYWFhauvWrdb327RpU7biVkrW4Xq0v/6CVq10m7xff4UnnjA6IuFNUo92k5P10e6WLUZH\n5B2eew7at4fjx/WlfXt9W3aMHj2aGTNmALBhwwbrfsxt2rRhzZo16R6bunPT5cuXSUhIIH/+/ABs\n3Ljxts975ZVXGD9+PMWKFQPA39+f2NhYuyeBhYaGpjsKvXjxIsWKFbO+V6pevXoRFRWV7r2bNGnC\nr7/+avOa169f58cff0y3xWX+/PlZu3YtpUqVst72+++/W1+radOmxMbGkpSUxJkzZ4iMjCQsLIzN\nmzfTpEkT+8l0Iim4bmbxYr0N3yOPQHS03qA+O2T+yT7Ji63s5MTXV28P+ckn0LEjTJni+Y3vjf6s\nVKoEy5ZB8+b6smyZvu12Fi5cSFhYGLNnz2bSpEmEhYURGRmJr68vACVKlODixYvpnlO8eHF69OhB\nrVq1aNiwIYMGDQJ0a8DMnrdnzx4SEhIICwuz3tauXTtr8U01cuRIwsLC2L17N88++yxhYWGcPXuW\nqKgowsPDbeJPLf6XLl2iZMmS1tvz58+PxWJJ99imTZtSoUKFdLe1atXKut9yqnr16hEZGQlAZGQk\niYmJnD9/nv379/PII48QHR3NhQsXrK0EXUkKrpu4fFnPz44YAT/9BCNH6jNJhTDSY4/pI9w5c6Bb\nN8jwu1sYrHv37kRHR9OrVy9effVVoqOj6dixo7WBfUJCAn5+fumes2nTJjZv3kxcXBwnTpxgyZIl\nbN++nZIlS2b6vG+//ZYXX3wxy3jGjRtHdHQ09erVY86cOURHR1OmTBlWrlxJ27Zt2bhxo3U+eMWK\n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\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": [
"Coefficients | DAC feedback | Resonator feedback | Feed-in | Interstage |
| a(n) | g(n) | b(n) | c(n) |
#1 | 0.000667 | 0.001622 | 0.000667 | 1.000000 |
#2 | 0.008583 | 0.004593 | 0.000000 | 1.000000 |
#3 | 0.055201 | | 0.000000 | 1.000000 |
#4 | 0.247607 | | 0.000000 | 1.000000 |
#5 | 0.556935 | | 0.000000 | 1.000000 |
#6 | | | 0.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.0006670795813848524,\n",
" 0.001622050471799641,\n",
" 0.0006670795813848524,\n",
" 1.0),\n",
" ('#2', 0.008582635287918602, 0.004592653480622877, 0.0, 1.0),\n",
" ('#3', 0.055201451644908195, '', 0.0, 1.0),\n",
" ('#4', 0.24760725165068767, '', 0.0, 1.0),\n",
" ('#5', 0.5569351152496803, '', 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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\nSAAAAABJRU5ErkJggg==\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": [
"Coefficients | DAC feedback | Resonator feedback | Feed-in | Interstage |
| a(n) | g(n) | b(n) | c(n) |
#1 | 0.100298 | 0.008508 | 0.100298 | 0.135347 |
#2 | 0.174656 | 0.010817 | 0.000000 | 0.190649 |
#3 | 0.214165 | | 0.000000 | 0.380271 |
#4 | 0.365304 | | 0.000000 | 0.424567 |
#5 | 0.348852 | | 0.000000 | 1.596478 |
#6 | | | 0.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.10029776281163674,\n",
" 0.008508036472572998,\n",
" 0.10029776281163674,\n",
" 0.13534708993976094),\n",
" ('#2', 0.17465586699408495, 0.010817262165527199, 0.0, 0.1906492146605832),\n",
" ('#3', 0.21416477448908453, '', 0.0, 0.3802708889018403),\n",
" ('#4', 0.3653036244466539, '', 0.0, 0.4245670864166437),\n",
" ('#5', 0.34885226443464945, '', 0.0, 1.5964784294929264),\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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\nAAAASUVORK5CYII=\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": [
"Software | Version |
---|
Python | 2.7.8 (default, Jul 26 2014, 17:29:00) [GCC 4.9.1] |
IPython | 2.1.0 |
OS | posix [linux2] |
numpy | 1.8.1 |
scipy | 0.13.3 |
matplotlib | 1.3.1 |
deltasigma | 0.1-5 |
Mon Aug 11 21:51:48 2014 CEST |
"
],
"json": [
"{\"Software versions\": [{\"version\": \"2.7.8 (default, Jul 26 2014, 17:29:00) [GCC 4.9.1]\", \"module\": \"Python\"}, {\"version\": \"2.1.0\", \"module\": \"IPython\"}, {\"version\": \"posix [linux2]\", \"module\": \"OS\"}, {\"version\": \"1.8.1\", \"module\": \"numpy\"}, {\"version\": \"0.13.3\", \"module\": \"scipy\"}, {\"version\": \"1.3.1\", \"module\": \"matplotlib\"}, {\"version\": \"0.1-5\", \"module\": \"deltasigma\"}]}"
],
"latex": [
"\\begin{tabular}{|l|l|}\\hline\n",
"{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n",
"Python & 2.7.8 (default, Jul 26 2014, 17:29:00) [GCC 4.9.1] \\\\ \\hline\n",
"IPython & 2.1.0 \\\\ \\hline\n",
"OS & posix [linux2] \\\\ \\hline\n",
"numpy & 1.8.1 \\\\ \\hline\n",
"scipy & 0.13.3 \\\\ \\hline\n",
"matplotlib & 1.3.1 \\\\ \\hline\n",
"deltasigma & 0.1-5 \\\\ \\hline\n",
"\\hline \\multicolumn{2}{|l|}{Mon Aug 11 21:51:48 2014 CEST} \\\\ \\hline\n",
"\\end{tabular}\n"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 17,
"text": [
"Software versions\n",
"Python 2.7.8 (default, Jul 26 2014, 17:29:00) [GCC 4.9.1]\n",
"IPython 2.1.0\n",
"OS posix [linux2]\n",
"numpy 1.8.1\n",
"scipy 0.13.3\n",
"matplotlib 1.3.1\n",
"deltasigma 0.1-5\n",
"Mon Aug 11 21:51:48 2014 CEST |
"
]
}
],
"prompt_number": 17
}
],
"metadata": {}
}
]
}