{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ThorDelayAnalysis\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Common delay I/O\n", "---\n", "\\begin{equation}\n", " \\displaystyle y(n) = \\sum_{m = 0}^{M} a^{m} x(n - md)\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Thor's delay\n", "---\n", "### Parameters\n", "![DelayPanel](Fig\\DelayPanel)\n", "\n", "|Name|Unit|Min val|Max val|\n", "|:--:|:--:|:--:|:--:|\n", "|TIME|ms|0|1000|\n", "|F.BACK|-|0|127|\n", "|RATE|Hz|0.14|18.2|\n", "|AMT|-|0|127|\n", "|D.WET|-|0|127|" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Rec IR\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create input inpulse train" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 1.0\n", "48000 1.0\n", "96000 1.0\n", "144000 1.0\n", "192000 1.0\n", "240000 1.0\n", "288000 1.0\n", "336000 1.0\n", "384000 1.0\n", "432000 1.0\n", "dtype: float64\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAD8CAYAAAB3u9PLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAE1lJREFUeJzt3X2wXHV9x/H3l4SAPAiBXChNAoltsI2tD3hFndoadawJ\nOmXsOBW0aqlMyhRaO3ZG4ji10/pPldY6jGjMUIaxVpFWrCmN4kO1aCkPNzwmauQSkCQ85AIaISAh\n5Ns/7o+yuebeuwm759zN7/2auZOz55zd3+979m4+d/d8dzcyE0mSDml7ApKkmcFAkCQBBoIkqTAQ\nJEmAgSBJKgwESRJgIEiSCgNBkgQYCJKkYnZbA8+bNy8XLVrU1vCSNJDWr1//UGYO9eO2WwuERYsW\nMTIy0tbwkjSQIuLH/bptXzKSJAEGgiSpMBAkSYCBIEkqDARJEtBFIETEZRGxPSI2TLI9IuLiiBiN\niNsj4rTeT1OS1G/dPEO4HFg+xfYVwJLysxL49HOfliSpadMGQmZeCzwyxS5nAp/NcdcDx0bESb2a\n4ESbHniUj399Ew899mS/hpjU/4w+xN0P7Wx83Icee5Kvbbi/8XEBrtn4AGOPNn+sf/zwTr5751jj\n42YmV928lSd2Pd342Bvv28Et9/6k8XGfenoPV45sYc+e5r9O98a7H+HOBx9tfNwdTzzF2tvua3zc\nma4X5xDmA1s6Lm8t635BRKyMiJGIGBkbO7AH++j2x7j4v0Z5ZOeuA7r+c/HOS2/gdX//ncbHfe/l\nN3He525mx+NPNTruE7ue5k/+eT1/eOkNjY4L8NqLvsO7/unGxse94e5HeP+Vt/G3V29sfOw3X/w9\n3vqp6xofd821m/nAv93Ol27e2vjYf/CZ/+WN/3ht4+P+5ZW38udfuIXR7Y81PvZM1uhJ5cxck5nD\nmTk8NNSXd14flLb85AkAdu/Z0+i4ezLL+I83Om6bdj65G4AHf9b8s6K2PPPH1Y4nmv2Do033/fTn\nAPz8qeafCc5kvQiEbcDCjssLyjpJ0gDpRSCsBd5duo1eBezIzHZe8JYkHbBpP9wuIr4ALAPmRcRW\n4K+BQwEyczWwDjgDGAUeB87p12QlSf0zbSBk5tnTbE/g/J7NSJLUCt+pLEkCDISB0nyXeBm3rYFb\nlBUWXWHJmsBAGADR1rhtDdyiKmtuewItqPF+7oaBIEkCDARJUmEgSJIAA0GSVBgIkiTAQBgobbUF\nZmsNr+2pr+JK7+f6Sp6SgTAA2mqRiwobEqusub6Sq6y5GwaCJAkwECRJhYEgSQIMBElSYSBIkgAD\nYaC01RZYY2ueNdehxlbbqRgIA6GdHrkqW/MqrDkqvKNrbC/uhoEgSQIMBElSYSBIkgADQZJUGAiS\nJMBAGCytfdppfay5DjW22k7FQBgAFXYFtqbGQ11lzTUW3QUDQZIEGAiSpMJAkCQBBoIkqTAQJEmA\ngTBQWuuQq7A1LyvsR6yw5Bp/tafUVSBExPKI2BQRoxGxah/bj4mI/4iI2yJiY0Sc0/up1qutDrka\nW/Nq/OTPGvtOKyy5K9MGQkTMAi4BVgBLgbMjYumE3c4Hvp+ZLwGWAf8QEXN6PFdJUh918wzhdGA0\nMzdn5i7gCuDMCfskcHSM/3l1FPAIsLunM5Uk9VU3gTAf2NJxeWtZ1+mTwK8D9wF3AO/LzD09maEk\nqRG9Oqn8JuBW4JeBlwKfjIjnT9wpIlZGxEhEjIyNjfVoaElSL3QTCNuAhR2XF5R1nc4Brspxo8Dd\nwK9NvKHMXJOZw5k5PDQ0dKBzliT1QTeBcBOwJCIWlxPFZwFrJ+xzL/AGgIg4EXghsLmXE1V7bYF+\nEXkdaryfa2wvnsrs6XbIzN0RcQFwDTALuCwzN0bEeWX7auAjwOURcQfjHV0XZuZDfZx3VdrqhKzx\ni8jrq7jO+7nKnuouTBsIAJm5Dlg3Yd3qjuX7gN/t7dQkSU3yncqSJMBAkCQVBoIkCTAQJEmFgTBA\n2moLrLEzz5rrUGHJUzIQBkCVbYEtqbEbscqa257ADGUgSJIAA0GSVBgIkiTAQJAkFQaCJAkwEAZK\ne592Wp8aP/mzRjW22k7FQBgANbYFtqXGFt/6KvYxNRkDQZIEGAiSpMJAkCQBBoIkqTAQJEmAgTBQ\n2uqQq/GLyCssucr7uc6m6skZCAPADrnm1NiOWGXNbU9ghjIQJEmAgSBJKgwESRJgIEiSCgNBkgQY\nCAOlrbbAGhvzauzAtGYZCAMgauwLbEmNR7rKT3j1MbVPBoIkCTAQJEmFgSBJAgwESVLRVSBExPKI\n2BQRoxGxapJ9lkXErRGxMSL+u7fTlCT12+zpdoiIWcAlwBuBrcBNEbE2M7/fsc+xwKeA5Zl5b0Sc\n0K8J16ytFrkaW/Oywmbb+iqus+apdPMM4XRgNDM3Z+Yu4ArgzAn7vAO4KjPvBcjM7b2dptSQCrsR\na+zArLDkrnQTCPOBLR2Xt5Z1nU4F5kbEdyJifUS8e183FBErI2IkIkbGxsYObMaSpL7o1Unl2cDL\ngTcDbwL+KiJOnbhTZq7JzOHMHB4aGurR0JKkXpj2HAKwDVjYcXlBWddpK/BwZu4EdkbEtcBLgB/1\nZJaSpL7r5hnCTcCSiFgcEXOAs4C1E/b5CvCaiJgdEUcArwR+0NupSpL6adpnCJm5OyIuAK4BZgGX\nZebGiDivbF+dmT+IiK8BtwN7gEszc0M/Jy5J6q1uXjIiM9cB6yasWz3h8kXARb2bmtSeKlttrbl6\nvlN5ANTYFtiWKj/5s+0JtMDH1L4ZCJIkwECQJBUGgiQJMBAkSYWBIEkCDISBYotcc2o81FV+wqsP\nqr0YCJIkwEAYCPZMN6fKY11h0TW+36QbBoIkCTAQJEmFgSBJAgwESVJhIAyQGtsCW1Phoa6xA7PC\nkqdkIEiSAANhINgi15waj3SNNddZ9PQMBEkSYCBIkgoDQZIEGAiSpMJAGCA1tgW2pcYW3/oq9jE1\nkYEgSQIMhIFQ4YdRtiYqPNgVlmzX6SQMBEkSYCBIkgoDQZIEGAiSpMJAGCB2yDWnynbECouusb14\nKgaCJAkwEAaCLXLNqbMFs76ia7yfu9FVIETE8ojYFBGjEbFqiv1eERG7I+JtvZuiJKkJ0wZCRMwC\nLgFWAEuBsyNi6ST7fRT4eq8nKUnqv26eIZwOjGbm5szcBVwBnLmP/f4M+BKwvYfzkyQ1pJtAmA9s\n6bi8taz7fxExH3gr8OneTU2S1KRenVT+BHBhZu6ZaqeIWBkRIxExMjY21qOh65EVtgW2pcYjXWPN\ndRY9udld7LMNWNhxeUFZ12kYuKJ8MNg84IyI2J2Z/965U2auAdYADA8Pe1dI0gzSTSDcBCyJiMWM\nB8FZwDs6d8jMxc8sR8TlwNUTw0AHrsZP4GxLjUe6xl+vGlttuzFtIGTm7oi4ALgGmAVclpkbI+K8\nsn11n+coSWpAN88QyMx1wLoJ6/YZBJn5R899WpKkpvlOZUkSYCBIkgoDYYDYltWcGlt8KyzZx9QE\nBoIkCTAQBoINcs2pswWzPjXez90wECRJgIEgSSoMBEkSYCBIkgoDYYDU2BbYlhoPdY1fOO9jam8G\ngiQJMBAGgy1yDarvYNfYglljzd0wECRJgIEgSSoMBEkSYCBIkgoDYaDYI9eUGtsRq6zZx9ReDARJ\nEmAgDAQ75JpTYztiVFh0+KjaJwNBkgQYCJKkwkCQJAEGgiSpMBAGSI1tgW2p8VBXWXONRU/BQJAk\nAQbCQKixLbAtHuk6+JDaNwNBkgQYCJKkwkCQJAEGgiSpMBAGiB1yDaqwH7HCkn1MTdBVIETE8ojY\nFBGjEbFqH9vfGRG3R8QdEXFdRLyk91OVJPXTtIEQEbOAS4AVwFLg7IhYOmG3u4HXZuZvAh8B1vR6\nojWzQ645Nbb4VliyJtHNM4TTgdHM3JyZu4ArgDM7d8jM6zLzJ+Xi9cCC3k5TktRv3QTCfGBLx+Wt\nZd1k3gt8dV8bImJlRIxExMjY2Fj3s5Qk9V1PTypHxOsYD4QL97U9M9dk5nBmDg8NDfVyaEnSczS7\ni322AQs7Li8o6/YSES8GLgVWZObDvZmeJKkp3TxDuAlYEhGLI2IOcBawtnOHiDgZuAp4V2b+qPfT\nlCT127TPEDJzd0RcAFwDzAIuy8yNEXFe2b4a+DBwPPCp0qWxOzOH+zftOlXZJ57ZSudPhYearLDq\nrPFBNYVuXjIiM9cB6yasW92xfC5wbm+npmfYFticGg91jV84X2N7cTd8p7IkCTAQJEmFgSBJAgwE\nSVJhIEiSAANhoNTZFljXuK2qsOYKS56SgTAAamwLbEuN3YhV1tz2BGYoA0GSBBgIkqTCQJAkAQaC\nJKkwECRJgIEwUGpshWyr5CpbfNueQBuqLHpyBsIAqLEtsC01tvjWV7GPqckYCJIkwECQJBUGgiQJ\nMBAkSYWBIEkCDISBUmXbaUtFe6zrUGN78VQMBKlDje2IVdbc9gRmKANBkgQYCJKkwkCQJAEGgiSp\nMBAkSYCBMFBqbJFr7dNO6zvU1iwDYRBEjX2BakyVn/DqY2qfDARJEmAgSJKKrgIhIpZHxKaIGI2I\nVfvYHhFxcdl+e0Sc1vupSpL6adpAiIhZwCXACmApcHZELJ2w2wpgSflZCXy6x/OUJPVZN88QTgdG\nM3NzZu4CrgDOnLDPmcBnc9z1wLERcVKP5ypJ6qOY7hMOI+JtwPLMPLdcfhfwysy8oGOfq4G/y8zv\nlcvfAi7MzJHJbnd4eDhHRibdPKn/vP1+zv/8zcyZdQinHH/Efl//ubhz+2MALDnhqFbGPeHowzjm\neYc2Nu6eTO4a2wm0V/OvnnBUoz0wO554iu2PPgm0V3Nb47Y5dlvjHn7oISyc2+z/IwBvf8VCzv3t\nFxzQdSNifWYO93hKAMzux41OJiJWMv6SEieffPIB3cYrFs3l9182n5/vfrqXU+vKndsf4/gj57Dk\nxGZ/eY8+fDY33/tTXn7K3MY/mfKusZ38ytCRjdf8TBid2vC4mfDVDQ9w2snH8kvHHN7o2I/s3MXD\nO3c1fqxPOf5IvvmDB1n2wiGOmDOr0bFHxx7jyDmzG6/5+KPmcP3mR1h26gkc0kJrzbyjDmt+0C50\nEwjbgIUdlxeUdfu7D5m5BlgD488Q9mumxQnPP5yPv/2lB3JVSdIUusnGm4AlEbE4IuYAZwFrJ+yz\nFnh36TZ6FbAjM+/v8VwlSX007TOEzNwdERcA1wCzgMsyc2NEnFe2rwbWAWcAo8DjwDn9m7IkqR+6\nOoeQmesY/0+/c93qjuUEzu/t1CRJTfKdypIkwECQJBUGgiQJMBAkSYWBIEkCuvjoir4NHDEG/PgA\nrz4PeKiH0xk0Nddfc+1Qd/3WPu6UzBzqxyCtBcJzEREj/fosj0FQc/011w5112/t/a/dl4wkSYCB\nIEkqBjUQ1rQ9gZbVXH/NtUPd9Vt7nw3kOQRJUu8N6jMESVKPDVwgRMTyiNgUEaMRsart+eyPiLgs\nIrZHxIaOdcdFxDci4s7y79yObR8sdW6KiDd1rH95RNxRtl0cMf61ORFxWER8say/ISIWdVznPWWM\nOyPiPc1U/KyIWBgR346I70fExoh4X1l/0NcfEYdHxI0RcVup/W/K+oO+9o45zIqIW8q3K9ZW+z1l\n3rdGxEhZNzPrz8yB+WH847fvAl4AzAFuA5a2Pa/9mP/vAKcBGzrWfQxYVZZXAR8ty0tLfYcBi0vd\ns8q2G4FXAQF8FVhR1v8psLosnwV8sSwfB2wu/84ty3Mbrv0k4LSyfDTwo1LjQV9/medRZflQ4IYy\n/4O+9o5j8H7g88DVNf3el3ncA8ybsG5G1t/ogenBgX01cE3H5Q8CH2x7XvtZwyL2DoRNwEll+SRg\n075qY/z7KF5d9vlhx/qzgc907lOWZzP+Rpbo3Kds+wxwdsvH4SvAG2urHzgCuBl4ZS21M/4Nit8C\nXs+zgVBF7WXce/jFQJiR9Q/aS0bzgS0dl7eWdYPsxHz22+UeAE4sy5PVOr8sT1y/13UyczewAzh+\nittqRXlK+zLG/1Kuov7yksmtwHbgG5lZTe3AJ4APAHs61tVSO0AC34yI9TH+vfIwQ+vv6gty1IzM\nzIg4qNu+IuIo4EvAX2Tmz8rLoMDBXX9mPg28NCKOBb4cEb8xYftBWXtEvAXYnpnrI2LZvvY5WGvv\n8JrM3BYRJwDfiIgfdm6cSfUP2jOEbcDCjssLyrpB9mBEnARQ/t1e1k9W67ayPHH9XteJiNnAMcDD\nU9xWoyLiUMbD4F8y86qyupr6ATLzp8C3geXUUftvAb8XEfcAVwCvj4jPUUftAGTmtvLvduDLwOnM\n1Pqbfj3tOb4WN5vxEyOLefak8ovantd+1rCIvc8hXMTeJ5c+VpZfxN4nlzYz+cmlM8r689n75NKV\nZfk44G7GTyzNLcvHNVx3AJ8FPjFh/UFfPzAEHFuWnwd8F3hLDbVPOA7LePYcQhW1A0cCR3csX8f4\nHwMzsv7Gfyl6cIDPYLxD5S7gQ23PZz/n/gXgfuApxl/Pey/jr/V9C7gT+GbnHQZ8qNS5idJRUNYP\nAxvKtk/y7BsMDwf+FRgtvzwv6LjOH5f1o8A5LdT+GsZfS70duLX8nFFD/cCLgVtK7RuAD5f1B33t\nE47DMp4NhCpqZ7wj8rbys5Hyf9ZMrd93KkuSgME7hyBJ6hMDQZIEGAiSpMJAkCQBBoIkqTAQJEmA\ngSBJKgwESRIA/weaYdclRoTWdAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "%matplotlib inline\n", "\n", "#samplerate = 48 kHz, period = 1 sec, signal_length = 10 sec\n", "fs = 48000\n", "period = fs\n", "length = period * 10 #10 sec\n", "\n", "#Create IT and show\n", "inpulse_train = np.arange(length) % period < 1\n", "inpulse_train = inpulse_train.astype(np.float)\n", "\n", "ser = pd.Series(inpulse_train)\n", "ser = ser[inpulse_train > 0]\n", "print(ser)\n", "\n", "plt.plot(range(inpulse_train.size), inpulse_train)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 0.999969\n", "48000 0.999969\n", "96000 0.999969\n", "144000 0.999969\n", "192000 0.999969\n", "240000 0.999969\n", "288000 0.999969\n", "336000 0.999969\n", "384000 0.999969\n", "432000 0.999969\n", "dtype: float64\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAD8CAYAAAB3u9PLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAE1lJREFUeJzt3X2wXHV9x/H3l4SAPAiBXChNAoltsI2tD3hFndoadawJ\nOmXsOBW0aqlMyhRaO3ZG4ji10/pPldY6jGjMUIaxVpFWrCmN4kO1aCkPNzwmauQSkCQ85AIaISAh\n5Ns/7o+yuebeuwm759zN7/2auZOz55zd3+979m4+d/d8dzcyE0mSDml7ApKkmcFAkCQBBoIkqTAQ\nJEmAgSBJKgwESRJgIEiSCgNBkgQYCJKkYnZbA8+bNy8XLVrU1vCSNJDWr1//UGYO9eO2WwuERYsW\nMTIy0tbwkjSQIuLH/bptXzKSJAEGgiSpMBAkSYCBIEkqDARJEtBFIETEZRGxPSI2TLI9IuLiiBiN\niNsj4rTeT1OS1G/dPEO4HFg+xfYVwJLysxL49HOfliSpadMGQmZeCzwyxS5nAp/NcdcDx0bESb2a\n4ESbHniUj399Ew899mS/hpjU/4w+xN0P7Wx83Icee5Kvbbi/8XEBrtn4AGOPNn+sf/zwTr5751jj\n42YmV928lSd2Pd342Bvv28Et9/6k8XGfenoPV45sYc+e5r9O98a7H+HOBx9tfNwdTzzF2tvua3zc\nma4X5xDmA1s6Lm8t635BRKyMiJGIGBkbO7AH++j2x7j4v0Z5ZOeuA7r+c/HOS2/gdX//ncbHfe/l\nN3He525mx+NPNTruE7ue5k/+eT1/eOkNjY4L8NqLvsO7/unGxse94e5HeP+Vt/G3V29sfOw3X/w9\n3vqp6xofd821m/nAv93Ol27e2vjYf/CZ/+WN/3ht4+P+5ZW38udfuIXR7Y81PvZM1uhJ5cxck5nD\nmTk8NNSXd14flLb85AkAdu/Z0+i4ezLL+I83Om6bdj65G4AHf9b8s6K2PPPH1Y4nmv2Do033/fTn\nAPz8qeafCc5kvQiEbcDCjssLyjpJ0gDpRSCsBd5duo1eBezIzHZe8JYkHbBpP9wuIr4ALAPmRcRW\n4K+BQwEyczWwDjgDGAUeB87p12QlSf0zbSBk5tnTbE/g/J7NSJLUCt+pLEkCDISB0nyXeBm3rYFb\nlBUWXWHJmsBAGADR1rhtDdyiKmtuewItqPF+7oaBIEkCDARJUmEgSJIAA0GSVBgIkiTAQBgobbUF\nZmsNr+2pr+JK7+f6Sp6SgTAA2mqRiwobEqusub6Sq6y5GwaCJAkwECRJhYEgSQIMBElSYSBIkgAD\nYaC01RZYY2ueNdehxlbbqRgIA6GdHrkqW/MqrDkqvKNrbC/uhoEgSQIMBElSYSBIkgADQZJUGAiS\nJMBAGCytfdppfay5DjW22k7FQBgAFXYFtqbGQ11lzTUW3QUDQZIEGAiSpMJAkCQBBoIkqTAQJEmA\ngTBQWuuQq7A1LyvsR6yw5Bp/tafUVSBExPKI2BQRoxGxah/bj4mI/4iI2yJiY0Sc0/up1qutDrka\nW/Nq/OTPGvtOKyy5K9MGQkTMAi4BVgBLgbMjYumE3c4Hvp+ZLwGWAf8QEXN6PFdJUh918wzhdGA0\nMzdn5i7gCuDMCfskcHSM/3l1FPAIsLunM5Uk9VU3gTAf2NJxeWtZ1+mTwK8D9wF3AO/LzD09maEk\nqRG9Oqn8JuBW4JeBlwKfjIjnT9wpIlZGxEhEjIyNjfVoaElSL3QTCNuAhR2XF5R1nc4Brspxo8Dd\nwK9NvKHMXJOZw5k5PDQ0dKBzliT1QTeBcBOwJCIWlxPFZwFrJ+xzL/AGgIg4EXghsLmXE1V7bYF+\nEXkdaryfa2wvnsrs6XbIzN0RcQFwDTALuCwzN0bEeWX7auAjwOURcQfjHV0XZuZDfZx3VdrqhKzx\ni8jrq7jO+7nKnuouTBsIAJm5Dlg3Yd3qjuX7gN/t7dQkSU3yncqSJMBAkCQVBoIkCTAQJEmFgTBA\n2moLrLEzz5rrUGHJUzIQBkCVbYEtqbEbscqa257ADGUgSJIAA0GSVBgIkiTAQJAkFQaCJAkwEAZK\ne592Wp8aP/mzRjW22k7FQBgANbYFtqXGFt/6KvYxNRkDQZIEGAiSpMJAkCQBBoIkqTAQJEmAgTBQ\n2uqQq/GLyCssucr7uc6m6skZCAPADrnm1NiOWGXNbU9ghjIQJEmAgSBJKgwESRJgIEiSCgNBkgQY\nCAOlrbbAGhvzauzAtGYZCAMgauwLbEmNR7rKT3j1MbVPBoIkCTAQJEmFgSBJAgwESVLRVSBExPKI\n2BQRoxGxapJ9lkXErRGxMSL+u7fTlCT12+zpdoiIWcAlwBuBrcBNEbE2M7/fsc+xwKeA5Zl5b0Sc\n0K8J16ytFrkaW/Oywmbb+iqus+apdPMM4XRgNDM3Z+Yu4ArgzAn7vAO4KjPvBcjM7b2dptSQCrsR\na+zArLDkrnQTCPOBLR2Xt5Z1nU4F5kbEdyJifUS8e183FBErI2IkIkbGxsYObMaSpL7o1Unl2cDL\ngTcDbwL+KiJOnbhTZq7JzOHMHB4aGurR0JKkXpj2HAKwDVjYcXlBWddpK/BwZu4EdkbEtcBLgB/1\nZJaSpL7r5hnCTcCSiFgcEXOAs4C1E/b5CvCaiJgdEUcArwR+0NupSpL6adpnCJm5OyIuAK4BZgGX\nZebGiDivbF+dmT+IiK8BtwN7gEszc0M/Jy5J6q1uXjIiM9cB6yasWz3h8kXARb2bmtSeKlttrbl6\nvlN5ANTYFtiWKj/5s+0JtMDH1L4ZCJIkwECQJBUGgiQJMBAkSYWBIEkCDISBYotcc2o81FV+wqsP\nqr0YCJIkwEAYCPZMN6fKY11h0TW+36QbBoIkCTAQJEmFgSBJAgwESVJhIAyQGtsCW1Phoa6xA7PC\nkqdkIEiSAANhINgi15waj3SNNddZ9PQMBEkSYCBIkgoDQZIEGAiSpMJAGCA1tgW2pcYW3/oq9jE1\nkYEgSQIMhIFQ4YdRtiYqPNgVlmzX6SQMBEkSYCBIkgoDQZIEGAiSpMJAGCB2yDWnynbECouusb14\nKgaCJAkwEAaCLXLNqbMFs76ia7yfu9FVIETE8ojYFBGjEbFqiv1eERG7I+JtvZuiJKkJ0wZCRMwC\nLgFWAEuBsyNi6ST7fRT4eq8nKUnqv26eIZwOjGbm5szcBVwBnLmP/f4M+BKwvYfzkyQ1pJtAmA9s\n6bi8taz7fxExH3gr8OneTU2S1KRenVT+BHBhZu6ZaqeIWBkRIxExMjY21qOh65EVtgW2pcYjXWPN\ndRY9udld7LMNWNhxeUFZ12kYuKJ8MNg84IyI2J2Z/965U2auAdYADA8Pe1dI0gzSTSDcBCyJiMWM\nB8FZwDs6d8jMxc8sR8TlwNUTw0AHrsZP4GxLjUe6xl+vGlttuzFtIGTm7oi4ALgGmAVclpkbI+K8\nsn11n+coSWpAN88QyMx1wLoJ6/YZBJn5R899WpKkpvlOZUkSYCBIkgoDYYDYltWcGlt8KyzZx9QE\nBoIkCTAQBoINcs2pswWzPjXez90wECRJgIEgSSoMBEkSYCBIkgoDYYDU2BbYlhoPdY1fOO9jam8G\ngiQJMBAGgy1yDarvYNfYglljzd0wECRJgIEgSSoMBEkSYCBIkgoDYaDYI9eUGtsRq6zZx9ReDARJ\nEmAgDAQ75JpTYztiVFh0+KjaJwNBkgQYCJKkwkCQJAEGgiSpMBAGSI1tgW2p8VBXWXONRU/BQJAk\nAQbCQKixLbAtHuk6+JDaNwNBkgQYCJKkwkCQJAEGgiSpMBAGiB1yDaqwH7HCkn1MTdBVIETE8ojY\nFBGjEbFqH9vfGRG3R8QdEXFdRLyk91OVJPXTtIEQEbOAS4AVwFLg7IhYOmG3u4HXZuZvAh8B1vR6\nojWzQ645Nbb4VliyJtHNM4TTgdHM3JyZu4ArgDM7d8jM6zLzJ+Xi9cCC3k5TktRv3QTCfGBLx+Wt\nZd1k3gt8dV8bImJlRIxExMjY2Fj3s5Qk9V1PTypHxOsYD4QL97U9M9dk5nBmDg8NDfVyaEnSczS7\ni322AQs7Li8o6/YSES8GLgVWZObDvZmeJKkp3TxDuAlYEhGLI2IOcBawtnOHiDgZuAp4V2b+qPfT\nlCT127TPEDJzd0RcAFwDzAIuy8yNEXFe2b4a+DBwPPCp0qWxOzOH+zftOlXZJ57ZSudPhYearLDq\nrPFBNYVuXjIiM9cB6yasW92xfC5wbm+npmfYFticGg91jV84X2N7cTd8p7IkCTAQJEmFgSBJAgwE\nSVJhIEiSAANhoNTZFljXuK2qsOYKS56SgTAAamwLbEuN3YhV1tz2BGYoA0GSBBgIkqTCQJAkAQaC\nJKkwECRJgIEwUGpshWyr5CpbfNueQBuqLHpyBsIAqLEtsC01tvjWV7GPqckYCJIkwECQJBUGgiQJ\nMBAkSYWBIEkCDISBUmXbaUtFe6zrUGN78VQMBKlDje2IVdbc9gRmKANBkgQYCJKkwkCQJAEGgiSp\nMBAkSYCBMFBqbJFr7dNO6zvU1iwDYRBEjX2BakyVn/DqY2qfDARJEmAgSJKKrgIhIpZHxKaIGI2I\nVfvYHhFxcdl+e0Sc1vupSpL6adpAiIhZwCXACmApcHZELJ2w2wpgSflZCXy6x/OUJPVZN88QTgdG\nM3NzZu4CrgDOnLDPmcBnc9z1wLERcVKP5ypJ6qOY7hMOI+JtwPLMPLdcfhfwysy8oGOfq4G/y8zv\nlcvfAi7MzJHJbnd4eDhHRibdPKn/vP1+zv/8zcyZdQinHH/Efl//ubhz+2MALDnhqFbGPeHowzjm\neYc2Nu6eTO4a2wm0V/OvnnBUoz0wO554iu2PPgm0V3Nb47Y5dlvjHn7oISyc2+z/IwBvf8VCzv3t\nFxzQdSNifWYO93hKAMzux41OJiJWMv6SEieffPIB3cYrFs3l9182n5/vfrqXU+vKndsf4/gj57Dk\nxGZ/eY8+fDY33/tTXn7K3MY/mfKusZ38ytCRjdf8TBid2vC4mfDVDQ9w2snH8kvHHN7o2I/s3MXD\nO3c1fqxPOf5IvvmDB1n2wiGOmDOr0bFHxx7jyDmzG6/5+KPmcP3mR1h26gkc0kJrzbyjDmt+0C50\nEwjbgIUdlxeUdfu7D5m5BlgD488Q9mumxQnPP5yPv/2lB3JVSdIUusnGm4AlEbE4IuYAZwFrJ+yz\nFnh36TZ6FbAjM+/v8VwlSX007TOEzNwdERcA1wCzgMsyc2NEnFe2rwbWAWcAo8DjwDn9m7IkqR+6\nOoeQmesY/0+/c93qjuUEzu/t1CRJTfKdypIkwECQJBUGgiQJMBAkSYWBIEkCuvjoir4NHDEG/PgA\nrz4PeKiH0xk0Nddfc+1Qd/3WPu6UzBzqxyCtBcJzEREj/fosj0FQc/011w5112/t/a/dl4wkSYCB\nIEkqBjUQ1rQ9gZbVXH/NtUPd9Vt7nw3kOQRJUu8N6jMESVKPDVwgRMTyiNgUEaMRsart+eyPiLgs\nIrZHxIaOdcdFxDci4s7y79yObR8sdW6KiDd1rH95RNxRtl0cMf61ORFxWER8say/ISIWdVznPWWM\nOyPiPc1U/KyIWBgR346I70fExoh4X1l/0NcfEYdHxI0RcVup/W/K+oO+9o45zIqIW8q3K9ZW+z1l\n3rdGxEhZNzPrz8yB+WH847fvAl4AzAFuA5a2Pa/9mP/vAKcBGzrWfQxYVZZXAR8ty0tLfYcBi0vd\ns8q2G4FXAQF8FVhR1v8psLosnwV8sSwfB2wu/84ty3Mbrv0k4LSyfDTwo1LjQV9/medRZflQ4IYy\n/4O+9o5j8H7g88DVNf3el3ncA8ybsG5G1t/ogenBgX01cE3H5Q8CH2x7XvtZwyL2DoRNwEll+SRg\n075qY/z7KF5d9vlhx/qzgc907lOWZzP+Rpbo3Kds+wxwdsvH4SvAG2urHzgCuBl4ZS21M/4Nit8C\nXs+zgVBF7WXce/jFQJiR9Q/aS0bzgS0dl7eWdYPsxHz22+UeAE4sy5PVOr8sT1y/13UyczewAzh+\nittqRXlK+zLG/1Kuov7yksmtwHbgG5lZTe3AJ4APAHs61tVSO0AC34yI9TH+vfIwQ+vv6gty1IzM\nzIg4qNu+IuIo4EvAX2Tmz8rLoMDBXX9mPg28NCKOBb4cEb8xYftBWXtEvAXYnpnrI2LZvvY5WGvv\n8JrM3BYRJwDfiIgfdm6cSfUP2jOEbcDCjssLyrpB9mBEnARQ/t1e1k9W67ayPHH9XteJiNnAMcDD\nU9xWoyLiUMbD4F8y86qyupr6ATLzp8C3geXUUftvAb8XEfcAVwCvj4jPUUftAGTmtvLvduDLwOnM\n1Pqbfj3tOb4WN5vxEyOLefak8ovantd+1rCIvc8hXMTeJ5c+VpZfxN4nlzYz+cmlM8r689n75NKV\nZfk44G7GTyzNLcvHNVx3AJ8FPjFh/UFfPzAEHFuWnwd8F3hLDbVPOA7LePYcQhW1A0cCR3csX8f4\nHwMzsv7Gfyl6cIDPYLxD5S7gQ23PZz/n/gXgfuApxl/Pey/jr/V9C7gT+GbnHQZ8qNS5idJRUNYP\nAxvKtk/y7BsMDwf+FRgtvzwv6LjOH5f1o8A5LdT+GsZfS70duLX8nFFD/cCLgVtK7RuAD5f1B33t\nE47DMp4NhCpqZ7wj8rbys5Hyf9ZMrd93KkuSgME7hyBJ6hMDQZIEGAiSpMJAkCQBBoIkqTAQJEmA\ngSBJKgwESRIA/weaYdclRoTWdAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import soundfile as sf\n", "\n", "#save as wavefile\n", "sf.write(\"ImpulseTrain_fs48kHz_p1sec_len10sec.wav\", inpulse_train, int(fs))\n", "\n", "#load wav and show\n", "inpulse_wav, _ = sf.read(\"ImpulseTrain_fs48kHz_p1sec_len10sec.wav\")\n", "\n", "ser = pd.Series(inpulse_wav)\n", "ser = ser[inpulse_wav > 0]\n", "print(ser)\n", "\n", "plt.plot(range(inpulse_wav.size), inpulse_wav)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### IR rec conditions\n", "InputSignal: Impulse Train (freq. 1 Hz, fs 48 kHz, bit 16, len 10 sec, Mono) \n", "OutSignal: Input(Mono) -> Thor Filter3 (L & R) -> Thor Delay -> Out (Stereo)\n", "\n", "![BackPanel](Fig\\BackPanel)\n", "![Looting](Fig\\Looting)\n", "\n", "## Analysis of \"TIME\" parameter dependence\n", "---\n", "### Mesurement conditions\n", "|Entry|TIME|F.BACK|RATE|AMT|D.WET|\n", "|:--:|:--:|:--:|:--:|:--:|:--:|\n", "|T_0|0|0|0.14|0|0|\n", "|T_1|0|0|0.14|0|127|\n", "|T_2|197|0|0.14|0|127|\n", "|T_3|402|0|0.14|0|127|\n", "|T_4|606|0|0.14|0|127|\n", "|T_5|803|0|0.14|0|127|\n", "\n", "![InpulseRec](Fig\\InpulseRec)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
msecsample
T_100.0
T_21979456.0
T_340219296.0
T_460629088.0
T_580338544.0
\n", "
" ], "text/plain": [ " msec sample\n", "T_1 0 0.0\n", "T_2 197 9456.0\n", "T_3 402 19296.0\n", "T_4 606 29088.0\n", "T_5 803 38544.0" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def msec_to_sample_fs48kHz(t_msec):\n", " return t_msec / 1000.0 * 48000\n", "\n", "T_msec = [0, 197, 402, 606, 803]\n", "T_samp = [msec_to_sample_fs48kHz(x) for x in T_msec]\n", "\n", "index_label = [\"T_1\", \"T_2\", \"T_3\", \"T_4\", \"T_5\"]\n", "df = pd.DataFrame({\"msec\": T_msec, \"sample\": T_samp}, index = index_label)\n", "\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis of IRs" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n6v55zrkdzrnnJS2XNM3MDpG0n3PuQdd78vptA36n77V+JmlGZa/quyXd7Zxb75zbIOlu7VocA3LO\nrXbO/any8xb1blDVi3aKnHC9tlZujq78c6KNIkfMrEHS30n6dtXdtFGMOIrSNNVLWll1u6VyHzCc\n3uicW135eY2kN1Z+3lN7rK/8PPD+V/2Oc65L0iZJdXt5LWCPKtPB/lrSH0U7RY5UpkU2S1qn3g1w\n2ijy5quSPiapp+o+2ihGHEUpgH1W2RPK0t2IzszGS/q5pNnOuc3Vj9FOEZtzrts5N0VSg3qPKB03\n4HHaKKIxs/dIWuece3hPz6GNYqRQlKZplaTDqm43VO4DhtPayhQdVf5fV7l/T+1xVeXngfe/6nfM\nbJSk/SW17eW1gF2Y2Wj1FqQ/cs7dUbmbdorccc5tlPRb9U5PpI0iL94u6SwzW6HeU8HeaWY/FG0U\nEVCUpukhSUeb2RFmNka9J53PjxwTim++pL7V8S6S9Muq+8+rrLB3hHoXOGiqTP3ZbGanVM4f+dCA\n3+l7rXMl3VPZG3unpL81s9dXFjz428p9wKtU2tR3JD3pnPty1UO0U+SCmU00swMqP79G0umSnhJt\nFDnhnPuEc67BOTdJvduS9zjnPiDaKCIYFTsA7DvnXJeZXaneL2+tpFudc8sih4UCMbPbJU2XdKCZ\ntah3hbzrJf3UzC6V9IKk90uSc26Zmf1U0hPqXRF1lnOuu/JSH1bvSr6vkfSbyj+pt5j4gZktV++C\nSudVXmu9mX1GvTteJOnfnXMDF1wCpN49/B+U9FjlnD1J+qRop8iPQyR9v7I6aY2knzrnFpjZA6KN\nIt/oRzHirHdnBQAAAAAAI4/puwAAAACAaChKAQAAAADRUJQCAAAAAKKhKAUAAAAARENRCgAAAACI\nhqIUAAAAABANRSkAAAAAIBqKUgAAAABANP8fCwqXdixmSIAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import soundfile as sf\n", "%matplotlib inline\n", "\n", "def extract_left_channel(stereo_wav, _):\n", " return stereo_wav[:, 0] \n", "\n", "input_inpulse, fs = sf.read(\"ImpulseTrain_fs48kHz_p1sec_len10sec.wav\")\n", "T_data = []\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\T_0.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\T_1.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\T_2.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\T_3.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\T_4.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\T_5.wav\")))\n", "\n", "plt.figure(figsize = (16, 4))\n", "plt.plot(range(input_inpulse.size), input_inpulse, label = \"Input\")\n", "for num, data in enumerate(T_data):\n", " label_name = \"T_\" + str(num)\n", " plt.plot(range(data.size), data, label = label_name)\n", "plt.xlim(-fs, fs * 10)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "0-1周期目は安定していない? \n", "3周期目を取り出して、各IRの遅延サンプル時間を特定" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 0.999969\n", "4593 0.519989\n", "48005 0.971466\n", "48006 0.027710\n", "96002 0.999969\n", "144002 0.999969\n", "192002 0.999969\n", "240002 0.999969\n", "288002 0.999969\n", "336002 0.999969\n", "384002 0.999969\n", "432002 0.999969\n", "dtype: float64\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0294489449192751927629102291033855138552
00.999969NaNNaNNaNNaNNaNNaNNaNNaNNaN
1NaN0.999969NaNNaNNaNNaNNaNNaNNaNNaN
2NaNNaN0.2070310.792938NaNNaNNaNNaNNaNNaN
3NaNNaNNaNNaN0.4570310.542938NaNNaNNaNNaN
4NaNNaNNaNNaNNaNNaN0.8320010.167969NaNNaN
5NaNNaNNaNNaNNaNNaNNaNNaN0.9765320.023438
\n", "
" ], "text/plain": [ " 0 2 9448 9449 19275 19276 29102 \\\n", "0 0.999969 NaN NaN NaN NaN NaN NaN \n", "1 NaN 0.999969 NaN NaN NaN NaN NaN \n", "2 NaN NaN 0.207031 0.792938 NaN NaN NaN \n", "3 NaN NaN NaN NaN 0.457031 0.542938 NaN \n", "4 NaN NaN NaN NaN NaN NaN 0.832001 \n", "5 NaN NaN NaN NaN NaN NaN NaN \n", "\n", " 29103 38551 38552 \n", "0 NaN NaN NaN \n", "1 NaN NaN NaN \n", "2 NaN NaN NaN \n", "3 NaN NaN NaN \n", "4 0.167969 NaN NaN \n", "5 NaN 0.976532 0.023438 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def extract_cycle(IR_list, cycle):\n", " new_data_set = []\n", " st = fs * cycle\n", " en = st + fs\n", " \n", " for data in IR_list:\n", " new_data_set.append(data[st : en])\n", " \n", " return new_data_set\n", "\n", "def extract_position_intensity(IR, threshold):\n", " s = pd.Series(IR)\n", " return s[IR > threshold] \n", "\n", "print(extract_position_intensity(T_data[1], 0))\n", "\n", "#第3周期のIRを抽出\n", "T_extract = extract_cycle(T_data, 3)\n", "\n", "for num, data in enumerate(T_extract):\n", " label_name = \"T_\" + str(num)\n", " plt.plot(range(data.size), data)\n", "\n", "plt.show()\n", "\n", "#0を除外して、整理\n", "T_ser = []\n", "for data in T_extract:\n", " T_ser.append(extract_position_intensity(data, 0))\n", "\n", "df = pd.DataFrame(T_ser)\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "右チャンネル出力についても同様に解析" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "0 0.999969\n", "4593 0.540009\n", "48005 0.971466\n", "48006 0.027740\n", "96002 0.999969\n", "144002 0.999969\n", "192002 0.999969\n", "240002 0.999969\n", "288002 0.999969\n", "336002 0.999969\n", "384002 0.999969\n", "432002 0.999969\n", "dtype: float64\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0294489449192751927629102291033855138552
00.999969NaNNaNNaNNaNNaNNaNNaNNaNNaN
1NaN0.999969NaNNaNNaNNaNNaNNaNNaNNaN
2NaNNaN0.2070310.792938NaNNaNNaNNaNNaNNaN
3NaNNaNNaNNaN0.4570310.542938NaNNaNNaNNaN
4NaNNaNNaNNaNNaNNaN0.8320010.167969NaNNaN
5NaNNaNNaNNaNNaNNaNNaNNaN0.9765320.023438
\n", "
" ], "text/plain": [ " 0 2 9448 9449 19275 19276 29102 \\\n", "0 0.999969 NaN NaN NaN NaN NaN NaN \n", "1 NaN 0.999969 NaN NaN NaN NaN NaN \n", "2 NaN NaN 0.207031 0.792938 NaN NaN NaN \n", "3 NaN NaN NaN NaN 0.457031 0.542938 NaN \n", "4 NaN NaN NaN NaN NaN NaN 0.832001 \n", "5 NaN NaN NaN NaN NaN NaN NaN \n", "\n", " 29103 38551 38552 \n", "0 NaN NaN NaN \n", "1 NaN NaN NaN \n", "2 NaN NaN NaN \n", "3 NaN NaN NaN \n", "4 0.167969 NaN NaN \n", "5 NaN 0.976532 0.023438 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import soundfile as sf\n", "%matplotlib inline\n", "\n", "def extract_right_channel(stereo_wav, _):\n", " return stereo_wav[:, 1] \n", "\n", "input_inpulse, fs = sf.read(\"ImpulseTrain_fs48kHz_p1sec_len10sec.wav\")\n", "T_data = []\n", "T_data.append(extract_right_channel(*sf.read(\"IR\\T_0.wav\")))\n", "T_data.append(extract_right_channel(*sf.read(\"IR\\T_1.wav\")))\n", "T_data.append(extract_right_channel(*sf.read(\"IR\\T_2.wav\")))\n", "T_data.append(extract_right_channel(*sf.read(\"IR\\T_3.wav\")))\n", "T_data.append(extract_right_channel(*sf.read(\"IR\\T_4.wav\")))\n", "T_data.append(extract_right_channel(*sf.read(\"IR\\T_5.wav\")))\n", "\n", "plt.figure(figsize = (16, 4))\n", "plt.plot(range(input_inpulse.size), input_inpulse, label = \"Input\")\n", "for num, data in enumerate(T_data):\n", " label_name = \"T_\" + str(num)\n", " plt.plot(range(data.size), data, label = label_name)\n", "plt.xlim(-fs, fs * 10)\n", "plt.legend()\n", "plt.show()\n", "\n", "def extract_cycle(IR_list, cycle):\n", " new_data_set = []\n", " st = fs * cycle\n", " en = st + fs\n", " \n", " for data in IR_list:\n", " new_data_set.append(data[st : en])\n", " \n", " return new_data_set\n", "\n", "def extract_position_intensity(IR, threshold):\n", " s = pd.Series(IR)\n", " return s[IR > threshold] \n", "\n", "print(extract_position_intensity(T_data[1], 0))\n", "\n", "#第3周期のIRを抽出\n", "T_extract = extract_cycle(T_data, 3)\n", "\n", "for num, data in enumerate(T_extract):\n", " label_name = \"T_\" + str(num)\n", " plt.plot(range(data.size), data)\n", "\n", "plt.show()\n", "\n", "#0を除外して、整理\n", "T_ser = []\n", "for data in T_extract:\n", " T_ser.append(extract_position_intensity(data, 0))\n", "\n", "df = pd.DataFrame(T_ser)\n", "df" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Measured vs calced delay value\n", "左右チャンネルで同様の結果、この時点でステレオ性なし \n", "2周期目以降のIRの遅延サンプル時間は安定 \n", "遅延時間については、計算値とややぶれあり\n", "\n", "\n", "|Entry|mesured|calced|\n", "|:--:|:--:|:--:|\n", "|T_1|2.0|0.0|\n", "|T_2|9448.5|9456.0|\n", "|T_3|19275.5|19296.0|\n", "|T_4|29102.5|29088.0|\n", "|T_5|38551.5|38544.0|" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analysis of \"F.Back\" parameter dependence\n", "---\n", "\n", "### Mesurement conditions\n", "|Entry|TIME|F.BACK|RATE|AMT|D.WET|\n", "|:--:|:--:|:--:|:--:|:--:|:--:|\n", "|F_0|197|0|0.14|0|127|\n", "|F_1|197|20|0.14|0|127|\n", "|F_2|197|40|0.14|0|127|\n", "|F_3|197|60|0.14|0|127|\n", "|F_4|197|80|0.14|0|127|\n", "|F_5|197|100|0.14|0|127|" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis of IRs" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
869386949448944918142181431889718898275912759228346283473704037795377964724447245
0NaNNaN0.1289060.871063NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1NaNNaN0.1289060.871063NaNNaNNaN0.119507NaNNaNNaNNaNNaNNaNNaNNaNNaN
2NaNNaN0.1289060.871063NaNNaN0.0707400.238983NaNNaNNaN0.065582NaNNaNNaNNaNNaN
3NaNNaN0.1289060.871063NaNNaN0.1061100.358490NaNNaN0.0654910.147522NaNNaN0.060699NaNNaN
4NaNNaN0.1289060.871063NaNNaN0.1414490.477966NaNNaN0.1164250.262268NaN0.0851750.1439210.0584410.078979
50.1174010.1322330.1289060.8710630.0939640.0906980.1768190.5974730.0736390.0622250.1819150.4097900.0568240.1663820.2810970.1426390.192810
\n", "
" ], "text/plain": [ " 8693 8694 9448 9449 18142 18143 18897 \\\n", "0 NaN NaN 0.128906 0.871063 NaN NaN NaN \n", "1 NaN NaN 0.128906 0.871063 NaN NaN NaN \n", "2 NaN NaN 0.128906 0.871063 NaN NaN 0.070740 \n", "3 NaN NaN 0.128906 0.871063 NaN NaN 0.106110 \n", "4 NaN NaN 0.128906 0.871063 NaN NaN 0.141449 \n", "5 0.117401 0.132233 0.128906 0.871063 0.093964 0.090698 0.176819 \n", "\n", " 18898 27591 27592 28346 28347 37040 37795 \\\n", "0 NaN NaN NaN NaN NaN NaN NaN \n", "1 0.119507 NaN NaN NaN NaN NaN NaN \n", "2 0.238983 NaN NaN NaN 0.065582 NaN NaN \n", "3 0.358490 NaN NaN 0.065491 0.147522 NaN NaN \n", "4 0.477966 NaN NaN 0.116425 0.262268 NaN 0.085175 \n", "5 0.597473 0.073639 0.062225 0.181915 0.409790 0.056824 0.166382 \n", "\n", " 37796 47244 47245 \n", "0 NaN NaN NaN \n", "1 NaN NaN NaN \n", "2 NaN NaN NaN \n", "3 0.060699 NaN NaN \n", "4 0.143921 0.058441 0.078979 \n", "5 0.281097 0.142639 0.192810 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import soundfile as sf\n", "%matplotlib inline\n", "\n", "def extract_left_channel(stereo_wav, _):\n", " return stereo_wav[:, 0] \n", "\n", "input_inpulse, fs = sf.read(\"ImpulseTrain_fs48kHz_p1sec_len10sec.wav\")\n", "T_data = []\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\F_0.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\F_1.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\F_2.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\F_3.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\F_4.wav\")))\n", "T_data.append(extract_left_channel(*sf.read(\"IR\\F_5.wav\")))\n", "\n", "#plt.figure(figsize = (16, 4))\n", "plt.plot(range(input_inpulse.size), input_inpulse, label = \"Input\")\n", "for num, data in enumerate(T_data):\n", " label_name = \"T_\" + str(num)\n", " plt.plot(range(data.size), data, label = label_name)\n", "plt.xlim(fs * 2, fs * 10)\n", "plt.legend()\n", "plt.show()\n", "\n", "def extract_cycle(IR_list, cycle):\n", " new_data_set = []\n", " st = fs * cycle\n", " en = st + fs\n", " \n", " for data in IR_list:\n", " new_data_set.append(data[st : en])\n", " \n", " return new_data_set\n", "\n", "def extract_position_intensity(IR, threshold):\n", " s = pd.Series(IR)\n", " return s[IR > threshold] \n", "\n", "#第3周期のIRを抽出\n", "T_extract = extract_cycle(T_data, 3)\n", "\n", "for num, data in enumerate(T_extract):\n", " label_name = \"T_\" + str(num)\n", " plt.plot(range(data.size), data)\n", "\n", "plt.show()\n", "\n", "#0を除外して、整理\n", "T_ser = []\n", "for data in T_extract:\n", " T_ser.append(extract_position_intensity(data, 0.05))\n", "\n", "df = pd.DataFrame(T_ser)\n", "df" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFHxJREFUeJzt3WGMXXd95vHvs4OzGigwbTMt9TjemK1rajaA6cVUFG3p\nsl072WXtpFnVoVq0tJKVqum2L7Cw9wWqhFZp5V2pWxGwLBQh3tRvMG5aQodVUaEqZNeTOsRxYNDU\nbInHu8KQGhQ6amznty/mOlwPduZcz525d06+H2mUe/7nn3senYyfHJ9z7j2pKiRJ7fJPhh1AkjR4\nlrsktZDlLkktZLlLUgtZ7pLUQpa7JLWQ5S5JLWS5S1ILWe6S1EKvGNaGb7311rr99tuHtXlJWpce\nf/zxb1fV5HLzhlbut99+OzMzM8PavCStS0n+rsk8T8tIUgs1Kvcku5PMJplLcvA661+b5E+TfCXJ\nmSTvH3xUSVJTy5Z7kjHgIeBOYDtwX5LtS6b9FvB0Vb0ZeBfw35PcMuCskqSGmhy57wTmqupsVT0P\nHAP2LJlTwKuTBPgR4Fng8kCTSpIaa1LuU8AzPcvnumO9PgL8LHAeOA38TlW9sPSNkuxPMpNk5sKF\nCzcZWZK0nEFdUN0FPAFsBN4CfCTJa5ZOqqqjVdWpqs7k5LJ38kiSblKTcp8HbutZ3tQd6/V+4Hgt\nmgO+AbxhMBElSf1qUu4nga1JtnQvku4DHlky55vAuwGS/CSwDTg7yKCSpOaW/RBTVV1O8gAwDYwB\nD1fVmST3d9cfAT4MfCLJaSDAB6vq26uYW5L0Ehp9QrWqHgUeXTJ2pOf1eeDfDDaaJK1vJ07Nc3h6\nlvMXF9g4Mc6BXdvYu2Pp/SirY2hfPyBJbXbi1DyHjp9m4dIVAOYvLnDo+GmANSl4v35AklbB4enZ\nF4v9qoVLVzg8Pbsm27fcJWkVnL+40Nf4oFnukrQKNk6M9zU+aJa7JK2CA7u2Mb5h7Jqx8Q1jHNi1\nbU227wVVSVoFVy+aereMJLXM3h1Ta1bmS3laRpJayHKXpBay3CWphSx3SWohy12SWshyl6QWstwl\nqYUsd0lqoUblnmR3ktkkc0kOXmf9gSRPdH+eSnIlyY8NPq4kqYllyz3JGPAQcCewHbgvyfbeOVV1\nuKreUlVvAQ4BX6iqZ1cjsCRpeU2O3HcCc1V1tqqeB44Be15i/n3AHw8inCTp5jQp9yngmZ7lc92x\nH5LklcBu4FMrjyZJulmDvqD6HuCvb3RKJsn+JDNJZi5cuDDgTUuSrmpS7vPAbT3Lm7pj17OPlzgl\nU1VHq6pTVZ3JycnmKSVJfWlS7ieBrUm2JLmFxQJ/ZOmkJK8FfhH4k8FGlCT1a9nvc6+qy0keAKaB\nMeDhqjqT5P7u+iPdqXcDn6uq769aWklSI6mqoWy40+nUzMzMULYtSetVkserqrPcPD+hKkktZLlL\nUgtZ7pLUQpa7JLWQ5S5JLWS5S1ILWe6S1EKWuyS1kOUuSS1kuUtSC1nuktRClrsktdCy3wopSYN0\n4tQ8h6dnOX9xgY0T4xzYtY29O677cDetgOUuac2cODXPoeOnWbh0BYD5iwscOn4awIIfME/LSFoz\nh6dnXyz2qxYuXeHw9OyQErWX5S5pzZy/uNDXuG5eo3JPsjvJbJK5JAdvMOddSZ5IcibJFwYbU1Ib\nbJwY72tcN2/Zck8yBjwE3AlsB+5Lsn3JnAngo8C/r6o3Av9hFbJKWucO7NrG+Iaxa8bGN4xxYNe2\nISVqryYXVHcCc1V1FiDJMWAP8HTPnPcCx6vqmwBV9a1BB5W0/l29aOrdMquvSblPAc/0LJ8D3r5k\nzs8AG5L8JfBq4H9U1ScHklBSq+zdMWWZr4FB3Qr5CuDngHcD48CXkzxWVV/vnZRkP7AfYPPmzQPa\ntCRpqSYXVOeB23qWN3XHep0Dpqvq+1X1beCLwJuXvlFVHa2qTlV1JicnbzazJGkZTcr9JLA1yZYk\ntwD7gEeWzPkT4J1JXpHklSyetvnqYKNKkppa9rRMVV1O8gAwDYwBD1fVmST3d9cfqaqvJvlz4Eng\nBeDjVfXUagaXJN1YqmooG+50OjUzMzOUbUvSepXk8arqLDfPT6hKUgtZ7pLUQpa7JLWQ5S5JLWS5\nS1ILWe6S1EKWuyS1kOUuSS1kuUtSC1nuktRClrsktZDlLkktZLlLUgtZ7pLUQpa7JLWQ5S5JLdSo\n3JPsTjKbZC7Jweusf1eS7yZ5ovvzocFHlSQ1texj9pKMAQ8Bv8zig7BPJnmkqp5eMvWvqurfrUJG\nSVKfmhy57wTmqupsVT0PHAP2rG4sSdJKNCn3KeCZnuVz3bGl3pHkySSfTfLGgaSTJN2UZU/LNPQ3\nwOaqei7JXcAJYOvSSUn2A/sBNm/ePKBNS5KWanLkPg/c1rO8qTv2oqr6XlU91339KLAhya1L36iq\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "x = np.array([0, 20, 40, 60, 80, 100]) / 127.0\n", "y = np.array([0, 0.12, 0.31, 0.46, 0.62, 0.77])\n", "\n", "plt.scatter(x, y)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }