Skip to content

Instantly share code, notes, and snippets.

@yuzeh
Created May 15, 2019 06:16
Show Gist options
  • Save yuzeh/e5e7f9099844c2c9612f8546fc854917 to your computer and use it in GitHub Desktop.
Save yuzeh/e5e7f9099844c2c9612f8546fc854917 to your computer and use it in GitHub Desktop.
Waves and Spectra
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
{
"cells": [
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import scipy.signal as spsig\n",
"import matplotlib.pyplot as plt\n",
"import sounddevice as sd\n",
"\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"freq = 440\n",
"sample_rate = 44100\n",
"sample_time = 1"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"bins = np.linspace(0, sample_time, sample_time * sample_rate)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAD8CAYAAABzTgP2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4VGX2wPHvCb3XgEAIHaRDEgF1bSiIZQEbgrDqri5L\nUewKiz93l9VVV107KLu6uhKaWEBFkaJiF1JooSSEkhAggRBaSJ3398dMdBKTkGTKvTNzPs8zDzN3\n7p05uWRy5r7vveeIMQallFKqRJjVASillLIXTQxKKaVK0cSglFKqFE0MSimlStHEoJRSqhRNDEop\npUrRxKCUUqoUTQxKKaVK0cSglFKqlNpWB1ATrVu3Np07d7Y6DKWUCihxcXFHjDHhZ1svIBND586d\n2bhxo9VhKKVUQBGRfVVZT4eSlFJKlaKJQSmlVCmaGJRSSpWiiUEppVQpXkkMIvKmiGSKyNYKnhcR\neUlEUkRks4hEuT13m4gku263eSMepZRSNeetI4a3gFGVPH8V0MN1mwzMAxCRlsBfgKHAEOAvItLC\nSzEppZSqAa8kBmPMeiC7klXGAP8zTj8AzUWkHXAlsNoYk22MOQaspvIEo5RSysf8NcfQAUhze5zu\nWlbRcqUC0g+pR4nff8zqMJTyiL8Sg5SzzFSy/NcvIDJZRDaKyMasrCyvBqeUN2w9cJxb3/yJf32+\ny+pQlPKIvxJDOtDR7XEEkFHJ8l8xxsw3xsQYY2LCw896RbdSfnU8t5CpsXEUFDkocjisDkcFIWMM\nKZmn/PJe/koMK4BbXWcnDQOOG2MOAquAkSLSwjXpPNK1TKmA4XAY7l+ayKHjebRtWg9Huce8Snlm\nwQ/7GPXCehLTcnz+Xl6plSQii4BLgdYiko7zTKM6AMaY14CVwNVACpAL/N71XLaI/B3Y4HqpOcaY\nyiaxlbKdeV/tZu2OTOaM6cuqbYcoKNIjBuVdCfuPMefjJC7uGc6ADs18/n5eSQzGmAlned4A0yt4\n7k3gTW/EoZS/fZN8hOc+38mYQe353bBOrE46rEcMyquOnspnWmw8bZvW5/lxgwgLK29q1rsCsrqq\nUnaQkXOGGYsT6N6mMU9e3x8RQURwGM0MyjuKHYZ7lyRy9HQB70+9gGYN6/jlfbUkhlI1UFDkYFps\nPPmFxcybFE3Dus7vWGGCHjEor3lxzS6+Tj7C42P60c8PQ0gl9IhBqRp44pMkEtNymDsxim7hjX9e\nHiaC0SMG5QXrdhzmpXUp3BzTkXHndTz7Bl6kRwxKVdPyxAO8/f0+7vxNF67u367Uc84jBk0MyjNp\n2bncuziRvu2b8rcxff3+/poYlKqGXYdPMvO9LZzXuQWPXHXur54XEfQyBuWJvMJipiyIA2DexGjq\n16nl9xh0KEmpKjqZV8iUd+JoVK82r9wSRZ1av/5epUcMylN/XbGNbRkneOO2GCJbNbQkBk0MSlWB\nMYZH3tvMvuxcYu8cStum9ctdzznH4OfgVNBYuiGNxRvSuOuy7lzeu61lcehQklJV8MY3e1i55RCP\njOrFsK6tKlwvTE9XVTW09cBx/m/5Vi7s3or7RvS0NBZNDEqdxU97snny0x2M6nsOf7yoa6Xrig4l\nqRo4nlvItNh4Wjaqy0vjB1PLDxexVUaHkpSqRObJPO5aGE9ky4b886YBiFT+gdWhJFVdDofhgXcT\nOXj8DEv+dD6tGtezOiQ9YlCqIkXFDu5emMCJvELmTYqiaf2zX3Wqk8+quuZ9tZs12zN59Jo+REXa\no4GlHjEoVYFnPt/Jj3uyef7mgZx7TtMqbeOcY/BxYCpofJvirLU1emB7bj2/k9Xh/EyPGJQqx2db\nD/H6V6lMGhbJdYMjqryd1kpSVXXw+BlmLEqgW/gvtbbsQhODUmXsOXKah97dxMCIZvzftX2qtW2Y\noHMM6qwKihxMj40nz1Vrq1E9ew3e2CsapSyWW1DElHfiqF1LmDspmnq1q3fVqZ6uqqriHyu3E7/f\nWWure5vGZ9/AzzQxKOVijGH2B1vZlXmSt34/hA7NG1T7NcLCdPJZVW554gHe+m5vubW27MIrQ0ki\nMkpEdopIiojMLOf550Uk0XXbJSI5bs8Vuz23whvxKFUTsT/u54OEA9x7eU8u6VmzvuKik8+qEmer\ntWUXHh8xiEgt4FVgBJAObBCRFcaYpJJ1jDH3ua1/NzDY7SXOGGMGeRqHUp5ITMthzkdJXNornLuH\nd6/x6zjnGDQzqF87lV/ElAWV19qyC29ENgRIMcakGmMKgMXAmErWnwAs8sL7KuUV2acLmB4bT3iT\neh63TtTTVVV5jDE8smwz+47m8sotgyustWUX3kgMHYA0t8fprmW/IiKdgC7AOrfF9UVko4j8ICJj\nvRCPUlVW7DDcsziBrJP5zJsURYtGdT16PZ18VuV589u9fLLlIA9fWXmtLbvwxuRzeV+vKvpkjAeW\nGWOK3ZZFGmMyRKQrsE5Ethhjdv/qTUQmA5MBIiMjPY1ZKQBeWpvM18lHePL6/gyIaO7x64k4Sxwo\nVWLD3myeXLmdkX3aMvniymtt2YU3jhjSAfe+cxFARgXrjqfMMJIxJsP1byrwJaXnH9zXm2+MiTHG\nxISH12xiUCl3X+zM5KV1ydwYHcF4L7VO1FpJyl3WyXymx8YT0aIBz44baKuL2CrjjcSwAeghIl1E\npC7OP/6/OrtIRHoBLYDv3Za1EJF6rvutgQuBpLLbKuVtadm53LckkXPPacrfx/Tz2gdWayWpEkXF\nDu5eFO+qtRVdpVpbduHxUJIxpkhE7gJWAbWAN40x20RkDrDRGFOSJCYAi03pUzZ6A6+LiANnknrK\n/WwmpXwhr7CYabHxFDsM8yZG0aCu91on6uSzKvHs57v4ITWbf40bSO92Vau1ZRdeucDNGLMSWFlm\n2WNlHv+1nO2+A/p7IwalqmrOx0lsOXCc+b+LpnPrRl59ba2VpABWbTvEa1/tZuLQSK6PqnqtLbuw\n74m0SvnAsrh0Fv64n6mXdmNk33O8/vpaK0ntPXKaB5duYkBEMx77bfVqbdmFJgYVMpIyTjD7gy2c\n37UVD/iodaKerhrazhQUM2VBHLVqCXMnRlW71pZdaK0kFRKOnylkamwczRvW4aUJg6nto6tOdfI5\ndBljmP3hFnYedtbaimjR0OqQakyPGFTQczgMDyzdxIFjZ3j1lijCm/iudaLWSgpdC3/az/vxntXa\nsgtNDCrovb4+lTXbD/Pnq3sT07mlT98rzHXaq9ZLCi2b0nL42wrPa23ZhSYGFdS+232EZ1bt4JoB\n7fj9hZ19/n4lZZb0qCF0HDtdwDQv1dqyC00MKmgdOp7HjEUJdGndiKdvGOCXq07l58SgmSEUFDsM\n9yxJ9FqtLbvQyWcVlAqLHUxfGE9uQTGLJw+jsZ9aJ5YkH00MoeHldcms35XFP67zTq0tu9DEoILS\nkyt3ELfvGC9PGEz3Nk389r6/zDH47S2VRb7cmcmLa5O5ISqCCUO8U2vLLnQoSQWdjzdn8Oa3e/j9\nhZ357cD2fn3vMB1KCgnpx3K5d0kivdo24fGx3qu1ZReaGFRQSck8ySPLNhPdqQWzrurt9/cP+3ko\nye9vrfwkv8hVa6vY8NqkaK/W2rILHUpSQeN0fhFTFsRTv04tXr0lirq1/f+9Ryefg9+cj5LYnO6b\nWlt2oYlBBQVjDDPf30Jq1ikW3DGUc5pZ0zrx5zkGhyVvr3zsvbh0Yn/cz5RLfFNryy50KEkFhbe/\n28tHmzJ48MpeXNC9tWVx6BxD8Np+8ASzP9zCsK4teXCkb2pt2YUmBhXw4vZl8/gn27mid1umXNzN\n0lhKLm7SxBBcTuQVMnVBHE3r1+HlCVE+q7VlFzqUpALakVP5TIuNp33zBjw3bqDlV52KTj4HHWMM\nDy7dRPqxMyyePMyntbbswitpT0RGichOEUkRkZnlPH+7iGSJSKLrdqfbc7eJSLLrdps34lGhoajY\nwd0LE8jJLWTepCiaNbC+dWJJXtJaScHj9fWpfJ50mFl+qLVlFx4fMYhILeBVYASQDmwQkRXltOhc\nYoy5q8y2LYG/ADGAAeJc2x7zNC4V/P61ehffpx7lmRsH0Ld9M6vDAfR01WDz/e6j/PMzZ62tP/ih\n1pZdeOOIYQiQYoxJNcYUAIuBMVXc9kpgtTEm25UMVgOjvBCTCnKrkw4z98vdTBjSkZti7HPVqU4+\nB4/DJ/K4e1G8X2tt2YU3EkMHIM3tcbprWVk3iMhmEVkmIiWf5Kpui4hMFpGNIrIxKyvLC2GrQLXv\n6GnuX5pI/w7N+Mtv+1odTilaKyk4FBY7mB7rrLX12qRov9XasgtvJIby0mjZT8VHQGdjzABgDfB2\nNbZ1LjRmvjEmxhgTEx4e2E0wVM3lFRYzZUE8YeJsnVi/jr2uOtVaScHhqU93sHHfMZ66YQA92vqv\n1pZdeCMxpAPux/IRQIb7CsaYo8aYfNfDfwPRVd1WqRLGGB79cCs7Dp3ghfGD6NjSfq0TdSgp8H2y\n+SBvfLOH2y/ozGg/19qyC28khg1ADxHpIiJ1gfHACvcVRKSd28PRwHbX/VXASBFpISItgJGuZUr9\nypINaSyLS+fu4T24rFcbq8Mpl04+B7aUzFM8vGwTUZHN+fPV/q+1ZRceD5wZY4pE5C6cf9BrAW8a\nY7aJyBxgozFmBTBDREYDRUA2cLtr22wR+TvO5AIwxxiT7WlMKvhsST/OYyu2cVGP1txzeQ+rw6mQ\n1koKXKfzi5i6IM5Za2uiNbW27MIrMyrGmJXAyjLLHnO7PwuYVcG2bwJveiMOFZxycguYGhtH60Z1\neXH8YGrZuHWi9nwOTMYYZr2/hd1Zp3jnjqG0a9bA6pAsFbopUQUEh8Nw35JEDp/IY+6kaFravHWi\nDiUFpv99v48VmzJ4YGQvLrSw1pZdaGJQtvbqFyl8sTOLx37bl0Ed7d86USefA0/cvmM8/kkSV/Ru\nw9RLrK21ZReaGJRtrd+Vxb/W7OK6wR2YNDTS6nCq5OfrGLTsdkA4eiqf6bHxtGvWgOduGmR5rS27\nCK2rNlTAOJBzhnsWJ9CzTROeuC5wWifqEUPgKHYYZixO4FhuAe9Pu4BmDa2vtWUXmhiU7ZS0Tiws\nNsybFEXDuoHza6oXuAWOf63eybcpR/mnjWpt2UXgfOJUyHj84+1sSsvhtUlRdA1vbHU41RLmGpzV\nIwZ7W5N0mFe/2M348zoyzka1tuxC5xiUrXyQkM47P+xj8sVdGdWv3dk3sBmtlWR/+4/mct/SRPp1\naMpfR9ur1pZdaGJQtrHj0Almvb+FIV1a8vCVvawOp0b0dFV7c9baiiNMhHkTo21Xa8sudChJ2cLJ\nvEKmLoinSf06vHLL4IBtnaiNeuztseVbSTp4gv/efp4ta23ZhSYGZTljDA+9u5n92bks+uMw2jSp\nb3VINaZHDPa1ZMN+lm5MZ8bw7lx2rj1rbdlFYH4tU0HlP1/v4bNth5h11bkM6RLYrRO1VpI9bT1w\nnP9b7qq1dUVPq8OxPU0MylI/ph7lqc92cFW/c7jjN12sDsdjYTr5bDs5uQVMWRAYtbbsQoeSlGUy\nT+Rx16IEOrVsyD9vDI7WiXodg704HIb7l27i8Ik8lv7pfNvX2rILPWJQligsdnDXwgRO5RUxb1I0\nTeoHx1WneuWzvcz9MoV1OzJ57No+DI5sYXU4AUOPGJQlnlm1k5/2ZvPCzYPodU7wtE4UnXy2ja+T\ns3hu9S7GDmrPpGGdrA4noHjliEFERonIThFJEZGZ5Tx/v4gkichmEVkrIp3cnisWkUTXbUXZbVXw\n+XTLQeavT+XW8zsxdnAHq8PxKj1isIeMnDPcsziRHm0a84/r+wfFMKU/eXzEICK1gFeBETh7OG8Q\nkRXGmCS31RKAGGNMrohMBf4J3Ox67owxZpCncajAsDvrFA8t28ygjs2ZfU3wtU7URj3WKyhyMC02\nnoIiB/MmRQdUrS278MYRwxAgxRiTaowpABYDY9xXMMZ8YYzJdT38AYjwwvuqAJNb4GydWKeWMHdi\nFPVqB99Vp2Fadttyj3+SRGJaDs/cOIBuAVZryy68kRg6AGluj9NdyypyB/Cp2+P6IrJRRH4QkbFe\niEfZUEnrxOTMU7w0YTDtmwdn60S9jsFaHyYc4H/f7+OPF3Xhqv6BV2vLLrxxjFXe4F25nwoRmQTE\nAJe4LY40xmSISFdgnYhsMcbsLmfbycBkgMjIwGjaon6x4Id9LE/M4MGRPbmoR7jV4fiMXvlsnZ2H\nTv5ca+uRUedaHU5A88YRQzrgXrc2Asgou5KIXAHMBkYbY/JLlhtjMlz/pgJfAoPLexNjzHxjTIwx\nJiY8PHj/sASjhP3HmPNxEsPPbcO0S7tbHY5PlZTd1jkG/3LW2oqjcf3avDIhcGtt2YU39t4GoIeI\ndBGRusB4oNTZRSIyGHgdZ1LIdFveQkTque63Bi4E3CetVYA7eiqfabHxtG1an+fHBX/rRD1i8D9j\nDA8v28y+7FxemTCYNk0Dt9aWXXg8lGSMKRKRu4BVQC3gTWPMNhGZA2w0xqwAngEaA++6Thvbb4wZ\nDfQGXhcRB84k9VSZs5lUACt2GO5dksjR0wW8PzU0Wifq6ar+98Y3e/h06yFmX92boV1bWR1OUPDK\neVzGmJXAyjLLHnO7f0UF230H9PdGDMp+Xlyzi6+Tj/D0Df3p1yE0Widqox7/+mlPNk9+uoNRfc/h\nzosCv9aWXehAnPKJdTsO89K6FMbFRHDzeaFzsoDWSvKfzJN5TF8YT2TLhjxzU3DU2rILvfJDeV1a\ndi73LdlEn3ZNmTOmn9Xh+JUOJflHkVutrQV3DA2aWlt2oYlBeVVeYTFTY+MwxvDapNBrnaiTz/7x\nzKqd/LQn+Gpt2YUmBuVVf12xja0HTvCfW2OIbBV6rRP1Ajff+2zrQV5fn8rvhgVfrS270DkG5TVL\nN6SxeEMa0y/rxhV92lodjiW0VpJvpWad4sF3NzOwY3MevTb4am3ZhSYG5RXO1olbubB7K+4f0cvq\ncCyjQ0m+46y1FR/UtbbsQoeSlMeO5xYyLTaeFg21daJOPvuGMYbZH2xlV+ZJ3v79EDoEaa0tu9Aj\nBuURh8PwwLuJHDx+hrmTomjduJ7VIVlKG/X4xoIf9/NBwgHuu6InF/fUkji+polBeWTeV7tZsz2T\nR6/pQ5S2Tvz5iEHnGLwnMS2HOR9t47Je4dx1WXDX2rILTQyqxr5NOcJzn+9k9MD23Hq+tk4E934M\nmhi8Ift0AdMWxDlrbd0c/LW27ELnGFSNHDx+hhmLEugW3pgntXXiz3Ty2XuKHYZ7Fidw5HQB7025\ngOYN61odUsjQIwZVbQVFDqbHxpNXWMy8SdE0qqffL0qI6xOlk8+ee3FtMl8nH2HO6L70jwiNWlt2\noZ9oVW3/WLmd+P05vHpLFN3baOtEd1oryTu+2JHJS2uTuSk6gpvP63j2DZRX6RGDqpYVmzJ467u9\n3PGbLlwzQFsnlqWnq3ouLTuXe5ck0rtdU/4+tp8OU1pAE4OqsuTDJ5n53mZiOrVg5lXaOrE8Osfg\nmbzCYqbFxuMwhtcmRYVcrS270KEkVSWn8ouYsiCOhnVr8erEKOpo68Ryaa0kz/ztoyS2HDjOv2+N\noVOrRlaHE7K88ukWkVEislNEUkRkZjnP1xORJa7nfxSRzm7PzXIt3ykiV3ojHuVdxhgeWbaZPUdO\n8/KEKNpq68QKaa2kmnt3YxqLftrPtEu7MSJEa23ZhceJQURqAa8CVwF9gAki0qfMancAx4wx3YHn\ngadd2/bB2SO6LzAKmOt6PWUjb367l0+2HOThUedyfjdtnVgZHUqqmaSMEzz64VYu6NaK+0f0tDqc\nkOeNI4YhQIoxJtUYUwAsBsaUWWcM8Lbr/jLgcnHOKI0BFhtj8o0xe4AU1+spm9iwN5snV25nZJ+2\n/OnirlaHY3s6+Vx9x88UMjU2juYN6/DShMHU1mFKy3njf6ADkOb2ON21rNx1jDFFwHGgVRW3VRbJ\nOpnP9Nh4Ilo04NlxA/XskCrQWknV43AYHli6iQPHzjB3otbasgtvJIby/lqU/VhUtE5VtnW+gMhk\nEdkoIhuzsrKqGaKqrqJiB3cviudEXiHzJkXTVFsnVlmY6BxDVb22fjdrth9m9jW9ie7U0upwlIs3\nEkM64H4FSgSQUdE6IlIbaAZkV3FbAIwx840xMcaYmPBwra7oa89+vosfUrP5x3X96d2uqdXhBJQw\nER1KqoLvUo7w7KqdXDugHbdf0NnqcJQbbySGDUAPEekiInVxTiavKLPOCuA21/0bgXXG+ZVqBTDe\nddZSF6AH8JMXYlIeWLXtEK99tZuJQyO5PirC6nACjjMxWB2FvR06nsfdixLoGt6Yp28YoMOUNuPx\ndQzGmCIRuQtYBdQC3jTGbBOROcBGY8wK4A3gHRFJwXmkMN617TYRWQokAUXAdGNMsacxqZrbe+Q0\nDy7dxICIZjz227Inl6mqENHJ58oUFDmYFhtHXmExr2mtLVvyyv+IMWYlsLLMssfc7ucBN1Ww7RPA\nE96IQ3nmTEExUxbEUUtbJ3okTERrJVXiyU+dtbZeuWWw1tqyKU3VCnC1TvxwCzsPn+S/t59HRIuG\nVocUsMJE+zFU5KNNGfz327384cIuXDugvdXhqAroCcMKgEU/pfF+/AHuubwHl/ZqY3U4AU3nGMqX\nknmSR1y1tmZdrbW27EwTg2Jzeg5/XbGNS3qGM2N4D6vDCXg6x/Brp/KL+NM7zlpbr9yitbbsToeS\nQtyx0wVMXRBPeJN6vKCtE70iLEz0OgY3xhhmvuestbXgzqGc00xrbdmdpu0QVuww3LskkayT+cyd\nGEWLRto60Rt0KKm0t77by8ebD/LQledyQbfWVoejqkATQwh7eV0yX+3K4i+j+zCwY3OrwwkaYTqU\n9LO4fdk88cl2RvRpy5RLtNZWoNDEEKK+3JnJi2uTuT6qA7cMibQ6nKAiesQAwJFT+UyLjadDiwY8\ne5PW2gokOscQgtKPOVsn9mrbhCfG9tcPrJdprSRXra2FCeTkFvLBtCE0a6C1tgKJJoYQk1/kbJ1Y\nXGx4bVI0DerqRWzeprWS4LnVu/g+9SjP3jSQPu211lag0cQQYuZ8lMTm9OPM/100nVtr60RfCPXJ\n58+3HWLel7uZMCSSG6O11lYg0jmGEPJeXDqxP+5nyiXdGNn3HKvDCVqhfB3D3iOneeDdTfTv0Iy/\naK2tgKWJIURsP3iC2R9uYVjXljw4Ulsn+lKo1kr6udZWmLPWVv06OkwZqHQoKQScyCtk6oI4mtav\nw8sTorR1oo+F4umqxhge/XDrz7W2OrbUWluBTP9CBDljDA8u3US6q3VieBNtnehroTjHsHhDGu/F\npzNjuNbaCgaaGILc/PWpfJ50mFlX9yams7ZO9IdQm2PYnJ7DX5Zv4+Ke4cy4XGttBQNNDEHs+91H\nefqzHVzTvx1/uLCz1eGEDOccQ2gkhpzc0rW2ammtraDgUWIQkZYislpEkl3/tihnnUEi8r2IbBOR\nzSJys9tzb4nIHhFJdN0GeRKP+sXhE87WiZ1bN+LpG7V1oj+FieBwWB2F7znK1NpqqbW2goanRwwz\ngbXGmB7AWtfjsnKBW40xfYFRwAsi4l6Y5yFjzCDXLdHDeBRQWOxgemw8uQVFvD4pmsbaOtGvQmUo\n6ZUvUvhyZxaP/VZrbQUbTxPDGOBt1/23gbFlVzDG7DLGJLvuZwCZQLiH76sq8dSnO9i47xhP3TCA\nHm2bWB1OyAmFyef1u7J4fs0urh/cgYlDtdZWsPE0MbQ1xhwEcP1b6ekIIjIEqAvsdlv8hGuI6XkR\n0VNmPPTJ5oO88c0ebr+gM6MHautEK4SFBXetpAM5Z7hncYKz1tZ1WmsrGJ11jEFE1gDlXSY7uzpv\nJCLtgHeA24wxJSOws4BDOJPFfOARYE4F208GJgNERuo3lPKkZJ7i4WWbiIpszp+v7m11OCErmGsl\nldTaKio2zNNaW0HrrInBGHNFRc+JyGERaWeMOej6w59ZwXpNgU+AR40xP7i99kHX3XwR+S/wYCVx\nzMeZPIiJiQnOT50HTucXMXVBHPXr1OLViVHUra0nnFklmMtu//3jJDal5fDapGi6aK2toOXpX48V\nwG2u+7cBy8uuICJ1gQ+A/xlj3i3zXDvXv4JzfmKrh/GEJGMMs97fwu6sU7w0YTDtmjWwOqSQFqxX\nPr8fn86CH/bzp4u7Mqqf1toKZp4mhqeAESKSDIxwPUZEYkTkP651xgEXA7eXc1pqrIhsAbYArYHH\nPYwnJP3v+32s2JTBAyN7cWF3bZ1otWCslbTj0An+/MEWhnRpyUNX9rI6HOVjHp3HaIw5ClxezvKN\nwJ2u+wuABRVsP9yT91cQt+8Yj3+SxBW92zD1km5Wh6MIviMGZ62teJrWr8MrtwzWWlshQE9wD2BH\nT+UzPTaeds0a8NxNgwjTq05tQYJo8tkYw0PvbmJ/di6LJw+jTZP6Voek/EBTf4AqdhhmLE7gWG4B\n8yZF0ayhtk60C+cRg9VReMe/v05l1bbDzLrqXM7TWlshQxNDgHp+9S6+TTnK38f2o2/7ZlaHo9wE\nS62kH1KP8vRnO7m6/znc8ZsuVoej/EgTQwBau/0wr3yRwvjzOjIupqPV4agyguHK58wTedy1MIFO\nrRry9A1aayvU6BxDgNl/NJf7liTSr0NT/jq6r9XhqHIEeq2kwmIH0xfGczq/iIV/HEqT+jpMGWo0\nMQSQvEJn60SAeROjtXWiTQX6EcM/P9vBhr3HeHH8IHpqra2QpIkhgDy2fCtJB0/w5u0x2jrRxsIk\ncGslrdxykH9/vYfbzu/EmEEdrA5HWUTnGALEkg37WboxnRnDuzP83LZWh6MqEai1knZnneLhZZsZ\n1LE5s6/pY3U4ykKaGALA1gPH+b/l27ioR2vuuaKn1eGos5AAbNSTW+CstVW3dhhztdZWyNOhJJvL\nyS1gyoI4Wjeqy4vjB2vrxAAQaFc+l9TaSs48xTt/GEr75lprK9Tp1wIbczgM9y/dxOETebyqrRMD\nRqDVSnpk9LWoAAARfUlEQVTnh30sT8zggRE9+U0PrbWlNDHY2twvU1i3I5PHru3D4MhftdNWNhUW\nFjhHDPH7j/H3j5MYfm4bpl3a3epwlE1oYrCpr5OzeG71LsYOas+kYZ2sDkdVQ6DUSiqptdW2aX2e\nH6e1ttQvdI7BhjJyznDP4kR6tGnMP67X1omBJhCGkoodhnsWJ3L0dAHvT71Aa22pUvSIwWYKihxM\ni42noMjBvEnRNKyruTvQBMLk8wtrdvFNyhEeH9OPfh201pYqTf/q2MwTnySRmJbDvIlRdAtvbHU4\nqgbsfuXzuh2HeXldCjfHdGTceVprS/2aR0cMItJSRFaLSLLr33JnSEWk2K172wq35V1E5EfX9ktc\nbUBD1vLEA7z9/T7+eFEXrurfzupwVA3ZuVZSWnYu9y5OpG/7pvxtjNbaUuXzdChpJrDWGNMDWOt6\nXJ4zxphBrttot+VPA8+7tj8G3OFhPAFr1+GTzHxvC0M6t+ThUedaHY7ygF3nGLTWlqoqTxPDGOBt\n1/23gbFV3VCcM6rDgWU12T6YnMwrZMo7cTSuX5tXbhlMHW2dGNDsOsfw1xXb2JZxgudvHkRkK621\npSrm6V+gtsaYgwCuf9tUsF59EdkoIj+ISMkf/1ZAjjGmyPU4HaiwapeITHa9xsasrCwPw7YPYwwP\nL9vMvuxcXpkwmDZNtXVioLNjraSlG9JYvCGNuy7rzuW9tdaWqtxZJ59FZA1wTjlPza7G+0QaYzJE\npCuwTkS2ACfKWa/CT5MxZj4wHyAmJsZenzoPvPHNHj7deojZV/dmaNdWVoejvEBsNvnsrLW1lQu7\nt+K+EVprS53dWRODMeaKip4TkcMi0s4Yc1BE2gGZFbxGhuvfVBH5EhgMvAc0F5HarqOGCCCjBj9D\nwPppTzZPfrqDUX3P4c6LtHVisLBT2e3juYVMi42nZaO6vKS1tlQVeTqUtAK4zXX/NmB52RVEpIWI\n1HPdbw1cCCQZ5yfnC+DGyrYPVpkn85i+MJ7Ilg155iZtnRhM7HK6qrPWViIHj5/h1YlRtGpcz+qQ\nVIDwNDE8BYwQkWRghOsxIhIjIv9xrdMb2Cgim3AmgqeMMUmu5x4B7heRFJxzDm94GE9AKCp2cNfC\nBE7lFfHapGhtnRhk7DL5PO+r3azdkcmj1/QhSmttqWrw6AI3Y8xR4PJylm8E7nTd/w7oX8H2qcAQ\nT2IIRM+s2slPe7J54eZB9DpHWycGG2c/BmsTwzfJR3ju852MHtieW8/XWluqevS8SD/7bOtBXl+f\nyu+GdWLsYG2dGIysvo7h4PEzzFicQLfwxjyptbZUDWhi8KPUrFM8+O5mBnZszqPX9rY6HOUjVg4l\nldTayi8sZt6kaBrV06o3qvr0t8ZPnK0T46lTS5g7MYp6tfWq02AVFmbd5PM/Vm4nYX8OcydG0b2N\n1tpSNaOJwQ+MMcz+YCu7Mk/y9u+H0EFbJwY1q2olLU88wFvf7eXO33Thaq21pTygQ0l+EPvjfj5I\nOMB9V/Tk4p7hVoejfMyKOYaSWlvndW7BI1dprS3lGU0MPpaYlsOcj5K4rFc4d12mrRNDgb/nGE7l\nFzFlQRyN6tXmlVuitNaW8pgOJflQ9ukCpi2Io03Tejx/s7ZODBX+rJVkjOGRZZvZdzSX2DuH0lZr\nbSkv0K8WPuJsnZjAkdMFzJsYTfOGId1qIqT4s1bSm9/u5ZMtB3n4yl4M01pbyks0MfjIi2uT+Tr5\nCHNG96V/hLZODCUlB4a+rpe0YW82T67czsg+bZl8cVefvpcKLZoYfOCLHZm8tDaZm6IjuFlbJ4ac\nMNcFZb48asg6mc/02HgiWjTg2XED9SI25VWaGLwsLTuXe5ck0rtdU/4+tp9+YENQyRGDr+YZiood\n3L0onhN5hcybFE1TrbWlvEwnn70or7CYabHxOIzhtUlR2joxRMnPRwy+SQzPfL6TH1Kz+de4gfRu\n19Qn76FCmyYGL/rbR0lsOXCcf98aQ6dWjawOR1mkZCjJF3nhs62HeP2rVCYOjeT6qAjvv4FS6FCS\n17y7MY1FP+1n2qXdGNFHWyeGMl8NJe05cpqH3t3EgIhmPPbbPl59baXcaWLwgqSMEzz64VYu6NaK\n+7V1YsjzxeTzmYJipi6Io5bW2lJ+4FFiEJGWIrJaRJJd//6qG4iIXCYiiW63PBEZ63ruLRHZ4/bc\nIE/iscLxM4VMjY2jecM6vDRhMLX1qtOQJ14+YnDW2trCzsMneeHmQUS0aOiV11WqIp7+FZsJrDXG\n9ADWuh6XYoz5whgzyBgzCBgO5AKfu63yUMnzxphED+PxK4fD8MDSTRw4doa5E6Nora0TFW5zDA7v\nvN7Cn/bzfsIB7rm8B5f2auOdF1WqEp4mhjHA2677bwNjz7L+jcCnxphcD9/XFl5fn8qa7YeZfU1v\noju1tDocZRPenGPYlJbD31YkcWmvcGYM7+Hx6ylVFZ4mhrbGmIMArn/P9nVmPLCozLInRGSziDwv\nIgHzlfu73Ud4ZtUOrh3Qjtsv6Gx1OMpGSmpieZoYjp0uYFpsPOFN6vH8OK21pfznrKerisga4Jxy\nnppdnTcSkXY4ez+vcls8CzgE1AXmA48AcyrYfjIwGSAyMrI6b+11h47nMWNRAl3DG/P0DQP0IjZV\ninhh8rnYYbhnSSJZJ/NZNvV8WjTSWlvKf86aGIwxV1T0nIgcFpF2xpiDrj/8mZW81DjgA2NModtr\nH3TdzReR/wIPVhLHfJzJg5iYGMs66jpbJ8ZxpqCYxZO1daL6NW/USnp5XTLrd2Xxj+v6MyCiuZci\nU6pqPB1KWgHc5rp/G7C8knUnUGYYyZVMEOdXrLHAVg/j8bknP91O/P4cnr5xgLZOVOXy9HTVL3dm\n8uLaZG6IimDCEK21pfzP08TwFDBCRJKBEa7HiEiMiPynZCUR6Qx0BL4qs32siGwBtgCtgcc9jMen\nPtqUwX+/3csfLuzCtQPaWx2OsilPJp/TjzlrbfVq24THtdaWsohH4yDGmKPA5eUs3wjc6fZ4L9Ch\nnPWGe/L+/pSSeZJH3ttMTKcWzLpaWyeqitW0VlJJra3iYsNrk6JpUFcvYlPW0AHyKjiVX8Sf3omj\nYd1a2jpRnVVNayXN+TiJzenHmf+7aDq31lpbyjqaGM7CGMPM9zaz58hpFtw5lHOaaetEVbmaDCUt\ni0tn4Y/7mXJJN0b2Le8kQKX8R7/6nsVb3+3l480HeejKc7mgW2urw1EBoLqTz0kZJ5j9wRaGdW3J\ngyO11payniaGSsTty+aJT7Yzok9bplyirRNV1VSnVlJJra1mDerw8oQorbWlbEGHkipw5FQ+02Lj\n6dCiAc/epK0TVdX9MsdQeWIwxvDgu85aW4snDyO8ScBc+K+CnH49KUdRsYO7FyaQk1vIvInRNGug\nrRNV1VV1KOn19amsTjrMrKt7E9NZa20p+9AjhnL8a/Uuvk89yrM3DaRPe22dqKqnKpPP3+8+yj8/\n28E1A9rxhws7+ycwpapIjxjK+HzbIeZ+uZtbhkZyY7S2TlTV9/N1DBWU3T58Io+7F8XTpXUjrbWl\nbEmPGNzsPXKaB0paJ16rrRNVzVR2xFBY7GB6bDy5BcUs+uMwGmutLWVD+lvpcqagmCkL4qgVJrx6\nSxT16+hVp6pmKrvA7alPd7Bx3zFemjCYHm2b+DkypapGEwPOs0Me/XArOw+f5L+3n0fHlto6UdVc\nmGuAtuwRwyebD/LGN3u4/YLOjB6otbaUfekcA7B4QxrvxaczY7i2TlSeK69WUkrmKR5etomoyOb8\n+ereVoWmVJWEfGLYnJ7DX5Zv4+Ke4cy4XFsnKs+VPV31dH4RUxfEUb9OLV6dGEXd2iH/sVM2F9JD\nSTm5BUxd4Gyd+MLNg6ilrROVF7g36jHGMPP9LezOOsU7dwylXbMG1ganVBWE7FcXh8Nwr6t14tyJ\nUbTU1onKS9yPGN7+bi8fbcrggZG9uLC71tpSgSFkjxhe+SKFL3dm8fjYfgzsqK0TlfeUXJawcV82\n//p8F1f0bsPUS7pZG5RS1eDREYOI3CQi20TEISIxlaw3SkR2ikiKiMx0W95FRH4UkWQRWSIifvna\nvn5XFs+v2cX1gzswcWikP95ShZCSI4bnPt9F++YNeO6mQYTpMKUKIJ4OJW0FrgfWV7SCiNQCXgWu\nAvoAE0Sk5Oqxp4HnjTE9gGPAHR7Gc1YHcs5wz+IEerVtwhPX9derTpXXlSSG2mHCvElRNGuotbZU\nYPEoMRhjthtjdp5ltSFAijEm1RhTACwGxojzL/JwYJlrvbeBsZ7Eczb5Rc7WiUXFhnnaOlH5SKvG\ndQkTeHxsP/q2b2Z1OEpVmz/mGDoAaW6P04GhQCsgxxhT5Lb8V32hvenxj7ezKS2H138XTRdtnah8\npFt4Y7b+7Uoa1g3ZKTwV4M76mysia4Dyeg3ONsYsr8J7lDdWYypZXlEck4HJAJGR1Z8XMMbQqVVD\npl3ajSu1daLyMU0KKpCd9bfXGHOFh++RDnR0exwBZABHgOYiUtt11FCyvKI45gPzAWJiYqrZZt15\nNeqdF2kXNqWUOht/XMewAejhOgOpLjAeWGGc7a2+AG50rXcbUJUjEKWUUj7k6emq14lIOnA+8ImI\nrHItby8iKwFcRwN3AauA7cBSY8w210s8AtwvIik45xze8CQepZRSnpOz9aW1o5iYGLNx40arw1BK\nqYAiInHGmAqvOSsRsiUxlFJKlU8Tg1JKqVI0MSillCpFE4NSSqlSNDEopZQqJSDPShKRLGBfDTdv\njfPiOqX7oizdH7/QfVFasOyPTsaY8LOtFJCJwRMisrEqp2uFAt0Xpen++IXui9JCbX/oUJJSSqlS\nNDEopZQqJRQTw3yrA7AR3Rel6f74he6L0kJqf4TcHINSSqnKheIRg1JKqUoEfGIQkVEislNEUkRk\nZjnP1xORJa7nfxSRzm7PzXIt3ykiV1b1Ne3KR/viTRHJFJGt/vkpvMPb+0JEOorIFyKyXUS2icg9\n/vtpPOeD/VFfRH4SkU2u/fE3//00nvHF58T1XC0RSRCRj33/U/iYMSZgb0AtYDfQFagLbAL6lFln\nGvCa6/54YInrfh/X+vWALq7XqVWV17TjzRf7wvXcxUAUsNXqn9Hi34t2QJRrnSbArkD4vfDh/hCg\nsWudOsCPwDCrf1Yr9oXbdvcDC4GPrf45Pb0F+hHDECDFGJNqjCkAFgNjyqwzBnjbdX8ZcLmIiGv5\nYmNMvjFmD5Dier2qvKYd+WJfYIxZD2T74wfwIq/vC2PMQWNMPIAx5iTO3iI+7VHuRb7YH8YYc8q1\nfh3XLRAmLH3yORGRCOAa4D9++Bl8LtATQwcgze1xOr/+sP68jnE2DTqOsylQRdtW5TXtyBf7IlD5\ndF+4hhYG4/yWHAh8sj9cQyeJQCaw2hgTCPvDV78bLwAPAw7vh+x/gZ4YpJxlZb+1VLROdZfbnS/2\nRaDy2b4QkcbAe8C9xpgTNY7Qv3yyP4wxxcaYQTj7tQ8RkX4eRekfXt8XInItkGmMifM0OLsI9MSQ\nDnR0exwBZFS0jojUBprhHBqpaNuqvKYd+WJfBCqf7AsRqYMzKcQaY973SeS+4dPfDWNMDvAlMMqb\nQfuIL/bFhcBoEdmLc2hquIgs8EXwfmP1JIcnN6A2kIpzIqhkIqlvmXWmU3oiaanrfl9KTySl4pyY\nOutr2vHmi33htl1nAmvy2Re/FwL8D3jB6p/PJvsjHGjuWqcB8DVwrdU/qxX7osy2lxIEk8+WB+CF\n/+ircZ4hshuY7Vo2Bxjtul8feBfnRNFPQFe3bWe7ttsJXFXZawbCzUf7YhFwECjE+Y3pDqt/Tiv2\nBfAbnMMJm4FE1+1qq39OC/fHACDBtT+2Ao9Z/TNatS/KvHZQJAa98lkppVQpgT7HoJRSyss0MSil\nlCpFE4NSSqlSNDEopZQqRRODUkqpUjQxKKWUKkUTg1JKqVI0MSillCrl/wG4msaQv7JRjwAAAABJ\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1220c0450>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x12250df50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"saw = spsig.sawtooth(2 * np.pi * freq * bins)\n",
"wave = saw\n",
"\n",
"plt.plot(bins[:200], wave[:200])\n",
"plt.figure()\n",
"f, t, Zxx = spsig.stft(wave, sample_rate, nperseg=1000)\n",
"plt.pcolormesh(t, f[1:], np.abs(Zxx[1:,:]), vmin=0, vmax=0.5)\n",
"plt.yscale('log')\n",
"plt.colorbar()\n",
"sd.play(wave, sample_rate)"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\ncbOcXdB2NQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x122251990>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nwvj/xdatBi5rL3UAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x12088bb50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"square = spsig.square(2 * np.pi * freq * bins)\n",
"wave = square\n",
"\n",
"plt.plot(bins[:200], wave[:200])\n",
"plt.figure()\n",
"f, t, Zxx = spsig.stft(wave, sample_rate, nperseg=1000)\n",
"plt.pcolormesh(t, f[1:], np.abs(Zxx[1:,:]), vmin=0, vmax=0.5)\n",
"plt.yscale('log')\n",
"plt.colorbar()\n",
"sd.play(wave, sample_rate)"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11f852350>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x12390b510>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sine = np.sin(2 * np.pi * freq * bins)\n",
"wave = sine\n",
"\n",
"plt.plot(bins[:200], wave[:200])\n",
"plt.figure()\n",
"f, t, Zxx = spsig.stft(wave, sample_rate, nperseg=1000)\n",
"plt.pcolormesh(t, f[1:], np.abs(Zxx[1:,:]), vmin=0, vmax=0.5)\n",
"plt.yscale('log')\n",
"plt.colorbar()\n",
"sd.play(wave, sample_rate)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.13"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment