{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ThinkDSP\n",
"\n",
"This notebook contains solutions to exercises in Chapter 4: Noise\n",
"\n",
"Copyright 2015 Allen Downey\n",
"\n",
"License: [Creative Commons Attribution 4.0 International](http://creativecommons.org/licenses/by/4.0/)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# Get thinkdsp.py\n",
"\n",
"import os\n",
"\n",
"if not os.path.exists('thinkdsp.py'):\n",
" !wget https://github.com/AllenDowney/ThinkDSP/raw/master/code/thinkdsp.py"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from thinkdsp import decorate"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise 1\n",
"\n",
"``A Soft Murmur'' is a web site that plays a mixture of natural\n",
"noise sources, including rain, waves, wind, etc. At\n",
"http://asoftmurmur.com/about/ you can find their list\n",
"of recordings, most of which are at http://freesound.org.\n",
"\n",
"Download a few of these files and compute the spectrum of each\n",
"signal. Does the power spectrum look like white noise, pink noise,\n",
"or Brownian noise? How does the spectrum vary over time?"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"if not os.path.exists('132736__ciccarelli__ocean-waves.wav'):\n",
" !wget https://github.com/AllenDowney/ThinkDSP/raw/master/code/132736__ciccarelli__ocean-waves.wav"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" Your browser does not support the audio element.\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from thinkdsp import read_wave\n",
"\n",
"wave = read_wave('132736__ciccarelli__ocean-waves.wav')\n",
"wave.make_audio()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I chose a recording of ocean waves. I selected a short segment:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" Your browser does not support the audio element.\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"segment = wave.segment(start=1.5, duration=1.0)\n",
"segment.make_audio()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And here's its spectrum:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spectrum = segment.make_spectrum()\n",
"spectrum.plot_power()\n",
"decorate(xlabel='Frequency (Hz)',\n",
" ylabel='Power')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Amplitude drops off with frequency, so this might be red or pink noise. We can check by looking at the power spectrum on a log-log scale."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spectrum.plot_power()\n",
"\n",
"loglog = dict(xscale='log', yscale='log')\n",
"decorate(xlabel='Frequency (Hz)',\n",
" ylabel='Power', \n",
" **loglog)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This structure, with increasing and then decreasing amplitude, seems to be common in natural noise sources.\n",
"\n",
"Above $f = 10^3$, it might be dropping off linearly, but we can't really tell.\n",
"\n",
"To see how the spectrum changes over time, I'll select another segment:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" Your browser does not support the audio element.\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"segment2 = wave.segment(start=2.5, duration=1.0)\n",
"segment2.make_audio()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And plot the two spectrums:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spectrum2 = segment2.make_spectrum()\n",
"\n",
"spectrum.plot_power(alpha=0.5)\n",
"spectrum2.plot_power(alpha=0.5)\n",
"decorate(xlabel='Frequency (Hz)',\n",
" ylabel='Power')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here they are again, plotting power on a log-log scale."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XmYXHd54Pvve2rtrt43qdXd2ndLlmXLssEsZo3ZDBMISzJhAE8IzCXb88xMkrmTuXeeZ/LwzL1zh0wGkmDAGAjBGELABBMvYCOvWN7kTZbU2lst9b531/67f5zat65uVXVVV7+fx/24zqlTp359VH3e+m3vT4wxKKWUUtXGqnQBlFJKqVw0QCmllKpKGqCUUkpVJQ1QSimlqpIGKKWUUlVJA5RSSqmqpAFKKaVUVdIApZRSqippgFJKKVWVnJUuQDl0dHSYzZs3V7oYSimlcnjuuedGjTGdix1XkwFq8+bNPPvss5UuhlJKqRxE5Hwxx2kTn1JKqaqkAUoppVRV0gCllFKqKmmAUkopVZU0QCmllKpKGqCUUkpVJQ1QSimlqpIGKKXUsvlDEfqHZytdDFWjNEApVY2MsX+qjD8UYcYfSmz//JXL/PTYINMp+5QqFQ1QSlWj578Nv/rvV30afyjCP/z6ApPzwRIUCu564ixff+xsYntq3g5MkUj1BVO1+mmAUqoaTQ+WpAbVPzzL0LSfZ86Ol6BQEAhF07Y1LKly0gCl1BowOhvElLDJcDnnMsYwtaBNgap4GqCUWuWm/SG+duQM//LK5bzHDE37efHiJADBcJTnzo9fVcA6fnkGSFby7n7y3KKveebsOHc9fpaJucLNjf5QpKTBVK1eGqCUWuXuPXqR2UA4ETRSjacEg1ND9mi7x/tHOHJylNMjyx99NzzjL/j8iSszfP/ohbR9FycWAJjxh/O+bi4Q5m8fPc3TZ0rTJKlWNw1QSq0Gc6Npm+FIlAdfvcKMP1Twhv/c+YnE40uTC8z4Q/gX5mmdP0f/8CzBcDTvawuJRA2RqMEZnkFMJOv5+1++zOBkehCL14pEcpfz/Ngcc0H7d+lPCZ7hSJRQZHnlVKubBiilqpkxMHICnvkaDB9P7D43Ns+rg9M8cmIk7fD7X76MMYZXLk0RCGcHjsFJP+sG/oVdow9y+uJlvvJIf8HmtIvj83zpoZMsBNOb3V4amOJbj51gx+lvs2X88RzljuKI+Okfzq7Vxb02OM2jJ4aJRA3PvnKc/p/9FaGAP/l7x3zj8bN8+Zf9ec+jaldNLlio1GpljGFgYoG++I65UZiLBaG5EWAPAE7LrobMZMw/OnFlhhl/iMFJPwOxJrVUlsDC9BgOSNR8njk7zpOnxwD4/K3b8LocieN/8uIlAP7uV6fxeRxp55pfsINJ64LdlDcbCBMMR2nzudk8+RTrZ17lZ/Jp/ug3rkl7XSAcIRo1PPDqFQCixrBx8ij1oQkefPIo1G1KjA4cmQkwH8wOtGpt0BqUUlXk+QuT/PC5AS5P2cEl8NRX+cGzFxPbcQ5LqAtN4Lr4ZNY54k1rC6Hspr/R2SChWLOexMLAmdG5xPOp/VI/e+kyoZT5TXMBO1C0z/WzefwJDJJ2nq8dOcO3YoMl2ubtuVKOaLIPLH6mnx67zHefSfZPHbs4hYm1+0lGbe7vn04uvBqORJmYC3JhbJ4XLkxwaTI7AKvaojUopapIfELtubF56twOe+BDM1ye8tNNsvNGBPYO/zOuyAJXGvcRsTxZ57p8ZYiOwGVGfTtp9F9m3t3O02fGuC72fNvCOdwzc2wfOoFVdwODTQcQhEjUMDEf5ORQ7ua5HWO/BOBi8w2xPXZQ2Xflx0zW9cHzv8YdmbfLieFLD50ESKuBjc4EALCi4VhwSu+YGp9ZIBJMD0D/O0cz35+8a2fOMqraoAFKqRU2Nhvg5UtTvHVnJ5JrxEBMYlReSq0iGAwRDS1gjBMxsZpQnj6kfUM/xhVZYNLbxzXDP2XS28tY/bZEjWfj5DP2gR4nXbPH7QAl8DeP9BOOLj7MO15yZzTAtZd/QH1ogobgMEy1J45xmBBiIlgmwlzAnXWOwwN3EXA2MO9qT9u/c/QhBn46jLfudsRECTibMAJG8t+yjp4bZ3O7j87G7GCtVicNUEqtsB+/OMjCzCQHN9TR3NiY9zinJYlAEQhHQYQH7/sO7VOvcbT3U1wXa6EXco9wc0XsGki8ma3FP0CLfyDruNlAGOOyz/XrM2MFg9PNF+5MPD506duJx/WhiVyHc+DyDxKPT7e9lVHfdozYNSkrajdBesKzzLk60n6X1oULLIiL6ybvTbw+Kg6e6buD5oUBPJFZhht2MzK9QLvPg+WwePzUKE/2j/FH79yRt/xqddE+KKUq4IbB7+J+7usFj4kHis75k4l99fODAHTM9af02+Qbgp3eR1RIXWiSmy/cSXDyMhumjwHgCU/TvHBx0ddmeurMWM7928Z/xaaJpxPbhwfuSjxuWzgHwM7Rh9l35ccAWYMjrNigjj0j97N1/Aju8Cz9P/gLjh19lHAkipgI0Ty1yWl/iEgRtUJVXTRAKbXC4k1jEpzLei7X/dUTtgcuGGDSa4/v6555OdHPY5lwopbkDU2ybewRbhj4DvG+ofwBLNv+Kz9i4+SvcUT8XHf5XvaM/JyNKUHlaq2ffTWtFpZLQ3AYiNUaC/CGpwAIXX6Fb/78CW66+A2a/QN86aGTRFOCUTAc5RuPneWnxwavsvRqpWmAUmqFxbudDPDq4BTPnhvn+OXpxL58SWJ/8OxA/IjEzRlg5+gvuHHgbpyRBfaM3E/n3Clc0eQAg2JqUJkcJpwIbBtmXlry6xfjDl/9GlJ7h38GwKw/QlPATvPU7LeHxY+lZNCIT/I9O5r9hUBVN+2DUmqFxWtQk/NBHnx1KLF/T3cTHqeFJzyd95W5BkTUh+wmtUOXvpPzVfG+qKXomX4hbbt54SJ+V/OSz5PPrtEHl/W69rnskXx185fYOG8Hpnhw//unz/PH79yRNQhlYi7I3U+ew+ty8Plbty2rDGrlaIBSaoWEIlG+/Mv+xATZUMYaSl966CQi4M0z6AHyD4goZM/I/Ut+zbrZ42nbe0Z+vuRzFOILji5+UA7xIe75pNYW/+rhUwB89MbEtOdEUlt/SCf/rgYaoJRaIc+es0e6WcYevZar096Y/H1GRiQrcKjcxETYN/QThn27+PWZ+koXRy2T9kEpVSKLJV6NB6T48OpISnOdOzybqFl1z7xcphLWvu6Zl3FG/GyeeBJfcJQtE08wNT2FJzS1+ItV1dEApVQJXJpc4CuP9HN+LH9HfCx9XqIGNRLLptA+f5rrB/+BbeO/whWeo3PuZJ4z5J/Uq5IOXr4nraa54+x3OXj5+zT5B/GGJmmKDaRQ1a/qm/hEZA/wR0AH8AtjzN9WuEhKEYkajpwcwWEJ7Q1uphZC+ALDDF0xbGrflThuxh+i0esCSHTYWxn9SDtGfwHYc5vON9+U9z1zLWuhsqXm/0vd3jv8z4l9T2/8LCeHZti5Lv9EaVV5FalBichdIjIsIq9k7L9NRE6ISL+I/BmAMea4MeZzwEeBWypRXqUynRubo7//BK7H/jtPPX+MYDjK/qEfE3n6axhjmJgL8qWHTvL1x85ycTyWly5WAUrtY6oLZizMVyD10fqZV0v+e6xV7vAsD7xwhqPnxnPWeh89McyPns/OuqFWVqWa+O4GbkvdISIO4CvAe4C9wCdEZG/suduBnwFLH46kVBkI0BxLG9SycBF/KBl0/urhU/xjys3th88NMDYbwJLszA5NgStp523OkYooLnVuk7o61w/+A4cufYfHT43yo+fTm/wiUcMLFyY5PzZfodKpuIoEKGPMESBzTefDQL8x5owxJgjcA3wwdvx9xpj3AL+T75wi8lkReVZEnh0ZGcl3mFLLNji5wMsDdme7lZaB2zA9n9GsNHEaRzSQ2D42MJnog0qdiNs+nz6vZ/vYo9S709ddUuXTEPuC8NrgNOHYhN6vPXYm67gzI7OcuJJ/8UVVHtU0SKIHSE38NQD0iMitIvLXIvJVCtSgjDF3GmMOGWMOdXZ2lrusag36/tGLPHzcnljrsNKb4qbnk7WbhsAQu0ceYN/QT3BE7LWZgmGT6INKncuUWYOCgq18ydd5q777eFXomD8NwAOvXuHbT53HGMNCSg7A+Hypn7w4yP0vX65IGdeyagpQORljHjXG/KEx5veNMV+pdHmUgngQSTbZBRbmEqvc7hv6CWAnYL0m1jG/8dS3aB54BIzBHSmcckeKGK1X59JaVimsn3kNb2gSgKmFUGJyb1x8Yq+qjGoKUJcgudI10Bvbp1TVsTKqOc5ogOY6V9Zx9SG7JdsVnKJ+5EXWzb7GztGHC55bZPEB5ZqXu1QM112+NzE3LdNCRkZ1zUCxsqopQB0FdojIFhFxAx8H7qtwmZTKKTNAOEyIugJ9R8bYP7ma9HIdW6gfasrbU2wxE3IFz+2dDUs+T61ymODiBwG/OD5c5pKoVJUaZv494Clgl4gMiMgdxpgw8AXgAeA4cK8xRsfVqqpkjEmsx7Ru5jWa/INZzW6JbWMwsddECqwIGxeKRNl203uY8vbmfF5MNF/C87zcjuw/9Qbtx0oqcEG/8fjZxOP5YO6aliqPinxCjTGfyLP/fnQouapC0Yy8ean3M4cJsXHqWVzdTWnHuBzCQshu5jOxIBUtIkAJ4KlvYcHVnHPYuWXCmCU38mmjYCE3DH6XV9bdjhEnc+4OxERwRvyEnD6mF0KJ4wYmFrg4Pk9fm+b3WwnV1MSnVNXKWjwv7Gfj5DOJTcuSnKPvbtrSxs0TP8EAQ9N+olJ4cENfax3X9rbY/VCxKHiwryXtmJCjPhEgZ93FjVjV8LS4fUP3sf/Kj+iZep4t449zw+B3saKhrON++NwAE3PFNQmqq6MBSqkipCaCNcZgTV1Ie94h9sCJOXdH8jjsfRYwOR8iFDGLLv7X21qPwxIsMYnh6N6UpsOeljr6296aWNp8rL7wmkbx4fDGwLHu30p7ziy1nTAPn6e2RhT2TT1LVywfYjxvYiYd3bcyNEApVYRQNBmgAuEocxmju+I1qIikDEaI3f+Xk+JVkJz9Io1eJxGHN1Ejiljuos+5WO1tuWpzsIXWOauBBiilihBOWVzwodeGeLJ/LO15h9izl3L1MQXdy1mJ1mCRPaS5uc7FrvWNbGn3ARBwZgeHNl8yaCVzXaRulZbbWbu3EVkkUN13bJAvPXSyZLVRla52P1lKlVAokqxBjc4GEiP44uwalBC1kgEqfstKPbSnpa7o98y1vLslwnv3dyea/aY93bze+Rvpr0t5HM6xKGKpOYpJfbFKFVog8m8e7ef08Cxg51/85etDTC2E+NJDJ3nlkq4/VQoaoJQqQjhqcEQDeMIzsTlK6Tdlh8Sb+LJrUO5g8mbV1ejJ+x6t9elzlYpZ3t1gMVm3afHjrvIbfmrZnBlpnqSGA1Tv1HMAiAmzdfwIzkgypVUglP7vc+ziFN+K9U099NoQkajRmtVV0gCl1pzR2QCnhpaW+DMcibJv6CccHPweUQOG7BqUJZLWxBcfCp56A7es/Dfz8I73gjPWPGcMIctbsEzdzd5E9SzfnKl06TfLxZrmLjfuSzxOnehbw/EoNxOlc66frtnX2TT5dMFDIyk11r/+xSke1om9V0UDlFpzjl2cXPTGYYzhfz3wKi+9fAyAUMRQF8vZlvqluDE22bVQH1Tq/bxAfGKhbRd07U1sn2+5uWAZN8f6oQCOd7038fjSpg9lvXfm9/hJbx9Oy+KmLW14XblvA+ECAXJvxpyvWmaZCFvHjwDFZQJJpU19V0cDlFpzQhGTWFohn2Akyo6xXzL3zHcgOJf2zdiYaKL5zRXL0GBZds0ibaRcohMquatQc5hlWaSGlKiVnZ4oYe/tsP0dfP7Wbbxr77q0pxYa+rKPN3ZzYJzf1QTXfhRLhIN9rfnfJ49cqZNq1eGBbyYee8LlWXLj7Ogc0/7sOVdrnQYoteZEoobwIv0DoYihdeE8AD9/4SwzCykTM6NhrNiquPEakSWCWM60IJB69njNqlANCixYv99+2Lol7ZmtHT52r09ZnnzdNdB3GK/LUdQoOgMEU0b8TXg3Qfs2uOWP4ObPL/r6fIE1vnctZVdvm89eL+pq/fiFS3znqfMlP+9qpwFKrTnh2JymrBFu0QicepiLlwa4NJHsDB8YGWfmme8ktiUSTNSg4ktj2AHKASJZQWi6YSujvu1px+dqPtvc4YPmHnjbn0N9W9pz65q8tNYXN+cp9e2nm3cCMN51U9oxU3WxPit3PXgWb67LFcwP9DZz/Sa79rWWFlncOfowbfNn7SwTJRwEEczMVqI0QKm1Jz6nKd5sd+eR0/zTCwMwOwQDRzn90Ne5/6XkSi/OaIAm/2Biu3v0SVoW7LU14wMhLAHL4eCtOzvZvT79hh9wtxLFkRY4nu39ZNoxB3qbaW/IHuF3ouPdsOs9yR2dO7OOybxHplZ2dq9vYnN7Pes612e9bily3Ybrt9+SMwntWrBz9CEOD3yTDTPHFj32/pcvEwgvbZmOh14b4rnzE8stXs3QdMZqzYkHplAkitflYC4QYS4wj1m/wIWxOTwRP46UFDfOlKXbAVqmT+KNfduNBwcRAXHQ1egh6nXS4HGyMZZQNCpOjAib2vMnGM3XTDdRvxk27IQN10FwDty+nMdlOt71XoJWPW19fWxscfNy03YYHs99cBHD8roaPZwfm0/uOPRp8HXBhV8XVZ5atXHyGVyRBTrm+pmo38SZtrdkHXPiygwnrszwR+/YUXAUZ9zQtD8xuOL6jS01PYx/MWvz649akxaCEe555gJjsUSfkYwmvsnRKwxO2Uu0p853yQxQqS+LP7QESDTxCft7mhMDCaJYGHFkLXKYqphVdPMFp/hpW+td3LCpFRCmvL0suNuIuBph329irOV/F+1ocGeXvXG9PTIkpoj7bs3qnnkZV3SBrtnX8y58CMUnT0pt6vurh09xaXKhwNG1TQOUWjPG5gJcnvInVkUNRdJvGS5/sobhiqYEqEh6gEpd6iLeN2PFalC5RMVJRJxZFZVpT0qzmy+9z2kp4rU4SySryW3py3Kk8zgtdnQ1LnrcpnYf3c1e9nY30duazJax1gLX4YG78j6Xq5lvcj7Ilx46mdgenQ3wcsbQ9HuPXuRLD53k4vh85strngYotWZkBqRwNL1TWkLJG4Ar4k88dkYD7NvQlMgCkasGJULeprKoONPmR51qfzsAr627nRe7P5p+ohJILYbTKuJPvEDNbmuHXWtbLM64HBab230017kSx/rcDg70thR83Vry3acv8OiJYZ47n/wiNDSd/uXnO0+d58SV3EPZf/hc9tpgtU4DlFozMuc+hTMClomGCTnsb/+uaHqAavS6EklYU0e0pdZe7I3sW3lU7PlNlgj03shYbERfqlJ0M5zd/km4+fNpJdjRZQ8t720tfoG9eC1MBFpyjBwstqgt9e60pULWutlAmBcuTHLk5OiyUyDNrLG5Uhqg1JoRzAxQmavkRiOErFiASumDchi7zyoeRNJqUMakPZeLXXsyOY9JDDdvyw5aSxV2N0Ndeo0l3imfmuG8kIN9Lex+57/h2PqPlHIE9ZrSELiCJzxNfXCM+uAY7vAsrkh689zJITvJ7P0vX17Sub/+2FlevzJdsrJWOx3Fp2rTyAnwT0PfjYldmTWmSDSa9k02HInYNagQOFNqUO7YzUUQpj3dNAWSN5VWn5tpf5h6tx2EckWhSKxvKj4Q4pNv2MS3Y5Myww4vz/X8a27evv8qf+Gkqxn15d3xVoLr97BwvJ9IYHDxFxTBaQnhqOFCy01snzma9UWh1uwbui/n/qc3fjbxOBSJpmXIX4qfv3wFpyVsL6JvcLXTGpSqTa/8CPofTtuVeUMIRUxaLSEcDidrUCmDJOLffkXASPqfTOfuN3Lj5taCmRTCJtlkBtDe4LETvcbL4ai3J/lm6GmpY1tX6RcDjORIoXS29RZ7xd0tb07sG2rYU9L3DVvutJqcy7HGRlBkeOzUSOKxM6XPsxgnrsyWujhVSWtQqqY80T/KzOwst+V4LnOQRCRqiKREqNcuTRL1NhARV9oNw65B1SGAmPQgZ7a+A1d9C5x+JG9WgQlHO07HlJ23z2tP4v3wDb0Ew1HuPJI/bc5Hb8yRU68I8dv+DZuyc+y9tP7DiX62VEON12TtMymjEkWE9U0ermR06udzpu0teDZ2sXH6kbzHuBwWocjSJrDWkvnYqsyt8+fYNfogr3W9n2nvhgqXqrpoDUrVlGfOjnPl/Mm0fa8OTtE/PJujBhVNmwslJooRi47WZt66xcfe7ibCVkp2B4HM4XaWwwEdqdkdMmoFBz7OQtTJWP022PevoOcQYN+cfZ7Sfj/MbNlrqc+uKc272wk5Cg+YyNdC2FNooMWNd6RtBhw+Fpq3p2zHaoKpiXMLlsI20HR9EUetPgMpqbTiTcap2UoaAleS2yaa9eXn5NDMmlhrSgOUqjmpfUREIzz46hA/PTZIaHbU/mOPiUQN0ZQ/cosIRizWtTZQb0VornMRsVKXT5e0hKsQ6++JN885cmX4NvbESxE83XvTJreWSuZcp3iAKd/9K0doaegqeMxg04ElvcNMbI7YlLdnSa9bLY5fzh7o0Dv9fOLxvqH72Dv8zwDcfPHr7Bv6Sdbxrw7W/mAJDVCq5njCM8maUcQelmtFw9S/8A12jib7pR47NcrF8ZRZ+sZgsBCxwNjNL6k1qFDvYc60JvtoIHYb9jTB5jfBvg9nF8YY3rCtHUguzVFuVztkPe3lbVsXf0FTd+Hz5ei7W4tuvnAnjSnrSZ0aivcjpXxJiobYNPFU1msbgsNZ/VTDM0vrt1qN9FOjao7TBAnFJ+FGgnhcFpaxA1Xbwrm0qsWJlJV14zUoEQtiKWtSA1S0a3/WGk2JCbpb3mxnIM8RHW7e2s6fvCs7yWu5laQClSvoprrlD+G638l+75Tr0OR1pS1DspZdk2eEX5wrukDn3KnEdvd0MhntoUvfpm3+bGJNqmMXa38xRP3UqJrjiAYTQ8pNJEgwHMUyyc54X3A08Xgilpevp9mLxGtQVjJAiasuOfLMmZ1tvBYTeab9To5kP1mkbVv2wW5fzqbNaU+ys397VwNz7vYcb5S/DJOxJeyDzuKS464qKc3MnvA03TOvJLYPDt6TNsVh02R6Mt6dow9x7ZUfJrYXW3hztdNRfKrmOKIhgrGPdjgUwBiwUrKTuyNzzNEJwHgsQNW5LcDYWR8EiI0u+40Dm2HQXvbAchQ32TVNBTqy4/Ot8nWif+LwRmYD+ZOaXvX7i6TVJC0R5t0d9uTnPIP2NjR7E4l6AS41HWTYt4tQDQYoSek1PDh4z5Jf74gms0kMzQToackelVkrtAalVp9FbvoOE2Qk4GRsLkA4aA+LTq1BxRcbTOW2YjUucSDisBcvBHAl5ytZOWpQ2TKrBeUPUNs7G9jT3chbdnbmLkKG9c1etpdhflVcyN2cc/9UXR/Nb/hUzueyrpJIVnA6uLEl58jE1SZtEM8ytSxcAOBnL5VmMnW10gClVp+TD8DLP8z7tCMa4tyMxdnROczFo6ybeZUmb/KjnjqXyROaom3+DK7Y0waxm/gSByQXH5SMiaVHe9IXHQSgLmPu0QrUoJwOi9v2ddMQG7beFxsOvq4pe9XeYuSNb0X+LkN7PpXceNMf2z8xbT3JoefdTUv75u91OmhwO5l3pV/jzQXW2apGe4bvpzFwxV6Rd5l2j/wLAHOB2p5HpgFKrS7GwOhJmB3O8ZRBTATLhAk6fIQihtDQCdbNvk6zO6XJKaU2tW38V+wcfZj6kJ1hOmvdppSl1zPXRIo4cgSAzp1w/SehY8dyf8Ortr2rgc/fuo0NFWr6SevDctXZPzl0NiZrpLmCYqM3dw/EpaaDWftSs8WvBq7IAg5TmsSv33ryHH/zaH9JzlVtqj5AichWEfmGiOT/yqzWjoUJe2XZcPYibuGoSXwrjXeuzwbCOKIBmr3pAerjh/v4rUO9iXlOreP2aClDxrpOruS386KHQzT3wPpr7cdZ84NWxlKziL9r7zo+FstckX/cx9XVBhuKmJgcXz/q4MYWPvmGzTmPkRzlONP25hxHVi+DsGX88as6x+bxJwC7HzUQqs3BEhUJUCJyl4gMi8grGftvE5ETItIvIn8GYIw5Y4y5I/eZ1JozFVsTJxxM9hPFhCMGZ+xbaTCWLWE2EMYV9dPssT/qbofFtT2NrG/y4nU5Eul8PCF7IITdB5Wa7iD5J1Io316Wzp3wtj/Pyi5erfb1NC9a4zK+dcs+//uu7eZjh/OnbkoNOSGrDq/LgduZ//YUH+UXN+pL1lgn6jYuu5wrxTJhe8rDVVg/+ypt8/lTZdWCStWg7ob0dGki4gC+ArwH2At8QkT2rnzRVDUzUymLtoXTJyqGo1EcseXZQ456HJYw6w9jmTANTjuYOSzY192AiOB2WokRUfHlNaJipfdBiQV7PgC734tlCTdtXf7Kt7n0ta1c/8kdb97CZ27Zsuhx+YbORza9Kfb80t9757pGmryLD3AQIJpnZeLEAekPEgaaruf1ztuYd+UY0l6jUiee16KKNNwaY46IyOaM3YeBfmPMGQARuQf4IPBaMecUkc8CnwXYuLH6v0GppQuGoxx9/hg7m0J0+lwQ8tvzcGLCEYMjGsLjtGhvaaZuxpEYTt1sBbgMdDZ6E1ki3I7kBN54gDJYWKlZD0Rg/b7EpsthcXTDxxOTJa/Wbx7sWYFxfrZiAkRO13/SblYtYTYInzt3EGr1uZlfgK2dyX/XEd8O6kMTJOtZua/YQIud59AXHAOgs2cbI5dOl6zMauVVUx9UD3AxZXsA6BGRdhH5O+CgiPx5vhcbY+40xhwyxhzq7Owsd1lVBZy7PIq1MMaIFfv3zeiHCkWjOEyQze31vO/g5rQmuXoWuHlLGxtavImmQbfDwhG150HFB0AYsdLz5WXclF0Oi4CziekS5YizLMFhVflk3+Yeu8lyifIN+tu3oYk93U05n/N5nNy6q5OuxuQAlNPtb+NMMr49AAAgAElEQVTl9b+55Pffvrl6v6jGB+WUws6RB0t2rmpT9UNfjDFjwOcqXQ618iILU4y//jidB94DlsXFcyepB0Y8G4FJCCUDlDGGSNSuQVkOAYcHrysZXJyh2WTTlYlANIpFctJjfOVZOxdfSiGyAlSVB5MS2teTPp9p0Zre9Z+E2SEIFj6scdGaXO1f457pF0t2rraFc4mm7VpTTQHqEpDai9ob26fWqHMnjjH8/CO4+m7A29zJ9NBZ6sRiyLEezEuJABWan+KbzwzR7PPijAbtQOR0p41ks0IpC7xFw/D4/wfelsRQX0dKDUpS+0AyApSzDNnIq9EfvH370mt2zT32z9mrrR0kQ+HmjnrOjaYvly6LzsdKPr+lw0cwHOXSZPaoz1rSNXsCf2jvkkdvVrtq+ms7CuwQkS0i4gY+DhTOrKhq2vSMnQxzfGaOMyNz+PxXcLVsYCzsYSEU4bkzl4mEQww88L9oGjvG4KQfhwnZN1aHB09KDUqCc/YDhxOiUYiEYW4URzRIyKpLDG9O5OJLvDD9T6Tqm+NKxOmwqiLPoMeZcsPNuZxJ4XyI65u8eedT1RbD+bH5xQ9bZSo1zPx7wFPALhEZEJE7jDFh4AvAA8Bx4F5jzKuVKJ+qDvOzdq1nanae4alZmsOjtHZvxR91cWnSz9nBUV7rP83Q+DR1oUnAThQrlgUOF97Um1sgVoNyuBODJMCeUxN0+pJNfGKlT8jN08TX01LH52/NkTxVlUCegNO5K/Fw3l3a0ZSrnTMa5PJU7dUSKxKgjDGfMMZ0G2NcxpheY8w3YvvvN8bsNMZsM8b8ZSXKpqrHwrw9Um5qzs/s6AA+p+Bp3wgijPgFZzTAy6/bSxOs98aa6kwQy+UBEZxuO1NBVJx2s57lAMuZNX8q4GhINPFF48ttxGUEqNTgVWvNKdUovTUvee0vNh/i1a4PFH6xo5jcibWhZ/oFXrgwaS+OWUOqqYlPKYan/fQPzxIIRwj77SaLqbl5/BNXqHc7qG+3J2j6jRu3CVAXGKXN56bNaXcSO6JBLKc9Akxu/nc8t+F3CFmxEWFixQJUeibvgLMhbZAEBQKUM1aDCkdrf7nt5drQYl/vvralpVoqOP8pgxEHM97CCyXicELThsLHAL01lA38if7RxQ9aRTRAqcpL+Zp85NQoP3/5MsPTAZxRP16nxdTcAuFQgHqPk8YGOwt32PKws91Jt2OanpY6vFE7mDmiIbsGBeCu53037uSaTbF0Q5bTDjgZE3wDzsbEd3MjVvpM1DyDJCLR2vqmWkq9rfV84e3b2dSeZ6mMTW+ExvVZu8fqF1m9t8g+sZAjFnBcPrvWvIi+tnoOb0k2GXoKZLCodnPB8i2jUgmr919C1YbZETjyP2BulEA4wqWJBcJRw3PnJ3BG/LQ1uJGonQ2i3u3A7XJT53YQcnjpqoty87owPq8btwliRUM4o34sd/Ib8ZYOH52tsezXltO+YYXSO5P9zqbEvS+tBpWxrhFAm8/NxrZ63rl3+Wl/VqulJGYvuLz91rfCoU9D6yYAZjxLu5aZufgyA8qwbzf97W+DnhuKPqcj5d/5+o2t7FxXvuVIyim5jHxt0AClymZkJsDfP32eZ88VGHY8ed5ucpu5wsXxeaLGYIlwdnQOt/HTWu/GEQ3jMGHqvB6wLDsjgtNLY3DMzsnX3IPLYeGOzOEyAazM7NnxNZ0sh50INmX+1LU9zRze2ZcYCWbEItHXkSNzgsMSPnxDL93NtdMstBQTdZvsRR1LQSzq3Q72JibtZteQ4nPZmuvsEXxdjR4avU58Hrtm1NNSR0u9i+s32V9CbtraxkcO9fHOt73dnnBdgQUjK6UW50JpgFIl4Q9FODMyy+R8EGMMp0dmuffZi4zPBXns1CjHL0/nfuHskP3/wDRnR+fxuCz29TRhRcP4nIZ6twMhQoMLXE77JrW5vZ6uthY7qFgO6L4Op0NwR+ZwmyCSFaBi+e5y1KB8HifXbFqX0sTnSK9BqTQnOn+DF7d8tjQnW7+fA70t9PbEpz9mB5P4sP7rNtpJdz1OB7cf2ECDx/4stPnciRWE48/3tdUX/QVisOnAVfwC1eXGgW+BMYlVomvBWpggoMpsYGKef3nlCjN+u/3b47IIhqOsa/Ly3v3dPPjqFR56bYgGjzM7OerMFQDMwiTnRufY1OZj57pGXj93iTqXA6dl0eA0tLhIzIN54/YOMG0wcBo6d0PTBlwOC49/FrcJpq2CC4AzowYVyWind9WnNPGlNOuVMPecymHdNfbP2cfyHpIeslbuC0Pm2l+rhRDhW0+eY1tXA7cfWHyASLXTAKWWLRo1PH12jGfOjtNc5+IDBzawEIwwNO3H7bR4w7Z2XA6LDxzYwPePXuSnLw3yoet62NBShzGGi6MzOAcvEgiGmA8MMOvYzuaOenpa6ujxGVpCsYC0tRlPUOyEpXHeWBqe3hvB04jLIXjD0ziJpK3hBGTUoHJ85B3Jb+FRcWiAWkUW9vwWDS0NMJTviOU18aWuXSXLPsvKc0fmCTibOD1cG31RGqDWsGjUMBMIM70QYtofYnohzGwgjNdl0eh10eh10uR10VrvwpnR6T02G+DB14a4MuVn74Ymbt3VmZj1v5/0HG5el4N/dX0P//jcAP/0wiXesqOTVwenmB4ZYP/oLJbDyfzCCO4+i83t9qTZD+1rhWN2zafdG+tLiKR8XHtusFetja235HDX0xAatzNCODNqUPEalTjSE8HGiSQCl0Eo1AelysHgjDXlOTMydcRrMgKw+RbwT9q15ov2isqRls3Q7IWhkaLfbax+G+3z2VnOD/QmP7cuh0VHg5vR2dXVXHZw8B6e3liiJtgqUJMBanQ2wF2Pn03bt5RvQKaMHatLObVZQqmNSVmMwNivjb+XMabg83EiUO924A9FiaTM83E7LbZ12k1vfW31vDQwyZP9YzgdFu+7tpud6xoXLV+T18VvHerjn54f4OHjQ9S7HbyjN8omTyuudbsw42d5y5u24ogHwpSBDETDsYm2KaluLCttMUDxNtEcHbBvaIX6oPLNtdn9XkJn7iFquVL6oDRArZQNLXX467rpXBiDTW9I7L9pSxvRqLET1zosuO63016X3RKX8aHO8Qdn8jTf1btr43ZoRUP257gG1Ma/SAa3w1p0ddBUS2luXkrL9FJymS3tvPn3C0Lsv0QZJOU5yXguXktqqnPS6HXhsARjDPPBSKJWdWF8nv7hWY5fnsFhCZGoYVtXA+/Y3YWviGW84xo8Tj5ycAPnzp1iy9ateM/1g8cLLRuR0VM4In6IrYSbCFAOZzJA5cnFBkBdC/XmpB2gMmtQqX1Q+ebFrLuG53p/N3khIX8wW+PKkaPPEmH7+lbY8p/S9ntdDt62u2v5J/Ys/uWp1uwcfYjXu95b6WKURE0GqKY6F7fty54IqIojIvg8TnweJ93NsGt9I2/f3cWF8XnOjs6yoaWOXesal3Wjqps+w57L94H3LfYIvoZ1yf6kwDS44wFq3g4U7kaIhOwfd4G5Kd4WfG6nHVuyalCx7UI1qLQLEKs5FTHJU1VWdgUp4zO5673MOXrgyg9WqkgV1+K3V52eD4ZXfa1Q2zBUURyWsKXDx9t3r2P3+qblf4uet1c75ewRmL4MDevBE5sH459KHhdasANLWg2qwB9bXQvbuxrY1tlQIEDlqEHlbMbTPqgV1XvYXrW498bSn9vlJdhxDZcb95f+3FXuodfyjhxZNfQvUK0s/5RdS2ruAROFxpQalD9lrlRwzu47slx2cIqE0vugMnmT/VE5m/jiAyHiNah400+uJiCdB5VbubpmXV7Y84Hs6QFFKPaf6Hxrsl9r1QzJuwrXXv4BZ0bm+MGzFxc/uIqt7vqfWn38k1DXCvs+DOefhPbtdgBxOCGQowaF2MEpGlqkDyqWzsjhzD5OBOrb7SAWz8NX3w59N0HH9uxzJe56GqDSxC5Hda8qvMTok9lG2LYFxtMHWHmcFv5VliW8PjSBFQ0xMFHpklwdrUGplbUwaQcKtw92vMsOQiLgaU6vQYXmY018qTWoAn1Cnib7PM48g2MOfQY23pw8h6cB+m5MBrZUOoovpyavk1u2d/DB63oqXZSSMal9ktd+FLr2Zh1TDQs3LsfhgW9WughXTf8C1cqJRuyBECnDwxO8zTn6oOqTy2NkDjPP5HDagyjyNRNZsQm48aCTOZk3TbwPanXemMpFRDi8pS2RF6+SljIFo1CAudR0MLnR3JvzmO7mpTc9VoudIw/aK0ivUhqg1MrxT9lNKt5cAarJDl4AgRm7BuVttgNU2G+/rlATH9hLONQtstJqJDbx0p1nKQjQGtSqlh2MCs1rjFo5moQzWJawrml1Ln7YtnCOheFTlS7GsulfoFo5fntZ9sSgiFSeJgjO2015w6/bAaljl33zCMX6jRabfLj3g3ZneyHBWKLYzJF+qTTV0Sq2BkZALNE9z1xkbHZ1ZjrXQRJq5SzEAlSuJr74AnaXX4Lh16ChC3zt6SvgFhpmDovXsCA5AThHE9/vvmGTvS7Q5MuxPdrEV2tC1jKXSVnlce/bT53n7bu7ONCX42+viulXRLVy/FN2X5A7x9Dutq32CKozj8D0YLKzOjW5aynSt7RstP/v68h6qqPBQ6vPjc6Dqn4bY1nx69zFT6Z+tud3eXHDxwBoqc/1Wbq6LySb2gv1a1aOif1ev3x9uMIlWbpF/wJFxBKRj65EYVSN80/G+pXyJGzd/i57bhRA1277/6m1omJqSIvpOwxv/IPco/cSZdF5UNXulm0dfOZNW+zFK4sUdtQRsdyJ7SuN18Qe5a4erWuyB0c0eZ2YHFnw44smxm2o0kUsnWZ1JbxNtWiAMsZEgf+4AmVRtS4+xDwfXztsvRW6r00GkLQaVAlapEXsIeYFj9FBEtXOsmRZowk9sRV6O3weZtyFl5pv8rp4w9Z2PE4Hc03bsp7ftyFHX2oV2jH6i0oXYdmK/Yt/WET+PfB9ILEojzGmwFreSmXwT0LTIouo9R1O37ZKXIMqhk7UrVmNXhfvv3Y9MjwB8VkNTi9E4usnFd/ZtKoWNTRmVbYIFPsV8WPA/wEcAZ6L/TxbrkKpGmEMDL0KCxP2SLyQv3ANKhdHifugiqFNfDUt61/1ut+B7e8EpzvX4fmty57UW61uvvi1ShdhWYqqQRljtpS7IKoGXfw1nH4E6ttg13vsfbmGmBdS6ia+ouhE3VrisBb5d6xvs39SeZvSMpu4nRZzGS/DVWAuXZUanQ3Q0bB65nQVVYMSkXoR+c8icmdse4eIvL+8RVOr2vBxOzi19Nk1qOP/bO/PNcS8kLQmvhUKUDoPqqZsbKtnT7edMd/rXOTftH27/SXq2o+l7d7Rld5v6VnsPFXq/FhWmK1qxV7lbwJB4I2x7UvAfytLidTqNzVgB6TmXrj247D5zck0Rktt4kvNv7dSTXzxkYQaoGqCiHDbvvW8fXcX793fnezLzFVDdvvgDf8uaxpCai1sT3ejvcLvKqtgu8OzHDk5WuliLEmxf4HbjDH/DxACMMbMs+r+edSKMAb6H7b/0Pd92K71bHqjPc/J07j0JRVKPcy8GInUOPoRXy02x+YgFVpJ+0Bfi70C9LZ3wKY3smn39bQ3FOh3etufp2wkPwstdW7cDovV9vm4fvAfAPjur89XuCTFK7bNJCgidcSGuIjINmB15s5Q5TV9yV6IcOe7k6vjisD+jySXuliK1FqT1qBUHpvaffzhO3Ys3t8E9pekrW/lrcWc+MZ/a39uB19ge2cD7iU27fW11nFxYmFJrymnztkTDLOr0sUoWrFX+/8G/gXoE5HvAr9gheZGichWEfmGiPxwJd5PXaWLz9g3gHUZK5hajsIJWvOJD4ywHLkn+JZFrAalgyRWlaKC01I1dNr9qEBnoyd97lXK5yOzj2rfhiZ6W+vKU6arsG38V3jC04sfWCWK+os3xjwI/CbwKeB7wCFjzKOLvU5E7hKRYRF5JWP/bSJyQkT6ReTPFnnvM8aYO4opp6qwhQkYPQnd1y19yG4+8YERKzaCD61BqcWJAMKhTa3ctKXNHhm378OJpxu9LvpaqzP1kSMaqnQRilbUX72I/D3wK+AxY8zrSzj/3cCXgW+nnMsBfAV4FzAAHBWR+wAH8MWM13/GGLP6EkitVQPPAQI9N5TunPHAtFL9T6B9UGpx6+w0SS5HypeYzp0VKkztKvZr6TeANwP/O9b/9AJwxBjzvwq9yBhzREQ2Z+w+DPQbY84AiMg9wAeNMV8EdOj6ahXyw5Vj0LXHnkNSKvF+p5Xqf4JkgNIalIrLbO7NU6Nv9DqZ8YdXoEDLZ1bRF69im/geAf4S+Avga8Ah4PPLfM8e4GLK9kBsX04i0i4ifwccFJE/L3DcZ0XkWRF5dmRkZJlFU8s2/BqEg9B7Y2nPG685rdQcKED7oNSixMr5+bhmQxM3b1lk0cwKawwOATAwMc9CMFLh0hRW7ETdXwBPYKc8OgHcaIzZXc6CxRljxowxnzPGbIvVsvIdd6cx5pAx5lBnZ+dKFE2lmr5kD4KIr+tUKvEbwUr2QcWzCjR2r9x7qpogSNoS81ezjFSDpzyf+a3jjxEMR/nBswP86IWBsrxHqRTbhvES9kTdfcC1wL7YsPPluAT0pWz3xvap1Wz6sp0IttS1jnhwWskmvratcNPvw/p9K/eeanVINF+nfM7rWmH3+0r+VrvX51g3rUS++cRZAIanq3u2ULFNfH9ijHkL9ki+MezMEpPLfM+jwA4R2SIibuDjwH3LPJeqBiE/LIyXvvYU53Ct7CAJyM7NphTkXImZ9fvtJWJKzFnGIerzVd60F1dsE98XROT72IMjPgjcBbyniNd9D3gK2CUiAyJyhzEmDHwBeAA4DtxrjHl1ub+AqgKzV+yBBeVqErOcK9vEp1SmDQft/7duyn6uiFaDKW9viQt0dTZNPFXpIhSl2L96L/A/gediAaYoxphP5Nl/P3B/sedRVW76sv3/xdZ6Wq6OXfZihkpVSnOvnfpoILbK0CofQNM98zIDzdezdfwxCPYms75UmWKb+P4H4Ac+F6tNHShvsdSqMjNot8O7yrTk9Y53Jr/BKlVtzNUMhbDFw10xmSf295RmJd91s8dpnz9jL4tTpYpt4vtD4LtAV+zn70XkD8pZMLWKTF+GJh3xptaAeF+os3RrKt20pY16j521/5ruxecQlqprqiFg50AYnwtyabJ68gWmKnYU378FbjLG/BdjzH8BbgZ+r3zFUqtGYMb+0SHZai1Yt99efXfjG/Mfk7JETJPXDmgt9YUH+ezsamRDizcRqFZC28I5AF564WnuPXqx8MEVUmyAEiB12EcEzQOzNk1ehGDKomczV+z/a4BSa4FlQd+N9sTx5thsmeaUPANv+Q9w8HcTmw0eJ2/Y2k6bL39uSgG8Lgeb2nxI6m11he6wnvAMzkh11qCKHSTxTeDXIvJPse0PYac/UmvJ7DC8+F1oWAfXf9L+pjg9aE+mLdcQc6WqVfs2eNOfpK9x5nCmL7K5StSFpypdhJyKHSTxP4FPA+Oxn08bY/6qnAVTVejMoyAOu9Z04Wl738xle/XRlZ6npFQ1yLUAp3OJi3LmMOu2s+GM122+6nOtZgUDlIh4ReSPReTLwI3A3xhj/toY88LKFE+VTWgBzvwKpopM4jFxDsZOw5Y32wlhzz8BM0N2Dapcw8uVWo28TXDtRzN2Lq29LuC0s0gEnctYQ20Zrhm6j2893r8i77UUi9WgvoWdGPZl7Im5/6PsJVLltzABz38Hzj8Jz38bXvkRzI/nP94YOP1L+w+v5xDseLc9iumVf4RwQJv3lMrk68i5u6+1wFSMlmQGuAsth0Eshn0rkvIUgKbBx+gfnl2x9yvGYgFqrzHmXxtjvgp8BHjLCpRJldP0ZTsoBWftb3lb3gzjZ+CZr8HJByCQ4wM6/JpdW9ryVruN3V0PO28Df6zdulFrUEotx/6e5mRy2d7Dif0BRwO89U+Zd2dPUJcyTRJeP/MqP3/+TFnOvVyLDZJILL1ojAmX68KoFTJ6Cl77Mbh8cN3v2N/y2rfZK+CefxIGX4ArL0HnHrsZr3WzXXs68yto6Eos0gZA5y47merYafBp9nil0jiKmydVKGN5Je63myef5MSVLewqY6LapVgsQB0QkfgC9gLUxbYFMMaYEq5Mp8pq4Dnof8gegbf/t8DTkHzO0wA73w29h+zBDyOvw5WX7Q7g+g67pnTg49npXXa9D8J+e+itUiopY/CE12X/jbidy/9bafI6mfaHcTmEPd2NHL88c1VFzMURDfLMufHVEaCMMatvvORaZIw9NykSTPkJJf8/PWjXjjp2wJ7bwZlnTkZ9G+x+L+z8DRg/CyPHYfSk/bq2LdnHW1bV5vBSqpr0tdXTMNdAq8/N6ZG5gseub/Lytt3rsvZ3NXm5ZoNdM2upc+NxWgTC0ZKWsylwmRMz1bMEh6aIXq38UzBxHibP2/8PLPJtqvcQbHtHcbUdywEd2+2faGn/AJRaMw5/FgaOwuALiFi0+RZp9ou1UGzp8MHGVgA+dLCHhREXUwuhrMNb611cKfF6To5oCEz1/M1rgFotArMweSEZkBYm7P3uemjZZGdbdnrB4Y6tn+ROPnZ6lp/IVZvvlFoeX7vd+jBY5KycHElnt3T46Hfk7ova3O5jQ0sdz19Y7tJ8uR248kNm/H9Ko7fycxs1QFWbcNAOPgsT9iKACxN2E93cqP28020HpJ4b7EEMvo5Vn/pfKVWEjPglInicpe+FqQtN8vXHzvIn79pZ8nMvlQaoSoiE7MAzP54djDKHebt9sRF0++zF0hrWa61GqdWiBEtxpNn5bjj5YGnPWcVqM0CFFuDKK4WPKVTrMMZuhzUR+//RaMZ2JGXb5NgX3zYZ2xE7AGX2F7l99npKrVvsgQp1rcmfEqb1V0pVsbz3pJT9jvxJZ0vJHa6OCbu1GaD8U3D8p+U7v4idIDX+Yzlijx0p25LcTuxz2cO261rTA5EGIaXWnBs3ty7peJPZxldGe0buZ/BCMxs2blux98ylNgOUrwNu+v2rO0dqgMkKQNrEppS6Os7U+0ie1EgAUYcbSBmtt/8jcPaIvbpAmdSFJjn/0N+y4Y7KZrerzQBlOe0ailJKVYVFBjId+oydciyHVp+bsSnweZx2hoqOHdC+HX791eRo3hpVmwFKKaVWg0OfsVtoUteQyki+3NngoW1LG47t77CDE9gtPJtvgeP/vIKFXXkaoJRSqmwW6TdqzM4Ygbsha5dDBLqvXXNTSrQzRSmlqkkVBaHAxKWKZpPRAKWUUtWsggHr+R99iZP3/ufSz+cqkgYopZRSeY3NBbn03P0VeW8NUEopVW4ptaBT7W8vfGy+2kqFajEAF449QiAcWfH31QCllFIraO91N7O+ybv4gUUa8e0o2bkKef5bf7oi75NKA5RSSpVLjlrPoc1t9pIaRcvTBxU798512aP+yuWef/wBF/7xLzDnnliR99MApZRSq9jOdY3s62mi3Vf+PH2bJn/NpckFzjyzMn1SGqCUUqoaxHNyepvS9y+SINYSodGzsms3Da/QqrtVP1FXRPYAfwR0AL8wxvxthYuklFKl17IRrvmQncYo1XWfgJET9uKkqeKBzNdpv7zexdhccAUKunLKWoMSkbtEZFhEXsnYf5uInBCRfhH5s0LnMMYcN8Z8DvgocEs5y6uUUiXVuhla+mDr24o7vmuPvQp2qrpW2Hhz7nNf/7vQd5P90kYvu1awP2ollLsGdTfwZeDb8R0i4gC+ArwLGACOish9gAP4YsbrP2OMGRaR24HPA98pc3mVUqp0nG44+K/Ld/7m3rRNy1qZSb1djSuzRFBZA5Qx5oiIbM7YfRjoN8acARCRe4APGmO+CLw/z3nuA+4TkZ8B/5DrGBH5LPBZgI0bN5ak/EoptaqswFSp3esbaX3jvyn/G1GZQRI9wMWU7YHYvpxE5FYR+WsR+SqQd+iIMeZOY8whY8yhzs7O0pVWKaVKram7tOfbnN374XGW/vbeteUaWt/3f9nNiyug6gdJGGMeBR6tcDGUUqp0Dvw2hOZLd77GDWmbDR4n12xo4tdnx0v2Fg5L2Pb2T5fsfMWoRIC6BPSlbPfG9iml1NrgdNs/pdKevjS70xKsEieZvfF9d5T0fMWoRBPfUWCHiGwRETfwceC+CpRDKaVUkaRr94q/Z7mHmX8PeArYJSIDInKHMSYMfAF4ADgO3GuMebWc5VBKqbVkcMM7S3q+c61vLOn5ilXuUXyfyLP/fgoMeFBKKbV8RhwlHdEXadlSupMtgaY6UkqpGlGuUebvOrSnTGcuTAOUUkqpvPzOZprrVjbXX1zVDzNXSim1RCUawbdzXQOujo14XY6SnG+pNEAppVSNiVhuiMC6Rg9DV5N5fO/tNPWu/Oi9OG3iU0qpGnKq/e0s1NtTTZe2MGK2SOfe7CzqK0gDlFJK1ZAx33a7ie/GlZ9YW2oaoJRSqhY1dGEWWexwMe2+lclano8GKKWUqlVXmf3BsULLd+SjAUoppWpUqfPxrTQNUEopVavMCiwQVUYaoJRSqkbEa0zuEqwF9fyG377qc1wtDVBKKbUSdr4bPI1lfYumOidv3tHB23d3pe2/1HSQeU9XnlflFnQ2lLJoy6ITdZVSaiX03GD/lMv6/cj6fRxqbct6yu9swhMZhKuYs1sJGqCUUmq1E4E97690KUpOm/iUUqpm6SAJpZRSquQ0QCml1Bpwzd79lS7CkmmAUkqpWtXYDdiDJFr3vbvChVk6HSShlFK1qucGjq0Ps+BuA2v11UdWX4mVUkoVR8QOTquU1qCUUqqGvWVnJ12Nlc1KvlwaoJRSqobdsKl1ya+Z9m4oQ0mWTpv4lFJqjRiv21zUcedbbmbX+vKmZSqGBiillFojiq0ZVSxoFNgAAApPSURBVMv0Xg1QSim1RlxpuKbSRVgSDVBKKbVWLGEBw/XN3jIWpDgaoJRSSqXp62zmYF9LpYuhAUoppVQ6X0sXUgXLxWuAUkoplcZUyVLxGqCUUkpVpaoPUCJyq4g8JiJ/JyK3Vro8SilVK5xWejPe2dZbeHndh2j0uipUonRlDVAicpeIDIvIKxn7bxOREyLSLyJ/tshpDDALeIGBcpVVKaXWgtS5UOua0kfqTdb1Mefp4vqNlR8gAeWvQd0N3Ja6Q0QcwFeA9wB7gU+IyF4R2S8i/5zx0wU8Zox5D/CnwH8tc3mVUqqmvdb5PuZdhRPIVsMACShzLj5jzBER2Zyx+zDQb4w5AyAi9wAfNMZ8EXh/gdNNAHkzHorIZ4HPAmzcuPEqSq2UUrWpweNkNhDGSHrdZEOLl8FJf4VKlV8l+qB6gIsp2wOxfTmJyG+KyFeB7wBfznecMeZOY8whY8yhzs7OkhVWKaVqndOyuLa3GaiOmlNc1WczN8b8CPhRpcuhlFK1zOdxEQhVPkFsqkoEqEtAX8p2b2yfUkqpMirYtXTdb3PzmK9q5kBBZQLUUWCHiGzBDkwfB367AuVQSikFXN57Bz0tG3lDdQzeSyj3MPPvAU8Bu0RkQETuMMaEgS8ADwDHgXuNMa+WsxxKKaWSxus2JR4PNh0g6q6upr24co/i+0Se/fcD95fzvZVSSuW2sMgw82pR9ZkklFJKlYfP4wCgo8Fd4ZLkVvWj+JRSSpVHu8/Db2xdT0NnQ6WLkpPWoJRSag1r8FRvPUUDlFJKrTGmyibk5qMBSimlVFXSAKWUUqoqaYBSSqm1rLm30iXIq3p7x5RSSpXFBw5043m9GZp7oGNHpYuTlwYopZRaY7wuBz6PE1z1lS5KQdrEp5RSqippgFJKqTWmevKVF6YBSimlVFXSAKWUUmuMcXjsB25fZQuyCB0koZRSa4xp7oM974fO3ZUuSkEaoJRSaq0RgfX7K12KRWkTn1JKqaqkAUoppVRV0gCllFJrRFeTFwCXtTpu/doHpZRSa8Rt16xnbHOAOrej0kUpyuoIo0oppa6a22nR3VxX6WIUTQOUUkqpqqQBSimlVFXSAKWUUqoqaYBSSilVlTRAKaWUqkoaoJRSSlUlDVBKKaWqkgYopZRSVUmMWS1rKxZPRKaAUxm7m4GpIrc7gNEyFS/zfUv1msWOyfd8rv16rfRaFXuMXqvij9FrlbTDGNO86JmMMTX3A9y52L5C28CzK1m2UrxmsWPyPa/XSq+VXiu9VtV2reI/tdrE99Mi9i22XS7LeZ9iXrPYMfme12tV/PN6rYp/Xq9V8c/rtcqjJpv4rpaIPGuMOVTpcqwGeq2Kp9eqeHqtilfL16pWa1BX685KF2AV0WtVPL1WxdNrVbyavVZag1JKKVWVtAallFKqKmmAUkopVZU0QCmllKpKGqCUUkpVJQ1QRRARn4h8S0S+JiK/U+nyVDMR2Soi3xCRH1a6LNVORD4U+0x9X0TeXenyVDMR2SMifyciPxSRz1e6PNUuds96VkTeX+myXI01G6BE5C4RGRaRVzL23yYiJ0SkX0T+LLb7N4EfGmN+D7h9xQtbYUu5VsaYM8aYOypT0spb4rX6cewz9TngY5UobyUt8VodN8Z8DvgocEslyltJS7xfAfwpcO/KlrL01myAAu4GbkvdISIO4CvAe4C9wCdEZC/QC1yMHRZZwTJWi7sp/lqtdXez9Gv1n2PPrzV3s4RrJSK3Az8D7l/ZYlaFuynyWonIu4DXgOGVLmSprdkAZYw5Aoxn7D4M9MdqAUHgHuCDwAB2kII1eM2WeK3WtKVcK7H9d+DnxpjnV7qslbbUz5Ux5j5jzHuANdfMvsRrdStwM/DbwO+JyKq9ZzkrXYAq00OypgR2YLoJ+GvgyyLyPlYuB1a1y3mtRKQd+EvgoIj8uTHmixUpXXXJ97n6A+CdQLOIbDfG/F0lCldl8n2ubsVuavewNmtQueS8VsaYLwCIyKeAUWNMtAJlKwkNUEUwxswBn650OVYDY8wYdp+KWoQx5q+xv/yoRRhjHgUerXAxVhVjzN2VLsPVWrVVvzK5BPSlbPfG9qlseq2Kp9eqeHqtilfz10oDVLqjwA4R2SIibuDjwH0VLlO10mtVPL1WxdNrVbyav1ZrNkCJyPeAp4BdIjIgIncYY8LAF4AHgOPAvcaYVytZzmqg16p4eq2Kp9eqeGv1Wmk2c6WUUlVpzdaglFJKVTcNUEoppaqSBiillFJVSQOUUkqpqqQBSimlVFXSAKWUUqoqaYBSKoWIRETkxZSfzZUuUymJyEER+Ubs8adE5MsZzz8qIocKvP4eEdlR7nIqBZqLT6lMC8aY6/I9KSLO2ATJ1eo/Af/tKl7/t8B/BH6vNMVRKj+tQSm1iFhN4z4R+SXwi9i+/yAiR0XkJRH5rynH/p8iclJEHheR74nIv4/tT9RMRKRDRM7FHjtE5P9NOdfvx/bfGnvND0XkdRH5rohI7LkbReRJETkmIs+ISKOIHBGR61LK8biIHMj4PRqBa40xx4r4nW9PqUWeEJGzsaceA94pIvrlVpWdfsiUSlcnIi/GHp81xvyr2OPrsW/u42Ivz74Dez0eAe4TkbcAc9j50K7D/tt6Hnhukfe7A5gyxtwoIh7gCRF5MPbcQeAaYBB4ArhFRJ4Bvg98zBhzVESagAXgG8CngD8WkZ2AN0cgOgS8krHvYyLyppTt7WCvvUQsr5uI3Av8KrY/KiL9wIEifjelrooGKKXS5Wvie8gYE18w7t2xnxdi2w3YAasR+CdjzDyAiBSTuPPdwLUi8pHYdnPsXEHgGWPMQOxcLwKbgSngsjHmKIAxZjr2/A+AvxCR/wB8BnsF1kzdwEjGvu/H1w+KnefR1CdF5D9iX5PUFX+HgQ1ogFJlpgFKqeLMpTwW4IvGmK+mHiAif1zg9WGSTerejHP9gTHmgYxz3QoEUnZFKPD3aoyZF5GHsFdU/ShwQ47DFjLeuyAReSfwW8BbMp7yxs6lVFlpH5RSS/cA8BkRaQAQkR4R6QKOAB8SkbpYf88HUl5zjmTQ+EjGuT4vIq7YuXaKiK/Ae58AukXkxtjxjSn9QV/HXgDxqDFmIsdrjxNrwlvM/9/e/apEEMVRHP+eaBCDQbDYRN/DZLKIRcRk32zxAbaJWFZkoyaLxRcQERdsPoEIFtndZPAYZsKqjPtPZZDzicP8uHPT4febC1fSEnAEbNr+HEbLfB0VRvy4dFARY7J9JWkVuC7PLfSBbdsdSWfAPcUY7HagrAmcS9oDLgeetyhGd53yEMQzsPHN2q+StoBDSTMUncwa0Ld9J6kLnFbUPkiakzRruzdkm7vAPHBR7vHR9rqkBYqR39OQ+oip5bqNiF8i6YAiOJp/tN4ixbXoK7bfKt5pAD3brQnXaABd2ycTf2jEiDLii/gHJO0AN8B+VTiVjvn4b2tcL0B7ivqIkaWDioiIWkoHFRERtZSAioiIWkpARURELSWgIiKilhJQERFRS+/lnCHX5c+4OAAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spectrum.plot_power(alpha=0.5)\n",
"spectrum2.plot_power(alpha=0.5)\n",
"decorate(xlabel='Frequency (Hz)',\n",
" ylabel='Power',\n",
" **loglog)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So the structure seems to be consistent over time.\n",
"\n",
"We can also look at a spectrogram:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"segment.make_spectrogram(512).plot(high=5000)\n",
"decorate(xlabel='Time(s)', ylabel='Frequency (Hz)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Within this segment, the overall amplitude drops off, but the mixture of frequencies seems consistent."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Exercise:** In a noise signal, the mixture of frequencies changes over time.\n",
"In the long run, we expect the power at all frequencies to be equal,\n",
"but in any sample, the power at each frequency is random.\n",
"\n",
"To estimate the long-term average power at each frequency, we can\n",
"break a long signal into segments, compute the power spectrum for each segment, and then compute the average across\n",
"the segments. You can read more about this algorithm at\n",
"http://en.wikipedia.org/wiki/Bartlett's_method.\n",
"\n",
"Implement Bartlett's method and use it to estimate the power\n",
"spectrum for a noise wave. Hint: look at the implementation\n",
"of `make_spectrogram`."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"from thinkdsp import Spectrum\n",
"\n",
"def bartlett_method(wave, seg_length=512, win_flag=True):\n",
" \"\"\"Estimates the power spectrum of a noise wave.\n",
" \n",
" wave: Wave\n",
" seg_length: segment length\n",
" \"\"\"\n",
" # make a spectrogram and extract the spectrums\n",
" spectro = wave.make_spectrogram(seg_length, win_flag)\n",
" spectrums = spectro.spec_map.values()\n",
" \n",
" # extract the power array from each spectrum\n",
" psds = [spectrum.power for spectrum in spectrums]\n",
" \n",
" # compute the root mean power (which is like an amplitude)\n",
" hs = np.sqrt(sum(psds) / len(psds))\n",
" fs = next(iter(spectrums)).fs\n",
" \n",
" # make a Spectrum with the mean amplitudes\n",
" spectrum = Spectrum(hs, fs, wave.framerate)\n",
" return spectrum"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`bartlett_method` makes a spectrogram and extracts `spec_map`, which maps from times to Spectrum objects. It computes the PSD for each spectrum, adds them up, and puts the results into a Spectrum object."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"psd = bartlett_method(segment)\n",
"psd2 = bartlett_method(segment2)\n",
"\n",
"psd.plot_power()\n",
"psd2.plot_power()\n",
"\n",
"decorate(xlabel='Frequency (Hz)', \n",
" ylabel='Power', \n",
" **loglog)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can see the relationship between power and frequency more clearly. It is not a simple linear relationship, but it is consistent across different segments, even in details like the notches near 5000 Hz, 6000 Hz, and above 10,000 Hz. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise 2\n",
"\n",
"At [coindesk](https://www.coindesk.com/price/bitcoin) you can download the daily price of a BitCoin as a CSV file. Read this file and compute\n",
"the spectrum of BitCoin prices as a function of time.\n",
"Does it resemble white, pink, or Brownian noise?"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"if not os.path.exists('BTC_USD_2013-10-01_2020-03-26-CoinDesk.csv'):\n",
" !wget https://github.com/AllenDowney/ThinkDSP/raw/master/code/BTC_USD_2013-10-01_2020-03-26-CoinDesk.csv"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Currency \n",
" Date \n",
" Closing Price (USD) \n",
" 24h Open (USD) \n",
" 24h High (USD) \n",
" 24h Low (USD) \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" BTC \n",
" 2013-10-01 \n",
" 123.654990 \n",
" 124.304660 \n",
" 124.751660 \n",
" 122.563490 \n",
" \n",
" \n",
" 1 \n",
" BTC \n",
" 2013-10-02 \n",
" 125.455000 \n",
" 123.654990 \n",
" 125.758500 \n",
" 123.633830 \n",
" \n",
" \n",
" 2 \n",
" BTC \n",
" 2013-10-03 \n",
" 108.584830 \n",
" 125.455000 \n",
" 125.665660 \n",
" 83.328330 \n",
" \n",
" \n",
" 3 \n",
" BTC \n",
" 2013-10-04 \n",
" 118.674660 \n",
" 108.584830 \n",
" 118.675000 \n",
" 107.058160 \n",
" \n",
" \n",
" 4 \n",
" BTC \n",
" 2013-10-05 \n",
" 121.338660 \n",
" 118.674660 \n",
" 121.936330 \n",
" 118.005660 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 2354 \n",
" BTC \n",
" 2020-03-22 \n",
" 5884.340133 \n",
" 6187.042146 \n",
" 6431.873162 \n",
" 5802.553402 \n",
" \n",
" \n",
" 2355 \n",
" BTC \n",
" 2020-03-23 \n",
" 6455.454688 \n",
" 5829.352511 \n",
" 6620.858253 \n",
" 5694.198299 \n",
" \n",
" \n",
" 2356 \n",
" BTC \n",
" 2020-03-24 \n",
" 6784.318011 \n",
" 6455.450650 \n",
" 6863.602196 \n",
" 6406.037439 \n",
" \n",
" \n",
" 2357 \n",
" BTC \n",
" 2020-03-25 \n",
" 6706.985089 \n",
" 6784.325204 \n",
" 6981.720386 \n",
" 6488.111885 \n",
" \n",
" \n",
" 2358 \n",
" BTC \n",
" 2020-03-26 \n",
" 6721.495392 \n",
" 6697.948320 \n",
" 6796.053701 \n",
" 6537.856462 \n",
" \n",
" \n",
"
\n",
"
2359 rows × 6 columns
\n",
"
"
],
"text/plain": [
" Currency Date Closing Price (USD) 24h Open (USD) \\\n",
"0 BTC 2013-10-01 123.654990 124.304660 \n",
"1 BTC 2013-10-02 125.455000 123.654990 \n",
"2 BTC 2013-10-03 108.584830 125.455000 \n",
"3 BTC 2013-10-04 118.674660 108.584830 \n",
"4 BTC 2013-10-05 121.338660 118.674660 \n",
"... ... ... ... ... \n",
"2354 BTC 2020-03-22 5884.340133 6187.042146 \n",
"2355 BTC 2020-03-23 6455.454688 5829.352511 \n",
"2356 BTC 2020-03-24 6784.318011 6455.450650 \n",
"2357 BTC 2020-03-25 6706.985089 6784.325204 \n",
"2358 BTC 2020-03-26 6721.495392 6697.948320 \n",
"\n",
" 24h High (USD) 24h Low (USD) \n",
"0 124.751660 122.563490 \n",
"1 125.758500 123.633830 \n",
"2 125.665660 83.328330 \n",
"3 118.675000 107.058160 \n",
"4 121.936330 118.005660 \n",
"... ... ... \n",
"2354 6431.873162 5802.553402 \n",
"2355 6620.858253 5694.198299 \n",
"2356 6863.602196 6406.037439 \n",
"2357 6981.720386 6488.111885 \n",
"2358 6796.053701 6537.856462 \n",
"\n",
"[2359 rows x 6 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"df = pd.read_csv('BTC_USD_2013-10-01_2020-03-26-CoinDesk.csv', \n",
" parse_dates=[0])\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"ys = df['Closing Price (USD)']\n",
"ts = df.index"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from thinkdsp import Wave\n",
"\n",
"wave = Wave(ys, ts, framerate=1)\n",
"wave.plot()\n",
"decorate(xlabel='Time (days)')"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spectrum = wave.make_spectrum()\n",
"spectrum.plot_power()\n",
"decorate(xlabel='Frequency (1/days)',\n",
" ylabel='Power', \n",
" **loglog)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"-1.733254093675893"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spectrum.estimate_slope()[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Red noise should have a slope of -2. The slope of this PSD is close to 1.7, so it's hard to say if we should consider it red noise or if we should say it's a kind of pink noise."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise 3\n",
"\n",
"A Geiger counter is a device that detects radiation. When an ionizing particle strikes the detector, it outputs a surge of current. The total output at a point in time can be modeled as uncorrelated Poisson (UP) noise, where each sample is a random quantity from a Poisson distribution, which corresponds to the number of particles detected during an interval.\n",
"\n",
"Write a class called `UncorrelatedPoissonNoise` that inherits from ` _Noise` and provides `evaluate`. It should use `np.random.poisson` to generate random values from a Poisson distribution. The parameter of this function, `lam`, is the average number of particles during each interval. You can use the attribute `amp` to specify `lam`. For example, if the framerate is 10 kHz and `amp` is 0.001, we expect about 10 “clicks” per second.\n",
"\n",
"Generate about a second of UP noise and listen to it. For low values of `amp`, like 0.001, it should sound like a Geiger counter. For higher values it should sound like white noise. Compute and plot the power spectrum to see whether it looks like white noise. "
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"from thinkdsp import Noise\n",
"\n",
"class UncorrelatedPoissonNoise(Noise):\n",
" \"\"\"Represents uncorrelated Poisson noise.\"\"\"\n",
"\n",
" def evaluate(self, ts):\n",
" \"\"\"Evaluates the signal at the given times.\n",
"\n",
" ts: float array of times\n",
" \n",
" returns: float wave array\n",
" \"\"\"\n",
" ys = np.random.poisson(self.amp, len(ts))\n",
" return ys"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's what it sounds like at low levels of \"radiation\"."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" Your browser does not support the audio element.\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"amp = 0.001\n",
"framerate = 10000\n",
"duration = 1\n",
"\n",
"signal = UncorrelatedPoissonNoise(amp=amp)\n",
"wave = signal.make_wave(duration=duration, framerate=framerate)\n",
"wave.make_audio()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To check that things worked, we compare the expected number of particles and the actual number:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10.0 11\n"
]
}
],
"source": [
"expected = amp * framerate * duration\n",
"actual = sum(wave.ys)\n",
"print(expected, actual)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's what the wave looks like:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"wave.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And here's its power spectrum on a log-log scale."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spectrum = wave.make_spectrum()\n",
"spectrum.plot_power()\n",
"decorate(xlabel='Frequency (Hz)',\n",
" ylabel='Power',\n",
" **loglog)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Looks like white noise, and the slope is close to 0."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"-0.0011109546801804139"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spectrum.estimate_slope().slope"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With a higher arrival rate, it sounds more like white noise:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" Your browser does not support the audio element.\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"amp = 1\n",
"framerate = 10000\n",
"duration = 1\n",
"\n",
"signal = UncorrelatedPoissonNoise(amp=amp)\n",
"wave = signal.make_wave(duration=duration, framerate=framerate)\n",
"wave.make_audio()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It looks more like a signal:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"wave.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And the spectrum converges on Gaussian noise."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"def normal_prob_plot(sample, fit_color='0.8', **options):\n",
" \"\"\"Makes a normal probability plot with a fitted line.\n",
"\n",
" sample: sequence of numbers\n",
" fit_color: color string for the fitted line\n",
" options: passed along to Plot\n",
" \"\"\"\n",
" n = len(sample)\n",
" xs = np.random.normal(0, 1, n)\n",
" xs.sort()\n",
" \n",
" ys = np.sort(sample)\n",
" \n",
" mean, std = np.mean(sample), np.std(sample)\n",
" fit_ys = mean + std * xs\n",
" plt.plot(xs, fit_ys, color='gray', alpha=0.5, label='model')\n",
"\n",
" plt.plot(xs, ys, **options)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spectrum = wave.make_spectrum()\n",
"spectrum.hs[0] = 0\n",
"\n",
"normal_prob_plot(spectrum.real, label='real')\n",
"decorate(xlabel='Normal sample',\n",
" ylabel='Power')"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"normal_prob_plot(spectrum.imag, label='imag', color='C1')\n",
"decorate(xlabel='Normal sample')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise 4\n",
"\n",
"The algorithm in this chapter for generating pink noise is\n",
"conceptually simple but computationally expensive. There are\n",
"more efficient alternatives, like the Voss-McCartney algorithm.\n",
"Research this method, implement it, compute the spectrum of\n",
"the result, and confirm that it has the desired relationship\n",
"between power and frequency."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Solution:** The fundamental idea of this algorithm is to add up several sequences of random numbers that get updates at different sampling rates. The first source should get updated at every time step; the second source every other time step, the third source ever fourth step, and so on.\n",
"\n",
"In the original algorithm, the updates are evenly spaced. In an alternative proposed at http://www.firstpr.com.au/dsp/pink-noise/, they are randomly spaced.\n",
"\n",
"My implementation starts with an array with one row per timestep and one column for each of the white noise sources. Initially, the first row and the first column are random and the rest of the array is Nan."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.39517038, 0.33346713, 0.80747793, 0.23050029, 0.12329066],\n",
" [0.93480849, nan, nan, nan, nan],\n",
" [0.61007844, nan, nan, nan, nan],\n",
" [0.74423927, nan, nan, nan, nan],\n",
" [0.43421634, nan, nan, nan, nan],\n",
" [0.07031545, nan, nan, nan, nan]])"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nrows = 100\n",
"ncols = 5\n",
"\n",
"array = np.empty((nrows, ncols))\n",
"array.fill(np.nan)\n",
"array[0, :] = np.random.random(ncols)\n",
"array[:, 0] = np.random.random(nrows)\n",
"array[0:6]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The next step is to choose the locations where the random sources change. If the number of rows is $n$, the number of changes in the first column is $n$, the number in the second column is $n/2$ on average, the number in the third column is $n/4$ on average, etc.\n",
"\n",
"So the total number of changes in the matrix is $2n$ on average; since $n$ of those are in the first column, the other $n$ are in the rest of the matrix.\n",
"\n",
"To place the remaining $n$ changes, we generate random columns from a geometric distribution with $p=0.5$. If we generate a value out of bounds, we set it to 0 (so the first column gets the extras)."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([4, 1, 3, 2, 1, 3, 1, 2, 1, 3, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 0,\n",
" 1, 1, 2, 1, 2, 0, 2, 1, 1, 2, 0, 1, 3, 1, 2, 4, 0, 1, 1, 4, 1, 3,\n",
" 1, 1, 1, 3, 2, 1, 3, 0, 3, 3, 4, 1, 4, 2, 1, 1, 1, 1, 2, 2, 1, 1,\n",
" 1, 2, 2, 1, 1, 3, 2, 1, 1, 1, 1, 4, 1, 4, 3, 1, 3, 1, 2, 1, 0, 1,\n",
" 3, 2, 3, 3, 1, 0, 1, 1, 2, 2, 2, 2])"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p = 0.5\n",
"n = nrows\n",
"cols = np.random.geometric(p, n)\n",
"cols[cols >= ncols] = 0\n",
"cols"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Within each column, we choose a random row from a uniform distribution. Ideally we would choose without replacement, but it is faster and easier to choose with replacement, and I doubt it matters."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([81, 74, 76, 24, 12, 56, 95, 4, 1, 12, 95, 44, 50, 76, 95, 34, 4,\n",
" 91, 39, 38, 51, 13, 48, 54, 30, 9, 31, 4, 28, 79, 75, 45, 29, 65,\n",
" 53, 83, 12, 53, 66, 88, 63, 76, 97, 28, 60, 99, 27, 84, 11, 8, 30,\n",
" 71, 18, 4, 6, 57, 19, 58, 74, 37, 32, 53, 12, 91, 72, 36, 26, 87,\n",
" 0, 94, 74, 69, 48, 91, 12, 50, 49, 64, 39, 3, 37, 91, 30, 27, 81,\n",
" 79, 39, 45, 76, 86, 47, 54, 79, 0, 36, 86, 76, 43, 48, 8])"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rows = np.random.randint(nrows, size=n)\n",
"rows"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can put random values at rach of the change points."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.75218982, 0.33346713, 0.33151149, 0.23050029, 0.12329066],\n",
" [0.93480849, 0.54326904, nan, nan, nan],\n",
" [0.61007844, nan, nan, nan, nan],\n",
" [0.74423927, nan, nan, nan, 0.12887454],\n",
" [0.32223056, 0.44575854, 0.08476646, 0.88175009, nan],\n",
" [0.07031545, nan, nan, nan, nan]])"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array[rows, cols] = np.random.random(n)\n",
"array[0:6]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next we want to do a zero-order hold to fill in the NaNs. NumPy doesn't do that, but Pandas does. So I'll create a DataFrame:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" 0 \n",
" 1 \n",
" 2 \n",
" 3 \n",
" 4 \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.752190 \n",
" 0.333467 \n",
" 0.331511 \n",
" 0.23050 \n",
" 0.123291 \n",
" \n",
" \n",
" 1 \n",
" 0.934808 \n",
" 0.543269 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 2 \n",
" 0.610078 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 3 \n",
" 0.744239 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" 0.128875 \n",
" \n",
" \n",
" 4 \n",
" 0.322231 \n",
" 0.445759 \n",
" 0.084766 \n",
" 0.88175 \n",
" NaN \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4\n",
"0 0.752190 0.333467 0.331511 0.23050 0.123291\n",
"1 0.934808 0.543269 NaN NaN NaN\n",
"2 0.610078 NaN NaN NaN NaN\n",
"3 0.744239 NaN NaN NaN 0.128875\n",
"4 0.322231 0.445759 0.084766 0.88175 NaN"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame(array)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And then use `fillna` along the columns."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" 0 \n",
" 1 \n",
" 2 \n",
" 3 \n",
" 4 \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.752190 \n",
" 0.333467 \n",
" 0.331511 \n",
" 0.23050 \n",
" 0.123291 \n",
" \n",
" \n",
" 1 \n",
" 0.934808 \n",
" 0.543269 \n",
" 0.331511 \n",
" 0.23050 \n",
" 0.123291 \n",
" \n",
" \n",
" 2 \n",
" 0.610078 \n",
" 0.543269 \n",
" 0.331511 \n",
" 0.23050 \n",
" 0.123291 \n",
" \n",
" \n",
" 3 \n",
" 0.744239 \n",
" 0.543269 \n",
" 0.331511 \n",
" 0.23050 \n",
" 0.128875 \n",
" \n",
" \n",
" 4 \n",
" 0.322231 \n",
" 0.445759 \n",
" 0.084766 \n",
" 0.88175 \n",
" 0.128875 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4\n",
"0 0.752190 0.333467 0.331511 0.23050 0.123291\n",
"1 0.934808 0.543269 0.331511 0.23050 0.123291\n",
"2 0.610078 0.543269 0.331511 0.23050 0.123291\n",
"3 0.744239 0.543269 0.331511 0.23050 0.128875\n",
"4 0.322231 0.445759 0.084766 0.88175 0.128875"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"filled = df.fillna(method='ffill', axis=0)\n",
"filled.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally we add up the rows."
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"0 1.770959\n",
"1 2.163380\n",
"2 1.838650\n",
"3 1.978395\n",
"4 1.863380\n",
"dtype: float64"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total = filled.sum(axis=1)\n",
"total.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we put the results into a Wave, here's what it looks like:"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"wave = Wave(total.values)\n",
"wave.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's the whole process in a function:"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"def voss(nrows, ncols=16):\n",
" \"\"\"Generates pink noise using the Voss-McCartney algorithm.\n",
" \n",
" nrows: number of values to generate\n",
" rcols: number of random sources to add\n",
" \n",
" returns: NumPy array\n",
" \"\"\"\n",
" array = np.empty((nrows, ncols))\n",
" array.fill(np.nan)\n",
" array[0, :] = np.random.random(ncols)\n",
" array[:, 0] = np.random.random(nrows)\n",
" \n",
" # the total number of changes is nrows\n",
" n = nrows\n",
" cols = np.random.geometric(0.5, n)\n",
" cols[cols >= ncols] = 0\n",
" rows = np.random.randint(nrows, size=n)\n",
" array[rows, cols] = np.random.random(n)\n",
"\n",
" df = pd.DataFrame(array)\n",
" df.fillna(method='ffill', axis=0, inplace=True)\n",
" total = df.sum(axis=1)\n",
"\n",
" return total.values"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To test it I'll generate 11025 values:"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 7.74931667, 8.11992447, 7.81759903, ..., 10.21400096,\n",
" 9.58848738, 10.08793761])"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ys = voss(11025)\n",
"ys"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And make them into a Wave:"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"wave = Wave(ys)\n",
"wave.unbias()\n",
"wave.normalize()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's what it looks like:"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"wave.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As expected, it is more random-walk-like than white noise, but more random looking than red noise.\n",
"\n",
"Here's what it sounds like:"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" Your browser does not support the audio element.\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wave.make_audio()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And here's the power spectrum:"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spectrum = wave.make_spectrum()\n",
"spectrum.hs[0] = 0\n",
"spectrum.plot_power()\n",
"decorate(xlabel='Frequency (Hz)',\n",
" ylabel='Power',\n",
" **loglog)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The estimated slope is close to -1."
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"-0.9961871315528988"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spectrum.estimate_slope().slope"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can get a better sense of the average power spectrum by generating a longer sample:"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"6553600"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"seg_length = 64 * 1024\n",
"iters = 100\n",
"wave = Wave(voss(seg_length * iters))\n",
"len(wave)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And using Barlett's method to compute the average."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"32769"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spectrum = bartlett_method(wave, seg_length=seg_length, win_flag=False)\n",
"spectrum.hs[0] = 0\n",
"len(spectrum)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It's pretty close to a straight line, with some curvature at the highest frequencies."
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"spectrum.plot_power()\n",
"decorate(xlabel='Frequency (Hz)',\n",
" ylabel='Power',\n",
" **loglog)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And the slope is close to -1."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"-1.0020572884106542"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spectrum.estimate_slope().slope"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"jupyter": {
"outputs_hidden": true
}
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.8.12"
}
},
"nbformat": 4,
"nbformat_minor": 4
}