Skip to content

Instantly share code, notes, and snippets.

@wonkoderverstaendige
Created December 7, 2013 02:22
Show Gist options
  • Save wonkoderverstaendige/7836556 to your computer and use it in GitHub Desktop.
Save wonkoderverstaendige/7836556 to your computer and use it in GitHub Desktop.
Spotter lag test with Intan evaluation board digital input
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"%pylab inline\n",
"from numba import autojit"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reading Intan \"File per Type\" format\n",
"Ditial In: Data is stored as unsigned 16-bit integer. Each bit per word represents the state of one of the digital input channels.\n",
"Timestamps: 32-bit signed integers.\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data = np.fromfile('digitalin.dat', np.uint16)\n",
"times = np.fromfile('time.dat', np.int32)\n",
"print times.shape, data.shape"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"(1051920,) (1051920,)\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First three seconds of recording."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"n = 60000\n",
"fs = 20000.\n",
"p = plot(times[0:n]/(fs), data[0:n])\n",
"plt.ylim(0, 3.1)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"(0, 3.1)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD7CAYAAACRxdTpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGn1JREFUeJzt3F9Mm9f9BvDHzNEmhwzCpJDFoFULtIX8sZ128sUSxSyq\nGFRhaMkF0dKhBm1WQhdFkzat2kVBjdgqTaqSoaF0F5GmaBApFwvSSKRMirM1lKI2pBeja0AqiyEZ\nE8uoxtYoBN7fRX6lcQDb2O/rc873PB8JDeN35nz92I/Pa4f6HMdxQEREohSpXgAREbmP5U5EJBDL\nnYhIIJY7EZFALHciIoFY7kREAvkL9YvC4TA++OCDQv06IiIRQqEQbt68ueb/X8F27h988AEcxxH7\n9dprrylfA2fjfJxP3leum+K05X7//n1Eo1GEw2HU1tbi1VdfXfG448ePo7q6GqFQCCMjIzkthIiI\n3JP2bZkvfelLuHr1KgKBAB4+fIjdu3fj7bffxu7du5eOGRgYwPj4OMbGxvDuu+/i6NGjGBoa8nzh\nRES0uoxvywQCAQDAgwcPsLCwgLKyspTr+/v70draCgCIRqOYnZ3F9PS0B0vVWywWU70Ez0ieDeB8\nppM+X64ylvvi4iLC4TDKy8tRV1eH2tralOunpqZQWVm5dLmiogKTk5Pur1Rzkh9gkmcDOJ/ppM+X\nq4z/WqaoqAg3b97EJ598gvr6eiQSiWV3puOk/rfHfD6fq4v0wsAA0NOjehXu8fmAX/0KePpp1Ssp\njMVFoLUVmJ1VvRJ3fP3rwKlTqldRGH/7G/DTnwKOoP9k4bFjQEOD6lWkyvqfQpaUlODFF1/Ee++9\nl1LuwWAQyWRy6fLk5CSCweCKt9HR0bH0fSwWU/qKOzgIfPnLQEuLsiW46vXXHz1pbCn3hw+B3/8e\n+MMfVK8kf//+N/CTn9hT7h9+CPzzn8DPf656Je7o6wPeece9ck8kEkgkEnnfTtpyn5mZgd/vR2lp\nKT799FNcuXIFr732WsoxTU1N6O7uRktLC4aGhlBaWory8vIVb+/xctdBTQ2wf7/qVbjjt79VvYLC\n+8IXZOQ3Pf2o3G3y1a/KyA4Abt4E5ufdu70nN76dnZ053U7acr979y5aW1uxuLiIxcVFvPTSS9i3\nbx/OnDkDAIjH42hsbMTAwACqqqqwfv16nD17NqeFUP4knebahtmZTcf80pb7jh07cOPGjWU/j8fj\nKZe7u7vdXRWtmQEfc9AqmJ3ZdM3P2v+2jI6vtPmSONNqpM0qbZ50JM6q40zWljsRkWRWl7uup1O5\nkDRLtqTMLGWOtZA0s66zWF3u0uh4akjZYXZm0zE/lrsQuu4eKDNmZzZd87O23HV8pSUiM+nYJ9aW\nu0Q6PsC8Im1WafOkY9OsKlld7rqeTuVC0izZkjKzlDnWQtLMus5idblLwx2RuZid2XTMj+VORCSQ\nteWu4yttPnQ9NaTMmJ3ZfD49+8TacpdIxweYV6TNKm2edGyaVSWry13SjknSLNmSMrOUOdZC0sy6\nzmJ1uUvDHZG5mJ3ZdMyP5U5EJJC15a7jK20+dD01pMyYndn4gSp5TscHmFekzSptnnRsmlUlq8td\n0o5J0izZkjKzlDnWQtLM3LmT53R8gFF2mB25jeVORCSQteUuback6TTXNszObHxbhjyn4wPMK9Jm\nlTZPOjbNqpLV5S5pxyRplmxJmVnKHGshaWbu3MlzOj7AKDvMjtzGciciEsjacpe2U5J0mmsbZmc2\nvi2jIWlPKh0fYF5xHFn52ZYdeS9tuSeTSdTV1WHbtm3Yvn07Tp8+veyYRCKBkpISRCIRRCIRnDx5\n0rPF0uokFZ1tmJ3ZdN25+9NduW7dOrz55psIh8OYm5vDc889hxdeeAE1NTUpx+3duxf9/f2eLpQy\n0/EBRtmxLTu+oHkv7c598+bNCIfDAIDi4mLU1NTgzp07y45zbHtkEhFpLuv33CcmJjAyMoJoNJry\nc5/Ph8HBQYRCITQ2NmJ0dNT1RXpB2usRd0LmYnZmM/Jtmc/Mzc3h4MGDOHXqFIqLi1Ou27VrF5LJ\nJAKBAC5duoTm5mbcunXLk8W6TdqTSscHmFf4gaq5bJpVpYzlPj8/jwMHDuDw4cNobm5edv2GDRuW\nvm9oaMCxY8dw7949lJWVLTu2o6Nj6ftYLIZYLJbbqomINOLmC1YikUAikcj7dtKWu+M4aGtrQ21t\nLU6cOLHiMdPT09i0aRN8Ph+Gh4fhOM6KxQ6klju5S9Iu1jY2ZidpZrdneXLj29nZmdPtpC3369ev\n49y5c9i5cycikQgAoKurC7dv3wYAxONxXLhwAT09PfD7/QgEAujr68tpIZQ/nu6ai9mR29KW++7d\nu7G4uJj2Btrb29He3u7qogpB2pNJ0k7INszObLp+oMq/UBVExweYV/iBqrlsmlUlq8udiMgNOr5g\nsdyFkLSLtY2N2UmaWddZWO6C6Lh7oOwwO3KbteUu7cmk6+6BMmN2ZuMHqhqS9qTS8QHmFX6gai6b\nZlXJ6nInInKDji9YLHchJO1ibWNjdpJm1nUWlrsgOu4eKDvMjtxmbblLezLpunugzJid2fiBqoak\nPal0fIB5SVJ+tmVH3rO63MlcLENzScxOx5lY7kJI2sXaxsbsJM2s6ywsd0F03D1Qdpgduc3acpf2\nZNJ190CZMTuz8QNVDUl7Uun4APOSpPxsy468Z3W5k7lYhuaSmJ2OM7HchZC0i7WNjdlJmlnXWVju\ngui4eyCygY7PPWvLXccwiIjcYm25A/qeTuVC0izZkjKzlDlspWt+Vpe7NDadjUicVeJMK5E4p44z\nsdyF0HX3QLQSSY9XXWdhuQui4+6Bssf8zKVjdtaWu45hEBG5xdpyB/Q9ncqFpFmyJWlmSbPYRtfs\nrC53aWw6G5E4q8SZViJxTh1nSlvuyWQSdXV12LZtG7Zv347Tp0+veNzx48dRXV2NUCiEkZERTxZK\n6em6e6Ds2JafpHl1ncWf7sp169bhzTffRDgcxtzcHJ577jm88MILqKmpWTpmYGAA4+PjGBsbw7vv\nvoujR49iaGjI84XTcjruHih7zM9cOmaXdue+efNmhMNhAEBxcTFqampw586dlGP6+/vR2toKAIhG\no5idncX09LRHy3WPjmEQEbkl6/fcJyYmMDIygmg0mvLzqakpVFZWLl2uqKjA5OSkeyv0kK6nU7mQ\nNEu2JM0saRbb6Jpd2rdlPjM3N4eDBw/i1KlTKC4uXna988Q22KfrtIIVFQG/+Q0wMJD68x/+ENi/\nX82avCTtzKuoCPjOdx79LwD4/UBPD7B5s9p1eUFidleuLH+e7dsHnDihZk1AFuU+Pz+PAwcO4PDh\nw2hubl52fTAYRDKZXLo8OTmJYDC44m11dHQsfR+LxRCLxda+YlrRz34GfPvbqT+7cAG4fl1muUtz\n9Spw797nl3/8Y+D2bZnlLs13vwt85SupPxsZebTRyqXcE4kEEolE3utKW+6O46CtrQ21tbU4scoq\nm5qa0N3djZaWFgwNDaG0tBTl5eUrHvt4uZO7KisffT3ur38FZmfVrIfW5pvfTL38+utq1lEokk7u\nv/zl5RuoL34RePvt3G7vyY1vZ2dnTreTttyvX7+Oc+fOYefOnYhEIgCArq4u3L59GwAQj8fR2NiI\ngYEBVFVVYf369Th79mxOCyk0aaeGRESPS1vuu3fvxuLiYsYb6e7udm1BhSRp92Aj5ke0Ov6FqnBS\nz1CkzvU4qTNKnetJqudkuRMRCWRtuat+VS0Evm1hLunZcT7vWVvuRESSWV3uOry6Uu6YH9HqrC53\nG0h9+0nqXI+TOqPUuXTDcici8oDqFzFry131HV8IfNvCXNKz43zes7bciYgks7rcdXh1pdwxP6LV\nWV3uNpD69pPUuR4ndUapc+mG5U5E5AHVL2LWlrvqO74Q+LaFuaRnx/m8Z225ExFJZnW56/DqSrlj\nfkSrs7rcbWDD209SMTvKB8udjMTiM5ct2ame09pyV33HFwLftjCX9Ow4n/esLXciIsmsLncdXl0p\nd8yPaHVWl7sNbHj7SSpmR/lguZORWHzmsiU71XNaW+6q7/hC4NsW5pKeHefznrXlTkQkmdXlrsOr\nK+WO+RGtzupyt4ENbz9JxewoHyx3wSTvbKUXH7Mzm8+nfs6M5X7kyBGUl5djx44dK16fSCRQUlKC\nSCSCSCSCkydPur5IL6i+44lsJvnFSxf+TAe8/PLL+NGPfoTvf//7qx6zd+9e9Pf3u7owIiLKXcad\n+549e7Bx48a0xziGboO5ezAb8yNaXd7vuft8PgwODiIUCqGxsRGjo6NurItcYujrLoHZUX4yvi2T\nya5du5BMJhEIBHDp0iU0Nzfj1q1bbqyN8iR5Zyu9+Jid2XT4QDXvct+wYcPS9w0NDTh27Bju3buH\nsrKyZcd2dHQsfR+LxRCLxfL99TlTfccT2Uzyi1e+EokEEolE3reTd7lPT09j06ZN8Pl8GB4ehuM4\nKxY7kFruRES03JMb387OzpxuJ2O5Hzp0CNeuXcPMzAwqKyvR2dmJ+fl5AEA8HseFCxfQ09MDv9+P\nQCCAvr6+nBaiAncPZmN+RKvLWO69vb1pr29vb0d7e7trCyJ38e0nczE7ygf/QlUwyTtb6cXH7Mym\nwweq1pa76jueiMhL1pY7Eakj+cxEF1aXOx9gZmN+RKuzutxtwLefzMXsKB8sd8Ek72ylFx+zMxs/\nUFVI9R1PROQla8udiNSRfGaiC6vLnQ8wszE/otVZXe424NtP5mJ2lA+Wu2CSd7bSi4/ZmU2H/Kwt\ndxseYESkjuqOsbbciUgdHXa20lld7nyAmY35Ea3O6nK3gepTQ8ods6N8sNwFk7yzlV58zM5sOuRn\nbbnb8AAjInVUd4y15Q7o8epKuWN+5mJ23rO63ImIpGK5C6f61JByx+woHyx3wXjqay5mZzYd8rO2\n3LkrMhvzM5ct2ame09pyB/R4daXcMT9zMTvvWV3uRERSsdyFU31qSLljdpQPlrtgPPU1F7Mzmw75\nWVvu3BWZjfmZy5bsVM+ZsdyPHDmC8vJy7NixY9Vjjh8/jurqaoRCIYyMjLi6QC/p8OpKuWN+5mJ2\n3stY7i+//DIuX7686vUDAwMYHx/H2NgY3nrrLRw9etTVBRIR0dplLPc9e/Zg48aNq17f39+P1tZW\nAEA0GsXs7Cymp6fdWyHlRfWpIeWO2VE+8n7PfWpqCpWVlUuXKyoqMDk5me/Nkgt46msuZmc2HfLz\nu3EjzhNbDJ8Okz3h/feBjo7PL4+MAN/6lrLl0Br94hfA4ODnl//3P6DI2n8OYJZ//Qv4wQ+A+flH\nlz/+2I7nnuozr7zLPRgMIplMLl2enJxEMBhc8diOx9o1FoshFovl++uzdvMmcP8+cPz45z8r4K+n\nPF28CBw8CDzzzOc/27JF3Xooe5OTwI0bwK9//fnPIhF169FdIpFAIpHI+3byLvempiZ0d3ejpaUF\nQ0NDKC0tRXl5+YrHPl7uKnzta8D+/UqXQHnYsweIRlWvgnJRUsLnXrae3Ph2dnbmdDsZy/3QoUO4\ndu0aZmZmUFlZic7OTsz///lVPB5HY2MjBgYGUFVVhfXr1+Ps2bM5LcRrqk+RVJEyt5Q51kLKzFLm\nME3Gcu/t7c14I93d3a4sxmsafhTgKWnzSpsnHWmzSpsnEx3mteYjKe4ezMb8zGVrdqrntqbciYhs\nYlW563CqVGiqdw9usi0/Zkf5sKbcJT1RbMT8zMXs1LCm3AH7dg/S5pU2TzrSZpU2TyY6zGtNuXP3\nYDbmR6ZR/Zi1ptyJSA3VJWcrq8pdh1OlQpP0xLItP2ZH+bCm3CU9UWzE/MzF7NSwptxtxN2SuZid\n2XTIz5pydxw97nDKDfMzm43ZqT5jsabciUgN1SVnK6vKnbsHs9mWH7OjfFhT7pKeKDZifuZidmpY\nU+424m7JXMzObDrkZ0258wM5szE/szG7wrOm3IlIDVvfllE9tzXlbuvOT/UDzC025iclO8C+7HRg\nTbkTkRqSXqRMwnIXjLslczE7s+mQnzXlbuNpvSTMz2zMrvCsKXciUsPWt2VUz21Nudu681P9AHOL\njflJyQ6wLzsdWFPuRKSGpBcpk7DcBeNuyVzMzmw65GdNudt4Wi8J8zMbsys8a8qdiNSw9W0Z1XNn\nLPfLly/j2WefRXV1Nd54441l1ycSCZSUlCASiSASieDkyZOeLDRftu78VD/A3GJjflKyA+zLTgf+\ndFcuLCzglVdewZ/+9CcEg0F84xvfQFNTE2pqalKO27t3L/r7+z1dKBGZSdKLlEnS7tyHh4dRVVWF\np556CuvWrUNLSwsuXry47DiH6WmJuyVzMTuz6ZBf2nKfmppCZWXl0uWKigpMTU2lHOPz+TA4OIhQ\nKITGxkaMjo56s9I82XhaLwnzMxuzK7y0b8v4skhk165dSCaTCAQCuHTpEpqbm3Hr1i3XFkhEZrP1\nxF713GnLPRgMIplMLl1OJpOoqKhIOWbDhg1L3zc0NODYsWO4d+8eysrKlt1eR0fH0vexWAyxWCzH\nZa+d6jtaFSlzS5ljLWycmR79I5VEIpH37aQt9+effx5jY2OYmJjAli1bcP78efT29qYcMz09jU2b\nNsHn82F4eBiO46xY7EBquavAU0OzMT9zMbvsPbnx7ezszOl20pa73+9Hd3c36uvrsbCwgLa2NtTU\n1ODMmTMAgHg8jgsXLqCnpwd+vx+BQAB9fX05LYTcxyeUuSRlZ+MZiA75pS134NFbLQ0NDSk/i8fj\nS9+3t7ejvb3d/ZW5jB/ImY35mY3ZFR7/QpWIPGXjzh1QP7c15a76jlZFytxS5lgLG2cm91hT7gBP\nDU3H/MzF7ArPqnK3DZ9Q5pKUnY1nIDrkZ0258wM5szE/szG7wrOm3IlIDRt37oD6ua0pd9V3tCpS\n5pYyx1rYODO5x5pyB3hqaDrmZy5mV3hWlbtt+IQyl6TsbDwD0SE/a8qdH8iZjfmZjdkVnjXlTkRq\n2LhzB9TPbU25q76jVZEyt5Q51sLGmck91pQ7wFND0zE/czG7wrOq3G3DJ5S5JGVn4xmIDvlZU+78\nQM5szM9szK7wrCl3IlLDxp07oH5ua8pd9R2tipS5pcyxFjbOTO6xptwB+04Npc0rbZ50pM0qbZ5M\ndJjXmnLnLshszM9czE4Na8qdiMgmVpW7DqdKlDvmZy5mV3jWlLutp4ZS5pYyx1pImVnKHGulem5r\nyh2wb/cgbV5p86QjbVZp82Siw7zWlLvqV1HKD/MzF7NTw5pyJyKyiVXlrsOpEuWO+ZmL2RWeNeVu\n66mhlLmlzLEWUmaWMsdaqZ47Y7lfvnwZzz77LKqrq/HGG2+seMzx48dRXV2NUCiEkZER1xfpFtt2\nD9LmlTZPOtJmlTZPJjrMm7bcFxYW8Morr+Dy5csYHR1Fb28vPvzww5RjBgYGMD4+jrGxMbz11ls4\nevSopwvOldevoolEwttfoJAOs3mZnw7zeUn1fHzuqZG23IeHh1FVVYWnnnoK69atQ0tLCy5evJhy\nTH9/P1pbWwEA0WgUs7OzmJ6e9m7FmpL8AJM8G8D5TCd9vlylLfepqSlUVlYuXa6oqMDU1FTGYyYn\nJ11epjt0OFWi3DE/czG7wvOnu9KXZSLOE+ddq/3/9u/PclUe+Ogj4HvfU/f7VSgqAq5ezf9+/+gj\n4P333VlTrmZmHs1ji6IioKsLOHs2/9tSnd/0NLBpk7rfr0JREfD3v6vtPDhpvPPOO059ff3S5a6u\nLueXv/xlyjHxeNzp7e1duvzMM884//jHP5bd1tatWx0A/OIXv/jFrzV8bd26NV1Nryrtzv3555/H\n2NgYJiYmsGXLFpw/fx69vb0pxzQ1NaG7uxstLS0YGhpCaWkpysvLl93W+Ph4ul9FREQuSlvufr8f\n3d3dqK+vx8LCAtra2lBTU4MzZ84AAOLxOBobGzEwMICqqiqsX78eZ904jyQiorz4nCffMCciIuO5\n/hGVpD96elKm2RKJBEpKShCJRBCJRHDy5EkFq8zNkSNHUF5ejh07dqx6jKm5AZnnMzk7AEgmk6ir\nq8O2bduwfft2nD59esXjTM0wm/lMzfD+/fuIRqMIh8Oora3Fq6++uuJxa84up3fqV/Hw4UNn69at\nzscff+w8ePDACYVCzujoaMoxf/zjH52GhgbHcRxnaGjIiUajbi7BM9nMdvXqVWf//v2KVpifP//5\nz86NGzec7du3r3i9qbl9JtN8JmfnOI5z9+5dZ2RkxHEcx/nPf/7jPP3002Kee46T3XwmZ/jf//7X\ncRzHmZ+fd6LRqPOXv/wl5fpcsnN15y75j56ymQ3Asn8Waoo9e/Zg48aNq15vam6fyTQfYG52ALB5\n82aEw2EAQHFxMWpqanDnzp2UY0zOMJv5AHMzDAQCAIAHDx5gYWEBZWVlKdfnkp2r5S7tj54el81s\nPp8Pg4ODCIVCaGxsxOjoaKGX6RlTc8uWpOwmJiYwMjKCaDSa8nMpGa42n8kZLi4uIhwOo7y8HHV1\ndaitrU25Ppfs0v5rmbVy+4+edJLNGnft2oVkMolAIIBLly6hubkZt27dKsDqCsPE3LIlJbu5uTkc\nPHgQp06dQnFx8bLrTc8w3XwmZ1hUVISbN2/ik08+QX19PRKJBGKxWMoxa83O1Z17MBhEMplcupxM\nJlFRUZH2mMnJSQSDQTeX4YlsZtuwYcPS6VVDQwPm5+dx7969gq7TK6bmli0J2c3Pz+PAgQM4fPgw\nmpubl11veoaZ5pOQYUlJCV588UW89957KT/PJTtXy/3xP3p68OABzp8/j6amppRjmpqa8Lvf/Q4A\n0v7Rk26ymW16enrp1XV4eBiO4yx778xUpuaWLdOzcxwHbW1tqK2txYkTJ1Y8xuQMs5nP1AxnZmYw\nOzsLAPj0009x5coVRCKRlGNyyc7Vt2Uk/9FTNrNduHABPT098Pv9CAQC6OvrU7zq7B06dAjXrl3D\nzMwMKisr0dnZifn5eQBm5/aZTPOZnB0AXL9+HefOncPOnTuXiqGrqwu3b98GYH6G2cxnaoZ3795F\na2srFhcXsbi4iJdeegn79u3Luzf5R0xERAJZ9N/ZIyKyB8udiEggljsRkUAsdyIigVjuREQCsdyJ\niARiuRMRCcRyJyIS6P8AMTTMyhQBl6kAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x77e02d0>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To extract the value per channel, each channel is extracted with element-wise logical AND with the value of the bit."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"channels = np.zeros([data.shape[0], 2], np.double)\n",
"print channels.shape\n",
"for n in xrange(2):\n",
" channels[:, n] = np.bitwise_and(data, 2**n)/2.**n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"(1051920, 2)\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"p = plot(times[0:100000]/(fs),channels[0:100000, 0:2])\n",
"plt.ylim(0, 1.1)\n",
"plt.legend(['trigger', 'response'])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
"<matplotlib.legend.Legend at 0x7af06b0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n0gAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x35e63f0>"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Cross correlogram\n",
"Or how I have little idea what I am doing. I assume I should bin these beforehand. Otherwise it takes forever."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"start = 0\n",
"end = 100000\n",
"c = np.correlate(channels[start:end, 0], channels[start:end, 1], 'same', )\n",
"plot(c)\n",
"print ((end-start)/2-argmax(c))/fs*1000, \"ms\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"42.65 ms\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nMjIykJmZid/85jcAgNbWVhQUFCA1NRXLly9H+5DtAouKiuBwOJCWloZDhw55jp84cQJZWVlwOBzY\ntm2b53h3dzfWr18Ph8OBxYsXo6amRsp7HMWZMzzMYbNJ16bWdZL+fp6Cq1QJjJGovTeJlkqjjERN\nj+TaNW7cHQ51rj9xIr9/Le9NUlYGPPggMGGCdG0aTSfxa0giIiLwr//6rzh79iyOHTuGt956C+fO\nnUNxcTEKCgpQVVWF/Px8FBcXAwCcTif2798Pp9OJ0tJSbN26FWzQh9uyZQtKSkrgcrngcrlQWloK\nACgpKUF0dDRcLhe2b9+OHTt2yHjL0uojAq3HPV0unpUTGaleH9TM3NJSscaRCI9EjVBHZSWQmSnt\nJBksWg9vSRnWEmj9xTNY/BqS2NhYLBj0e++8807MmzcP9fX1OHjwIAoLCwEAhYWF+OCDDwAABw4c\nwIYNGxAREYGkpCTY7XaUl5ejsbERnZ2dyM3NBQBs2rTJc87QttauXYvDhw9Lf6dDkGNg3HMPL0Cn\nVZ1EzfCFQM3MLS17JJGRPAmgoUH5a4uMLTXRQmq4L+Q0JEbRSYLSSC5duoRTp05h0aJFaG5uhtVq\nBQBYrVY0NzcDABoaGmAbEjOy2Wyor68fdTwhIQH19fUAgPr6eiQO5uGGh4cjMjISrTKt8JNaHxFE\nRPDy0kePStuuVKiZsSVQ683z1i0evglmK2WlUatUihZeMLTskTQ3A42N0j+ju+/mLw/nzknbrloE\nbEiuX7+OtWvX4s0338S0adOG/cxiscCipUp4Pvj2W17COiFB+ra17K5qYcKYO5en4V6/rux1L1y4\nvbGQVlGrVIoWxkV2Ng+xaXFvkqNHpddHBFqeL4IloD+t3t5erF27Fhs3bsSaNWsAcC+kqakJsbGx\naGxsRExMDADuadTW1nrOraurg81mQ0JCAurq6kYdF+dcvnwZ8fHx6OvrQ0dHB6Kiokb14+WXX/b8\nPy8vD3nj8Dfl0EcEeXnAL34hT9uhwJi6GVuCiAggPZ0b8/vvV+66WtZHBGp4JL29/I04K0vZ645k\nxgxg5kxeakgt0d8b49mGO1Dy8oD/+R9g61Zp2y0rK0OZ0haK+WFgYIBt3LiR/epXvxp2/IUXXmDF\nxcWMMcaKiorYjh07GGOMnT17lmVnZ7Pu7m528eJFlpyczAYGBhhjjOXm5rJjx46xgYEBtmLFCvbR\nRx8xxhh766232HPPPccYY2zv3r1s/fr1o/oRQFcDYs0axv70J0maGkVvL2PTpzN25Yo87Y+XhgbG\noqMZG/wvtJcfAAAdLElEQVQ1qMrmzYzt2qXsNV99lbEXXlD2msFy4ABjjz6q7DUrKxlLS1P2mt5Y\ns4ax995TuxejSUtj7MQJedquqWFs1iz5/y6lmjt94Te09cUXX+CPf/wjjhw5gpycHOTk5KC0tBQv\nvvgiPv74Y6SmpuLTTz/Fiy++CABIT0/HunXrkJ6ejhUrVmDXrl2esNeuXbvwzDPPwOFwwG6345FH\nHgEAbN68GS0tLXA4HHjjjTc8GWBSMzDA13pIrY8IwsO1qZOI8IUWoo9qCKtaXowoUMMj0UJYS6BF\nnaSpiX9lZ8vT/uzZfJtvp1Oe9pXEb2hryZIlGPASvPzkk0/GPP7SSy/hpZdeGnX83nvvxbdj7Lk6\nadIkvPfee/66EjKVldyFjo+X7xoi7rl2rXzXCBYtTRg5OcAf/qDsNc+fBzZvVvaawZKczPWjnh7l\naqFpIWNLsGAB8B//oXYvhnP0KPDQQ/KmRov5IiNDvmsogalWtsuRxjcSLQpoWsjYEsyfzxef9fUp\nd009eCQTJ/ICohcvKndNLb1gaNEjkVMfERhlYaLpDIlcQrvgnnv4dpxXrsh7nWDQ0oQxbRr3CJUK\n41y9ylf1z5qlzPVCQcnMLbEHiVxhm2CZPZunaQ+uItAESr14Hj2qzYy1YDCNIZFbHxGEh/Ny01qp\nu3X9Ot9HQUtv5Eq+fQpvRAv6kD+ULJVSW8v3xRhcCqY6ooTO6dNq94TT2MhrbMldUigxkS9I1btO\nYhpDcvo036UvLk7+a2nJXa2s5Cm3WlpDoaQh0XKxxpEoWbxRS16qQO09a4aihD4i0GI4PFhMY0iU\ncFMFWhoYWpwwlMzc0oM+IlDSI9HquNCKITHrfDFeTGVI5NZHBDk5PJz0/ffKXM8XWpwwxJunEnWG\nyCMZGy1lbAm0VHNLCaFdIPYn0bNOYgpD0t+vjD4i0JJOoqWMLUFcHI+JK1GkUMvFGkcSFwfcvAkM\n2ZFBNrT4gpGWBtTUADduqNuPhgaeLKPUlguJiXzbby2X0veHKQzJ6dO8hHpsrHLX1IJO0tfHB6fa\nJTBGotTeJP39PJ3Wbpf3OlJhsSizMLG9nWezpaTIe51gmTiRG5MzZ9Tth9BHwhScHbW+DYU/TGFI\nlIx3CrQQ96yq4sUpR9TY1ARKGJKaGp72O3WqvNeREiV0ktOn+du2khNloGhBJ1EyDC7QwnwRChoc\nStKjxsBYsIBvz6mmTqKFQo3eUGLC0EOxxpEooZNoMawl0ELmlhovnkuX6ns9ieENSX8/8Pnnyukj\ngvBwXn5azbpbWp4wlBBW9aSPCJRYlKj1caGmIWlo4GE/pcPBNhuvgqx2WG+8GN6QVFRwEVONhVdq\nu6tanjDmzuWLvq5dk+8aevRIlNBItJixJZg/n28z0N+vzvXLypTXRwR61kkMb0jUcFMFagruogSG\nVieMCRP4XuGVlfJdQ48eSWoq4HLJF+Lo6eGGSqtFAiMj+Uufy6XO9dUIgwvUfvEMBVMYErUGxoIF\n3FVWo35QQwN/q1IyUy1Y5A5j6GkxomDaND6ZDu5CLTlOJ680PGWKPO1LgZrhLTVfPPWskxjakKil\njwgmTFBPJ9HSHiTekHPCuHGDrwWYPVue9uVETp1Ey+FOgVqGpL4eaGnhnrIaJCTwbcDH2GlD8xja\nkFRU8F/O4C7AqqBW3FPLGVsCOSeMCxf4OgklaiVJjZw6iR4MiVqZW2Vl/KVTzbRovYa3DG1IlCxz\n4A21BoYeJoysLB5q6e2Vvm09lUYZCXkk6hkStecLvQruhjYkauojguxsnp3U1KTsdfUwYdx5Jw89\nffed9G3rUR8RyOWRiAQMrY+LhARelaGxUdnramG+WLqUl1bSm05iWEPS1wf89a88lU9N1NBJrl3j\nhksPb+RyvX2SRzKaS5e4mD9zpvRtS4lSJXSGUlcHtLWpn80WH89/P3JmM8qBYQ1JRQVf5KOmPiJQ\n2l2trOSCoR70ATkNiV49kqQknnXX1SVtu3rwRgRKGxIt6CMCPeokGnhs8qAFfUSg9MAw+4TBmD4X\nIwoiIrgxqa6Wtl2zjwtfaEEfEehRJzGsIdFCvFMwfz4PNSkV89VDxpZATBhS7k3y/ffcG9N6CMcX\nchRv1JMhUTpzS0vzhR51EkMaEq3oI4IJE3hflNJJ9DRhxMbyN/C6Ouna1LM3IpCjeKOexsXcuXxM\nXL8u/7Vqa4GODr4ltRaIi+Mhea3sXx8IhjQkp07xbKBZs9TuyW2Ucld7e4Fz57S3B4kvcnKkLeCo\nZ31EILVH0tLC9yGZM0e6NuUkPJxP7EqIzkePakcfEehNJ9HQo5MOLekjAqUGxnffAXffra89OKSO\nh5NHMprTp3kqupYmS38opZOYeb6QCh0Nq8DRUrxTMH8+j93LrZPoKXwhkHrCII9kNDQuvKMloV2Q\nl8d1ErWqIAeL4QxJXx/wxRfa0UcEYWG8T3K/ZdCEYQyPxGrlYcqWFmnao3ExNpcvA52d6q8fGYnY\nGlwv60kMZ0hOnuShHS1m7CjhruopY0tgt3Nvrb099Lb6+gC3Wz/7tHvDYpE2vKVHQzJ/PnD2LP+d\nyoXQR7RY3FTNbSiCxXCGRIvxToHcgrteSmCMZMIEnhwgxdvXpUv8TU7LZdIDRapSKV1dvIil1t66\n/TFtGi+XIudGX1qeL/SkkxjOkGgx3inIyuLbeDY0yNN+bS0waZI6u0GGilSZW0bQRwRSlUo5exZw\nOPjY0Btyb8ms5fli6VK+DYYedBJDGZLeXq6PqLX/iD/k1km0vCOiP6SKh+u5WONIpPJI9OilCuTU\nSWpq+DoVrawfGUlsLF9Toof1JIYyJCdP8jz56Gi1e+IdOd1VmjD0XaxxJFJ5JDQuxuboUf73qEV9\nRKAXncRQhkTLbqpATp1EzxNGZiZfA9PTE1o7RvJIHA5ebyvUUhl6HhdylNAR6GG+0ItOYihDomXh\nTJCZyVM65diTW48ZW4I77uDe5LlzobVjJI9k6lTuXV++PP42BgZuL0bUI3Fx3GOQQ1fUw3yhF53E\nMIaktxf48kvt6iOCsDDeR6nrbrW38z3KU1KkbVdJQg1jdHbyPSUSE6Xrk9qEqpO43cCMGUBUlHR9\nUhKLRZ4CjpcuATdvAvPmSduu1FitPHNNjR0jg8EwhuTECSA5WR9/MHLEPU+f5nn3etiDxBuhZm65\nXHz9iJ7KgPgjVJ3k1Cn9JmAI5Mjc0oM+ItBDeMvvn9zPf/5zWK1WZA2pAtja2oqCggKkpqZi+fLl\naB+ykqyoqAgOhwNpaWk4dOiQ5/iJEyeQlZUFh8OBbdu2eY53d3dj/fr1cDgcWLx4MWpqasZ1I3qI\ndwrkGBh6ztgShOqRGCn1VxBqqRQ96yMCOQR3vc0XWhfc/RqSp59+GqWlpcOOFRcXo6CgAFVVVcjP\nz0dxcTEAwOl0Yv/+/XA6nSgtLcXWrVvBBlWyLVu2oKSkBC6XCy6Xy9NmSUkJoqOj4XK5sH37duzY\nsWNcN6KHeKcgM5OHYKQsnW6ECSM7OzRh1QilUUYS6up2I4wLOQyJnuaLpUv5thhyrvAPFb+G5MEH\nH8SMGTOGHTt48CAKCwsBAIWFhfjggw8AAAcOHMCGDRsQERGBpKQk2O12lJeXo7GxEZ2dncjNzQUA\nbNq0yXPO0LbWrl2Lw4cPB30Tvb3AV19pr76WN+TQSYwwYcTEcIF5nE4peSRjYIRxkZrKi51euyZN\ne5cu8dX+aWnStCc3MTHa10nGFU1ubm6GdXD5tNVqRXNzMwCgoaEBNpvN8zmbzYb6+vpRxxMSElA/\nmLZUX1+PxEF1NDw8HJGRkWhtbQ2qP8ePc5FZD/qIQMrwVk8Pn2wyM6VpT01Cefs0okeSlAQ0NwO3\nbgV/7pUrfMHd3XdL3i1FmTCBj22pChiKsJYe9BGB1rffDQ+1AYvFAotCv5GXX37Z8/+8vDzkDfqm\neop3CvLygDfflKYtp5OnzhqhvpQwJGvWBHceY8ZK/RVMmMCTSFwunkwRDKdP8+eppwnTGyJza8mS\n0NvS63zxzjvA//k//j9bVlaGMoWtzrgMidVqRVNTE2JjY9HY2IiYmBgA3NOora31fK6urg42mw0J\nCQmoGyIIiOPinMuXLyM+Ph59fX3o6OhAlBfXYqghGcqRI8AvfzmeO1GPjAy+vWdtbejpqkYIXwhy\ncoA9e4I/r6kJmDxZX15poAidJFhDYoSMLcGCBcA330jTVlkZ8OKL0rSlFA89BGzezHWScD+z9tCX\nbAB45ZVX5O0cxhnaWrVqFXbv3g0A2L17N9YMvj6uWrUK+/btQ09PD9xuN1wuF3JzcxEbG4vp06ej\nvLwcjDHs2bMHq1evHtXW+++/j/z8/KD60tOjL31EIKVOYoSMLcF4Q1tG1EcE49VJjPSCIZXg7nZz\nfURvYyUmhr9wylnAMhT8GpINGzbggQcewPnz55GYmIh33nkHL774Ij7++GOkpqbi008/xYuD5j09\nPR3r1q1Deno6VqxYgV27dnnCXrt27cIzzzwDh8MBu92ORx55BACwefNmtLS0wOFw4I033vBkgAXK\n8eO8lMSIfABdIJVOYqQJIzmZZ7QFKZMZUh8RjDdzy0jjIiuLVz3o7Q2tHT3qIwIt6yQWxuSoYiM9\nFosFY3V1505emv1f/kWFToXImTPA6tW8ntJ4YYwbUZcLmDVLur6pyZIlwP/7f8Ftl/zrX/O3tnFm\nj2uaL77g93fsWODn3LrFy6u0twMTJ8rXNyVJSwP+67+4URkvhYXAAw8Azz4rXb+U4s9/Bt5+G/jf\n/w3uPG9zp5Tofg2wHoUzQXo6T2kMpZbSpUvAnXcax4gA4wtjGKlY40hEaCuYueDMGf48jGJEgNDD\nW4zpe7546CHtrifRtSHRqz4iCAvjgzoUncRI4QvBeCYMI2ZsCWbO5KGYq1cDP8eI4yLUmluXLvE5\nQ6/jZNYsYPZsvl2G1tC1IfnmGz4o7rpL7Z6Mn1B1EqNOGMGIir293KvTc8FKX1gswRdvNFLGliDU\nmltiNbse9RGBVutu6dqQ6NlNFUhhSIw2YWRkcM2nqyuwz1+8yFf+6nEr2UAJtnijEV8wQt2bpKws\nON1Ni2hVcCdDojLp6bz8+Xh1EiNOGJMn8yq+Tmdgnzdy6q8gGI+kvx/49lv97kHiDauVvywMWaoW\nMHrXRwQPPcSTL0LNXpMa3RqS7m6exfLgg2r3JDQslvF7Ja2tPFV2zhype6U+wegkRk79FQTjkVRX\n83h6ZKS8fVKD8QrubjcXqR0O6fukJDNn8pI3WtNJdGtIvvmG/3HpWR8RjNeQiJ3vjLT/hiCYCYM8\nkuEY0UsVjNeQGEEfEWhRJ9HtFGQEN1Uw3oGh5611/UEeyXAcDq4FBbLlqpENyXgzt4ygjwjIkEiI\nkQzJvHnAjRvBl0838oSxYAH3uAYG/H/WDB7JlCl8weWlS/4/a8SMLcF4MreMoo8Ili7Vnk6iS0PS\n3Q2Ul+tfHxGMVycxYsaWIDqax/jdbt+f6+jgyQrx8cr0S00CLZVi5BeMlBReHn/Ipqx+uXiRv5DY\n7fL1S0mio7kueuKE2j25jS4Nyddf83IJRhITgzUkXV3AhQs868uoBBLeEmEtI+pEIwmkeGNTE190\nN2T7H0MxYQKvgnz6dODn6Lm+lje0Ft7S5Z+fkdxUQbADw+nkb1iTJ8vVI/UJxpCYgUA8EiPtQeKN\nYAV3PW2rGyhkSCTAiIYkLQ24eTOwGDhg7PCFIJAJwwz6iCAQj4TGxXCEPmIUoV2wdCnw5Zfa0Ul0\nZ0i6u3loS4qd0rREsDqJkTO2BOSRDCcQj4QMyXBEZW2jlc+JiuJbLhw/rnZPOLozJOXlPMvJSPqI\nIJjyB2aYMObM4UK6r2KFZvJIEhP5s7hxw/tnjJyxJcjK4r/3nh7/nzWiPiLQUnhLd4bEiGEtQaAD\nY2DgdizcyFgsfMGlt7dPxnhNLrN4JBMmcF3M5Rr75zdu8FI7RjesU6bwl4xASujQfKEMZEg0xNy5\nPBvLn07idvPNrIy4P/lIfIUx6uv5XixG9E694atUyrff8iy+iAhl+6QGgYS3GONCu9H0EcFDD/Ft\nNLSgk+jKkHR18dIoRtNHBEInOXLE9+fMENYS+JowzBTWEvgqlULjYjgXLvC08ORkZfqkNFFRXPv5\n5hu1e6IzQ1Jezt+4pk9XuyfyEYhOQhMGx0xCu8CXR0LjYjhG1kcEWglv6cqQGDmsJRADw9eeC2bI\n2BKkp/OVybdujf4ZeSTDMaMh8fV3Yqb5Qm3IkGiM1FSejeJLJzHThDFpEn8mZ86M/pmZPZKRE2h/\nP39GRtuDxBuzZnF9zNvfidBHjD5fCJ0kkAw2OdGVITGyPiLwt57kyhXg+nUgKUnBTqmMtzCGGT2S\nqCgupn///fDjVVVAXBwwbZo6/VIDX+EtlwsIDzeuPiKYMYNXhlZ7PYmuDElmpjn+UHwJ7mYogTGS\nsSaM7m6grs6Ym3r5YyydxExeqsCXITGDPiIIJEFHbnRlSIzupgqE4D5W/JcmDE51Nd8pbuJEdfqk\nJmPpJDQuhmOGMLhACzoJGRIN4nDwbUHHKqFuxgkjOxuorBy+N4kZ9REBeSQcb4bEaPuP+OPBB/m2\n42rqJLoyJD/4gdo9UAZfOomZMrYEM2bwPRhE3STAnPqIYGTxRsbMOS6Sk4G2NqC1dfjxqiquI5kl\n7Cl0EjXXk+jKkJhBHxGMZUhu3eJeipH3IPFGTs7wnfHM7pEMDW01NvJ/zbC511DCwsYuoWMmfUSw\nbJm6OomuDImZEANjqE5y5gyfRMyoC4wMY5jZI0lJ4WmvojSGCGuZaeIUjBXeMlNYS6C2TkKGRKPY\n7VwTuHjx9jEzxsEFIycMM3skkydz70OsoaBxcft7s+kjAqGTdHerc30yJBplLJ2EJgz+/7Y2HuaL\ni1O3T2oyVCehcXH7+/PnucdupnVWAHDXXdxDV0snIUOiYciQ3Gb2bG48mptveyNmDOUIhuokZh4X\nGRl88WFXF/9e7IZoxrGhZniLDImGEQuNGOMlMCorzVMCYyQWC58sT582tz4iEB5JZycvp2/mMJ/d\nfntvEjOGtQRjCe5HjypzbTIkGsZu5/9WV/OvmTO5C2tWROYWGZLbHkllJa/4EB6udo/UQ4wLs+oj\ngiVLeIV0oZPcugU89pgy1yZDomGG6iQVFcbfQtUfIh5uZqFdIBYlmjmsJRDj4vx57qGYTR8R3HUX\nkJYGfP01//7AAWDhQmWuTYZE4ww1JDRh3J4wzG5IEhKAjg7g889pXIhxYeTdEANlqE7y7rvAU08p\nc13NGJLS0lKkpaXB4XDgtddeU7s7mkEMDDOuXB5JWhoXVsWWsmYmLIyvZn7vPRoX2dlcO/v0U/OG\ntQRCJ6mv557JmjXKXFcThqS/vx9/93d/h9LSUjidTuzduxfnzp1Tu1uaICWFx35LS4F77+XHytSu\n0KYSEyfypAMAmDKF/2vWZwFwr4QxICuLf2/WZxEdzXdNff99YOlSfsysz2LJEm5Afv974PHHgTvu\nUOa6mjAkX3/9Nex2O5KSkhAREYEnnngCBw4cULtbmkDoJHFxfOIAzPtHAgC//S2wb9/t7838LLZv\nB156iW/wBJj7WdxzDw93Cn3ErM8iMpJ77q+8olxYCwA0ketRX1+PxMREz/c2mw3l5eUq9khbvPOO\n+jugaYVf/lLtHmiHH/2IfxHAn/88vDq0mfm//5d7Z/ffr9w1NWFILGZcPRQEEyeas74WQQRKRITa\nPdAO69bxL0VhGuCrr75iDz/8sOf7nTt3suLi4mGfSUlJYQDoi77oi77oK4ivlJQU2edwC2Nj7cOn\nLH19fZg7dy4OHz6M+Ph45ObmYu/evZg3b57aXSMIgiD8oInQVnh4OH7729/i4YcfRn9/PzZv3kxG\nhCAIQidowiMhCIIg9Ism0n99YdSFirW1tVi2bBkyMjKQmZmJ3/zmNwCA1tZWFBQUIDU1FcuXL0d7\ne7vnnKKiIjgcDqSlpeHQoUOe4ydOnEBWVhYcDge2bdvmOd7d3Y3169fD4XBg8eLFqKmpUe4Gg6S/\nvx85OTlYuXIlAPM+BwBob2/H448/jnnz5iE9PR3l5eWmfB5FRUXIyMhAVlYWnnzySXR3d5vmOfz8\n5z+H1WpFllgkBOX+Jnbv3o3U1FSkpqbiD3/4Q2Adll2FCYG+vj6WkpLC3G436+npYdnZ2czpdKrd\nLUlobGxkp06dYowx1tnZyVJTU5nT6WQvvPACe+211xhjjBUXF7MdO3Ywxhg7e/Ysy87OZj09Pczt\ndrOUlBQ2MDDAGGPsvvvuY+Xl5YwxxlasWME++ugjxhhjb731FtuyZQtjjLF9+/ax9evXK3qPwfDP\n//zP7Mknn2QrV65kjDHTPgfGGNu0aRMrKSlhjDHW29vL2tvbTfc83G43mzNnDuvq6mKMMbZu3Tr2\n7rvvmuY5fPbZZ+zkyZMsMzPTc0yJe29paWHJycmsra2NtbW1ef7vD00bki+//HJYNldRURErKipS\nsUfysXr1avbxxx+zuXPnsqamJsYYNzZz585ljI3OZHv44YfZV199xRoaGlhaWprn+N69e9mzzz7r\n+cyxY8cYY3xCmjlzplK3ExS1tbUsPz+fffrpp+wnP/kJY4yZ8jkwxlh7ezubM2fOqONmex4tLS0s\nNTWVtba2st7eXvaTn/yEHTp0yFTPwe12DzMkStz7n/70J/bcc895znn22WfZ3r17/fZV06GtsRYq\n1tfXq9gjebh06RJOnTqFRYsWobm5GVarFQBgtVrR3NwMAGhoaIDNZvOcI57FyOMJCQmeZzT0+YWH\nhyMyMhKtra1K3VbAbN++Ha+//jrCwm4PRzM+BwBwu92YNWsWnn76adxzzz34xS9+gRs3bpjueURF\nReHXv/41Zs+ejfj4eNx1110oKCgw3XMYitz33tLS4rUtf2jakJhhoeL169exdu1avPnmm5g2bdqw\nn1ksFsM/g7/85S+IiYlBTk4OmJe8DzM8B0FfXx9OnjyJrVu34uTJk5g6dSqKi4uHfcYMz6O6uhpv\nvPEGLl26hIaGBly/fh1//OMfh33GDM/BG1q7d00bkoSEBNTW1nq+r62tHWYt9U5vby/Wrl2LjRs3\nYs1gmU6r1YqmpiYAQGNjI2JiYgCMfhZ1dXWw2WxISEhAXV3dqOPinMuXLwPgE1RHRweioqIUubdA\n+fLLL3Hw4EHMmTMHGzZswKeffoqNGzea7jkIbDYbbDYb7rvvPgDA448/jpMnTyI2NtZUz+P48eN4\n4IEHEB0djfDwcPz0pz/FV199ZbrnMBS5/yaio6PHPedq2pAsXLgQLpcLly5dQk9PD/bv349Vq1ap\n3S1JYIxh8+bNSE9Px69+9SvP8VWrVmH37t0AePaEMDCrVq3Cvn370NPTA7fbDZfLhdzcXMTGxmL6\n9OkoLy8HYwx79uzB6tWrR7X1/vvvIz8/X+G79M/OnTtRW1sLt9uNffv24Yc//CH27NljuucgiI2N\nRWJiIqoGN2T/5JNPkJGRgZUrV5rqeaSlpeHYsWO4desWGGP45JNPkJ6ebrrnMBQl/iaWL1+OQ4cO\nob29HW1tbfj444/x8MMP++9csAKQ0nz44YcsNTWVpaSksJ07d6rdHcn4/PPPmcViYdnZ2WzBggVs\nwYIF7KOPPmItLS0sPz+fORwOVlBQMCxj4tVXX2UpKSls7ty5rLS01HP8+PHjLDMzk6WkpLDnn3/e\nc7yrq4v97Gc/Y3a7nS1atIi53W4lbzFoysrKPFlbZn4OFRUVbOHChWz+/PnsscceY+3t7aZ8Hq+9\n9hpLT09nmZmZbNOmTaynp8c0z+GJJ55gcXFxLCIigtlsNvb2228rdu9vv/02s9vtzG63s3fffTeg\n/tKCRIIgCCIkNB3aIgiCILQPGRKCIAgiJMiQEARBECFBhoQgCIIICTIkBEEQREiQISEIgiBCggwJ\nQRAEERJkSAiCIIiQ+P8KQGY+S2LRtQAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0xcf118b0>"
]
}
],
"prompt_number": 37
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Ignore the following..."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"@autojit\n",
"def cross_corr_numba(data, limits, maxlags):\n",
" return plt.xcorr(data[limits[0]:limits[1], 0], data[limits[0]:limits[1], 1], maxlags=maxlags)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def cross_corr(data, limits, maxlags):\n",
" return plt.xcorr(data[limits[0]:limits[1], 0], data[limits[0]:limits[1], 1], maxlags=maxlags)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%timeit cross_corr(channels, , 10000)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"1 loops, best of 3: 2.45 s per loop\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nWoyMKwAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x7d78fb0>"
]
}
],
"prompt_number": 18
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%timeit cross_corr_numba(channels, (0, 100000), 10000)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"1 loops, best of 3: 2.57 s per loop\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nWoyMKwAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x7c1f350>"
]
}
],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cross_corr_numba(channels, (0, 100000), 5000)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 43,
"text": [
"(array([-5000, -4999, -4998, ..., 4998, 4999, 5000]),\n",
" array([ 0.58371192, 0.58381137, 0.58391082, ..., 0.42205149,\n",
" 0.42195204, 0.42185259]),\n",
" <matplotlib.collections.LineCollection at 0xd7a5e10>,\n",
" <matplotlib.lines.Line2D at 0xd0479f0>)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nYII=\n",
"text": [
"<matplotlib.figure.Figure at 0xe6b7d90>"
]
}
],
"prompt_number": 43
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment