{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Show plots inline.\n", "%matplotlib inline\n", "\n", "# Number of harmonics to include in subsequent plots.\n", "Harmonics = 10\n", "# Time in seconds.\n", "Time = 2.0\n", "# Plot resolution.\n", "Steps = 200" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# Array of step values.\n", "def time_space(sec=Time, samples=Steps):\n", " '''An array of equally spaced samples over a period of time.'''\n", " # One extra sample to also include the endpoint.\n", " return np.linspace(0, sec, num=samples + 1)\n", "\n", "def sample_rate(sec=Time, samples=Steps):\n", " '''Sampling rate in samples per second.'''\n", " return float(samples + 1) / float(sec)\n", "\n", "def sample_spacing(sec=Time, samples=Steps):\n", " '''Time between samples.'''\n", " return float(sec) / float(samples + 1)\n", "\n", "def frequency_spectrum(data):\n", " '''Perform an FFT on `data`.'''\n", " # Get the signal frequencies.\n", " fft = np.abs(np.fft.fft(data))\n", " \n", " # Get the frequencies for a DFT plot (this doesn't depend on the actual signal) based on the \n", " # spacing of our samples.\n", " freqs = np.fft.fftfreq(len(fft), d=sample_spacing())\n", " \n", " return freqs, fft\n", "\n", "def plot_signal_and_spectrum(domain, data):\n", " '''Plot the signal and spectrum in a stacked plot.'''\n", " plt.figure(figsize=(10,6))\n", " plt.subplot(211)\n", " plt.axhline(color='#666666', linewidth=0.75)\n", " plt.plot(domain, data)\n", " \n", " freqs, mags = frequency_spectrum(data)\n", " num_freqs = Harmonics * 2\n", " plt.subplot(212)\n", " plt.xticks(range(num_freqs))\n", " plt.plot(freqs[:num_freqs], mags[:num_freqs], 'x')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Basic Waves" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sine Wave\n", "\n", "Sine waves are easy. 😁 The have a single frequency, and no harmonics." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Sine wave.\n", "\n", "def sine(domain, freq=1.0):\n", " return np.sin(2.0 * np.pi * freq * domain)\n", "\n", "wave = sine(time_space())\n", "plot_signal_and_spectrum(time_space(), wave)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Saw Wave\n", "\n", "Saw waves consist of every integer harmonic _n_ above the fundamental frequency, where that harmonic's amplitude is n-1." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def saw(domain, freq=1):\n", " harmonics = np.asarray([1.0 / h * sine(domain, freq=freq * h) for h in range(1, Harmonics)])\n", " wave = np.sum(harmonics, axis=0)\n", " return wave\n", "\n", "wave = saw(time_space())\n", "plot_signal_and_spectrum(time_space(), wave)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can invert a saw wave to get what many synths call a \"blade\" wave. Instead of gradually falling and then spiking up, blade waves gradually rise and the sharply fall." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlkAAAFpCAYAAACvaj13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvFvnyVgAAIABJREFUeJzs3Xd81dX9x/HXyR6EDDLIZBNEQIEIiBPU1mpbR63FVbVafrVa+9Pu36/j122HbbWuugcuXFVbZxVcCBhANoEkjCRABgnZ897z+yMXDBDI/Oau9/PxyIPk3u+993O4uTfve875nmOstYiIiIjI4ArxdgEiIiIigUghS0RERMQBClkiIiIiDlDIEhEREXGAQpaIiIiIAxSyRERERBygkCUiIiLiAIUsEREREQcoZImIiIg4QCFLRERExAFh3i4AIDk52Y4ePdrbZYiIiIj0aNWqVVXW2pSejvOJkDV69Gjy8/O9XYaIiIhIj4wxO3tznIYLRURERBygkCUiIiLiAIUsEREREQcoZImIz2tq6+DDbVVYa71diogMkeLKBraV13u7jAFRyBIRn1ZR18Kl//iYKx9awW1vbFHQEgkC/9lUzvl3fsgFd3/Eqp013i6n3xSyRMRnbS2v56J7llFc2cjZx6Xyj/eKuWdpkbfLEhEHPfrRdhY+kc+EtGGkxkVy7SMr2bynzttl9YtCloj4pJZ2F1c+uIJ2l5vF/3Uy91+Vx0XTM/nTmwUszi/xdnki4oB3Npfzf69u4qzj0nhm4RwWXT+b2MgwrnpoJXtqm71dXp8pZImIT1qcX0JFfSt3LJjOlMx4QkIMf7xkGidmJ/DA+8XeLk9EBpm1ljvfLSQrMZp7rphBTEQYWYkxPPaNWVQ1tPLSmjJvl9hnClki4nPaXW7+8V4xM0clMmds0sHLw0ND+NIJGWyraKCkusmLFYrIYPu4aB9rS/bzrTPGER76WTyZmBbHlMzhLNlS4cXq+kchS0R8zsuf7qZsfzM3zhuHMeaQ6+ZPSgXgXT98wxWRo7t7aSEpcZFcMjPriOvm56ayamcN+5vavFBZ/ylkiYhPcbkt9ywt5Lj04czLTT3i+jHJsYxJjlXIEgkga3bV8FHhPr552hiiwkOPuH7epFTcFt7bWumF6vpPIUtEfMrbm/ZSXNnYbS/WAfNyU/m4eB9NbR1DXJ2IOOHepUXER4dzxexR3V5/QlYCI2Ij/G7IUCFLRHzKouW7yEyI5gtT0o96zPxJqbR1uFlWuG8IKxMRJ+ypbeY/m8u5fHYOsZFh3R4TEmI4IzeFpVsrcbn9Z608hSwR8Rk79zXyYWEVXzspm9CQ7nuxAGaNSSI2IpR3C/zrU62IHGnxJ6W4LVx2Us4xj5s/KZX9Te2s2eU/i5MqZImIz3j2kxJCDFyal33M4yLCQjh1QjJLtlRoBXgRP+ZyWxbnl3DahGRyRsQc89jTJqQQGmL8aj6mQpaI+IR2l5vF+aXMn5TKyPioHo+fPymVPbUtbKtoGILqRMQJ72+rpGx/M5fNOnYvFkB8dDh5oxL9avK7QpaI+IR3NpdT1dDaqzdbgBk5iQBs3F3rZFki4qCnV+wieVgEZx+X1qvjZ4xKZGt5Pe0ut8OVDQ6FLBHxCU+vLCE9PoozJqb06vjRybGEhxoK9qonS8QfVdS18M6WCr4yM4uIsN7Fkdy0ONpdlu1VjQ5XNzgUskTE64oqG3h/WyWX5mUTFtq7t6Xw0BDGpQyjYK9/bhwrEuwWrdiF29oeJ7x3lTsyDoAte+udKmtQKWSJiNc99OF2wkNDuHJO92vkHE3uyDi2lqsnS8TfNLe5eOLjHZw1KY3RybG9vt3YlFhCQwxbFbJERHq2r6GVF1aVcvH0TFLiIvt029yRcZTtb6aupd2h6kTECS+sLqWmqZ1vnjamT7eLDAtlbHKserJERHpj0fJdtHa4ub6Pb7bQOT8DYFu5f7zhigi43ZaHPtzOCVnxzBqT1PMNDjNxZBxb/eQ1r5AlIl7T0u7i8Y93MC83hfGpcX2+vb/NzxAR+M/mcrZXNXL9aWOPunXWsUxKi2NXdRONrb6/rVb369eLiPRCYUUD/9lcTnuHm1MnJDMtK+GYK7UfbnF+Cfsa2/jm6WP79fiZCdEMiwzzm/kZIv6urcPNiu37+KhwH6NHxHD6xBQyEqJ7fXu323Lve0WerbNG9quGiZ4PV9sqGjgxO6Ff9zFUFLJEpM/W7KrhB8+vo9CzEKgxcPvbW0mMCefWcyZyxexRhPQQtkqqm/jD61uYMzaJk8eO6Fcdxhgmpg1TT5aIw6y13LO0iPveK6K+pQNj4MBmCydkJ/DbC6cwJTO+x/t5dNkO1uzazx8vmdbrM4kPN8kTsgr21ilkiUhgeWdzOTc+tZqUuEh+dcHxnH1cGlHhoXywrZLF+SX87OWNvL5hL3/4yjSyk7rfJsPltnzvubUYY/jzV0/o15DBAbkj43hjw16stQO6HxHpXofLzU//uYFnPinh7OPS+NpJ2Zw6Ppld1U28t7WCBz7YzoV3f8RN88dz47zxhB8lPBVW1POHN7Zw1qRUvjozq9/1ZCfGEB0e6hdr5GlOloj02vOrSln4xCompMbx4g2n8PWTR5OREE1SbAQXnJjJoutm8/uLp7K2ZD/n/u19nlqxq9u9BR/+cDsrt1fziy9NJivx2PuV9SQ3LY6apnYq61sHdD8icqS2DjffWrSKZz4p4aZ543ng6zM5Z3Ia0RGh5I6MY+Hp43j7ltP54rR0/vafbVxw10ds3nPk2nXtLje3PLuWmIhQfv+VqQP6QBQS0tmDXVDu+2vkKWSJSK+s3F7Nj15Yx8ljR/DMwjndLrdgjOGyWTm8ecvpnJCdwP+8tJ6vP7ySJQUVNLZ2UFLdxPefW8vvX9/MOZPTuGQAn2YPODA/o8BPzjYS8Se//tcm/rO5gl9dcDzf/3xut+EoISaCvy2Yzn1XzqSivoUv3/Uhf3pzCxvKanG5LUsKKrjw7o9YX1bL7y6aSmpcz3uT9mRiWpxf9GQ5MlxojHkY+CJQYa2d4sRjiMjQqahr4canVpOTFMM9V84gNvLYbx1ZiTEsum42T67cxW2vbeaDbVWEhRiM6Qxi1506hpvPmjAow3sHlnEo2FvPaRN6tyWPiPTspTWlPLF8JwtPH8vXTx7d4/HnThnJrDFJ/OKVjdy9pIi7lxQRHR5Kc7uLnKQY7rxsOl+Ymj4oteWOjOO5VaXsa2hlxLC+ra83lJyak/UocBfwuEP3LyJDpN3l5qan1tDQ0sGi62YzPCq8V7cLCTFcNWcUl8zIYtXOGpYVVdHhtlx7ymjS43t/NlJPRgyLJHlYJAWa/C4yaDbvqeMnL65n9pgkfvj53F7fLik2gr9fNp3/Pe84Pi6uIn9HDZMzhvPVmdm93p+wN3K79GDPDbaQZa193xgz2on7FpGh9de3t7JyRzV3LDjx4BtbX0RHhHLqhGROnZDsQHWdJqYNY1uF7w8diPiDxtYObnxyNcOjwvn75dP7dRbgyPgoLpqexUXTBz4loDsTPT3YhRUNzB3n3HvLQGlOlogc1UeFVdz7XhGXzcrmghMzvV3OUY0aEUNpTZO3yxAJCL98dSPb9zVyx4LpgzJ/ygmpcZFEhoVQUu3br3uvhSxjzEJjTL4xJr+ystJbZYjIUexraOWWZz9lXMowfv7F471dzjFlJcZQ1dBGU5vvrwAt4steWbubxfml3DRvPCeP69/6dUPBGEN2Ugwl1c3eLuWYvBayrLX3W2vzrLV5KSmarCriSw6sY7W/uZ07F0wnOiLU2yUdU45nPS5ff8MV8WXbqxr53xfXMyMnge+eNcHb5fQoJymGXerJEhF/89t/b2ZpQSU//+JkJmcM93Y5Pco+GLJ8+w1XxFfVNLbxjUc/ITwshDsW9G8e1lDLToympLqp27X4fIUj/4vGmKeBj4FcY0ypMeY6Jx5HRAbfEx/v4OGPtnPtKaO5cs4ob5fTKwd6snz9U62IL2rtcPFfi1ZRVtPM/VfNPOpODb4mOymG+tYOapvbvV3KUTl1duFlTtyviDjrhVWl/N+rmzhrUio/PX+yt8vptcSYcGIjQinR5HeRPmls7eB7i9eycnvnGcR5o5O8XVKvZXeZJpAQE+HlarqnvQtFAlRjawfbqxqJiwojPT76mGvUtLS7+MXLG3k2v4TZY5K487LphPawwbMv+WwSrEKWBC9rLeV1rVTUt5AeH03ysIhjLvi7tbyeGxatoriqkZ+ef5xPn0HcnezEz3qwp2b1vDm1NyhkiQSQ2uZ27llSyOsb9h4ydGYMZCVGMyMnkRk5iWQnRZMQE0Fzm4ulBRW8sXEvJdXNfPvMcdx6zkS/mI9xuOykGHbtU8iS4LOhrJa/vr2V/J01hwydRYaFMGlkHDNGJTItK56UYVEkxISzraKed7dU8vamvQyLDGPRdbM5ZbzvrjV1NNlJnYsa+3IPtkKWSACw1rJo+U7+8vZW9je3c9akNL46M4vxqcOob+2grKaZreX1LC/ex8uf7j7kthGhIcwem8RvLpzKGRP990zf7MQYPtxWhbV2ULbrEfF1VQ2t3Pb6Fl5YXUpiTATnTU1n0sg40oZHUV7Xwq7qJjaU1fL0yl088pH7kNsmD4vkghMy+d7nJpI63DfXwupJXFQ4iTHhPj0XUyFLxM+1u9z8+IX1vLC6lDljk/jp+ZOZktl917m1lr11LeytbWF/UzsYmDU6qce9CP1BTlI0ze0u9jW2kezD22yIDIYdVY1c9fAKymtbWXjaWG6cP/6oW161u9zs3NfIvoY2aprayUiIYkpGPCF+NCXgaHJ8fJqA/7+zigSxprbO7S+WFFRyy9kTufms8cfsxTHGkB4fPah7B/qK7C5nGCpkSSBbX1rLNY+sxG0ti791MidmJxzz+PDQEManxjE+dYgKHEJZSTFsLKv1dhlH5X8TL0QE6Jysfu0jn/De1kp+e9EUvnv2hKAeJsvRWlkSBNaV7ueyB5YTFR7K8zfM7TFgBbqcpBjK9jfjcvvmWlkKWSJ+qN3l5qanVrNyRzV//dqJXDHbP9azclJWokKWBLbCigaueeQTEmLCef6GkxmXMszbJXlddmIM7a7OaRC+SCFLxM+43ZYfPb+O/2yu4FcXTPG7066dEh0RSkpcpLbWkYBUtr+Zqx5aQYiBRdfNDsgh//7w9R5shSwRP2Kt5df/3sSLa8q49ZyJXOUnK7IPlezEaJ8+00ikP/Y1tHLVQytoaOngsW/MYnRyrLdL8hkHlnHw1de9QpaIH7nr3UIe+WgH154ymu/MH+/tcnxOTlKMT6+ZI9JX9S3tXPPIJ5TVNPPQNSdxfIZvLrrpLRkJ0YQYKFXIEpGBePSj7dz+9lYunp7Jz86fHNST3I8mOymG3fubaXe5ez5YxMc1tnaw8PFVbN5Tx71XzmDWGP/Z8maohIeGkB7vuz3YWsJBxMe53Zbb3tjC/e8Xc87kNP5wybSAWN/GCdlJMbgt7NnfQs4I/9jkVqQ7e2qbue7RfLbsreMvl57I/Elp3i7JZ3X2YPvmXEyFLBEfVtPYxo9eWMdbm8q5+uRR/OyLk/1yy5uh0nUvM4Us8Verdlbz7SdX09jq4uFrTuLM3ABc4GoQZSdFs6Sg0ttldEshS8QH1bW08/CH23nog+00tnXwf1+azDWnjPF2WT4vK7FzEuzu/b75qVbkWLbsreMvb23lrU3lZCZE8/wNs5g0cri3y/J5mQkxVNa30trhIjIs1NvlHEIhS2SIVDW08u91eyiqbGBvbQu1ze1EhIUQFR5KZFgIkWGhdLjdbN5TR2FFA24L5x4/kls/N5GJaXHeLt8vpA2PwhjYXauQJd5nrWVDWR3/2VzOntpm9ta10t7hJjI8hKiw0IP/Vja0sr6slsr6VuIiw7j1nIl849QxDAuA7a6GQnpC596L5bWtPteDrWdQxGEbymq5691C/rO5nA63ZXhUGGnDo0iMiaC+pYOqhjZaO1y0tndO1p40Mo5zp6RzznFpTM3SmUR9EREWQsqwSPVkiVe53ZbF+SU8umwHW/bWE2IgJS6S1LgoosJDaGzsoLXdTWuHi5Z2N8OjwzhtQjJTM+O5aHomCTER3m6CX8lM6OzBLtvfrJAlEiw6XG7uXVrEHe9sIy4qjGtPGc2ledlMUK+Uo9ITotlT65urP0vg21PbzA+eW8eHhVVMyRzOby6cwpdPzDjq5s0ycOnxnT1Ze3ywB1shS8QB+xpaWfjEKlbtrOFLJ2Tw6wuO16fTIZIRH8XW8npvlyFBaGlBBTc/vYZ2l+V3F03lslnZWmplCBxY/d4Xe7AVskQG2YHtL8pqmrljwYna9maIZSREs7SgEmut/sDJkHll7W5uffZTJqbFcc8VM7Qq+xCKjgglKTaC3T7Yg62QJTKIiiobuOrBFdS3drDo+tmcNFqLBw619Pgomttd1Da3q/dQhsSi5Tv52csbOGl0Eg9enaehQS9Ij49ijw/2ZGnBHZFBUljRwIL7l9PmcvPMwjkKWF7SdRKsiNMeW7aDn/5zA/NzU3n8G7MUsLwkIyGa3ft9rydLIUtkEBRVNnDZA8ux1vL0N+dofzEvSveErD0++IYrgeXxj3fwi1c28rnJadx75Uyiwn1rjaZgkhEf5ZNLtyhkiQzQ1vJ6Lrt/OW53Z8DS2YPeleFZM8cX33AlcDzy0XZ+/vJGzj4ujbsun0FEmP6celNGQjT1LR3Ut7R7u5RD6LdCZADyd1Rzyb3LAHh6oQKWL0iOjSQ81Pjk0IH4P2stf3pzC798dROfPz6Ne65QwPIFB3uwfWzyu34zRPrp9fV7uOLBFYwYFskLN8zVquw+IiTEkB4f7ZOnc4t/a2l38cPn13H3kiIum5XNPVfMVMDyEZmeHmxfm4upswtF+mh/Uxu/fHUTL60p44SseB665iSSh0V6uyzpIj0+yicXJhT/tWpnDT94bi3FVY3cPH88t5wzUUuE+JADa2X52lxMhSyRXiqpbuL5VaU8tXIXNY1tfPesCdw4b7w+yfqgzIRoVmyv9nYZ4ufcbsvHxft4Lr+EV9buJj0+mievn80p45O9XZocJjUukhDjewuSKmRJ0Gt3uVlfVsuGslrqmttpaHXR1uHGYml3udm9v4WS6ia2VTRgDJwyLpkff2ESUzJ1BqGvSk+IYm9dCy63JTREvQ1ypP1NbazcXs2u6ibqWzpoauvA5QaLpb6lg9KaJooqGzs3bY4K45q5Y7jlnAnEaYkGnxQWGsLI4b53hqFClgStgr313PHOVpYWVNLU5jp4eURoCBFhIRggNLRzfs+Y5FgunJ7JhdMzD67DJL4rPT4al9tSWd/KSM++ZiJut+XVdbt54INiNu6uw9rProsKDyEspPN1HxMZSnZiDKeOT2bepFQ+NzlNyzP4gfQE35uLqZAlQaeyvpXfv76Zl9aUMSwijItnZDJ3XDIzchJJjA0nMkxvpv6u64KkClkCsKywil/9axNb9tYzaWQct5w9kTljR5A7Mo5hkWHq8QwAGQnRrCvd7+0yDqGQJUFl9a4abli0ipqmdhaeNpZvnTGOxFhtvRJo0j1nGnVOfk/0bjHiVdZa7llaxJ/fKiA7MYY7FpzIl6ZlEKJQFXAy4qN4c0MLbrf1mefXkZBljDkXuAMIBR601t7mxOOI9MWzn+ziZ//cSFp8JP/89ilMzhju7ZLEIRmenixfGzqQodXY2sH3Fq/ljY17ueDEDG67eBrREeqpDlQZCdG0udzsa2wjJc43zvge9JBljAkF7gbOAUqBT4wxr1hrNw32Y4n01j1LC/njGwWcNiGZv182XRsHB7jhUeEMiwzTgqRBrK6lnWsf+YQ1u2r46fnHcd2pY7TkQoBL90wN2L2/2WdClhPnns8CCq21xdbaNuAZ4AIHHqdPOlxu3G7b84ESUKy1/OWtAv74RgFfPiGDh685SQErSGQkRKknK0jVNLZxxQMrWFe6n3uumMH1p41VwAoCGQdXffed170TISsTKOnyc6nnMq95c+Necn/2BsVVDd4sQ4aYtZbf/nszd75byNfysvnr104kPFRrWgWL9Phon9tiQ5xXUd/CgvuXs7W8nvuvyuPcKeneLkmGyGfTBHznde+1ie/GmIXAQoCRI0dy++23O/ZYu9ujcblHcedDTzIqotGxxxHfYS0sbUhjQ0si06KrSdmxhb/99W1vlyVDqKo+jeLWOEffW8S3NLjCeKk2m0ZXOOfHl7L635tY/W9vVyVDxVqYEZ3Chg9e5/YVvtGbZawd3CE0Y8zJwP9Zaz/v+fknANba3x/tNnl5eTY/P39Q6+iqbH8zp9z2LrddPJUFs3IcexzxDW0dbn784jpeXF3GDWeO44efz9VQQRD6+zvbuP3trWz59bla4ygIFFc28PWHV1Lb1M6j3ziJmaOSvF2SBDBjzCprbV5PxznRk/UJMMEYMwYoAxYAlzvwOL2W5qPL7cvgq6hr4YYnV7NqZw3fO2ciN80fr4AVpNI9Qwd7a1sYnRzr5WrESe9uKee7z3xKeGgIT31zDlOztBuD+IZBD1nW2g5jzE3Am3Qu4fCwtXbjYD9OX4SFhpAaF8Vuzc8IWNZa3t9WxQ+eW0t9Swd3Xz6D86dpLkYwy0j47EwjhazA1Nzm4p6lhdy1pJDJ6cP5x1UzyUqM8XZZIgc5MifLWvsa8JoT991fOtMoMFlrWb2rhtvf2sqyon2MHhHD49fNYtJIrYEV7DLiPZNg9eEq4DS3uXhpTRl3vLOV8rpWLp6Rye8umqphYfE5QbPie3pCNJt213m7DOmD6sY2du5rpLSmmdrmdqy1uC00tnXQ2NrB9qpGlhdXU93YxojYCH7xpclcPjtH2+IIwMHtdPThyn+43ZbSmmZKapoo299Ma4cbrKXdZWls7aC2uZ21pfv5tGQ/7S7LzFGJ3LlgOrPHjvB26SLdCpqQlZkQzX82lWOt1RwdH9bY2sG/1+/h+fxSVu6oPupxIabzFP15uanMGZvEF6amMywyaH6dpReiwkNJHhbhU2vmSPe2VzXy/KoSXlxddsxlNyLDQpiUPpxvnDqGMyakcPK4EXo/F58WNH+V0uOjaO1wd/Z6DPONlWDlUP/ZVM5PXlpPZX0rY5Nj+d45E5mcMZysxBgSY8IxxhBiICYijKjwEL25So8yEqIp86E1c+RQLe0u/vL2Vh74oBgDnD4xhe+eNYFRI2LJTIgmKiIEgyE81BAbGaZ17sTvBE3I+mwl2BaFLB/T0NrBL17eyAurS5k0Mo67LpvOrDFJClEyYOnxURRXam08X7S+tJb/fnYNRZWNXDYrh++eNeHgEK9IoAiekOWZBFu2v5kpmTq911dUNbTyjUc/YePuOm6eP56b5k8gIkyfVmVwZCRE8+G2Kk0T8DFLCir49qLVJMSE8/g3ZnH6xBRvlyTiiKAJWeme07n3aBKszyipbuLrD69kT20zD3x9JvMnpXm7JAkwGfHRNLa5qGvpID463NvlCPDSmlJ+8Nw6ckfG8ei1s3xmI18RJwRNyBoRG0FEWIhO5/YRO6oaWXD/cprbXTx5/WytziyO6LphrEKW9z21Yhf/89J65o4bwT+umklclJ4TCWxBMy5jjCEjXmtl+YIDAavN5ebZ/5qjgCWOSU/QMg6+4kDAmj8plUeuPUkBS4JC0IQs6PxUe6zTg8V5O6oaueyB5bR2uHjqm7O1aKg46uCCpDrD0KueXtkZsOblpnDvlTO0lp0EjaAKWenx0fpE60WbdtdxyX0f09Lu4snr5yhgieNS4iIJCzF63XvRP94r4icvrufM3BTuvXKmApYElaCZkwWdW+uU17XQ4XITpvVWhlT+jmquffQThkWG8czCkxmfGuftkiQIhIYY0oZHqQfbC6y1/PHNAu5dWsQXp6Xzl0tP1JnDEnSCLGRF47ZQXt9KpmdCrDjL5bY88EExt79VQHZiDE9cP1v/9zKkMhOiKVNP1pCqqGvhhy+sY2lBJZfPzuHXF0whNERLaEjwCaqQlR7/2TIO+kPvLGst60pr+e2/N7NyRzXnHj+S3108laTYCG+XJkEmPSGK1btqvF1GUGhpd/Hq2t387rXNNLW5+OWXj+frJ4/SGmUStIIqZB0IVmX7m8nzci3+qqaxjY276yivayEyPISosNDOf8ND6XBZKupbKK1p5tW1u9myt564yDBu/+oJXDwjU2+04hUZCdG8tn4PbrclRL0pfeZ2W3ZVN7FpTx1tHW6iwkOIDAslMiyEyPAQ6lo6qKhrYePuOl7+dDe1ze1My4rnL5eeyPjUYd4uX8SrgipkpXfZWkd6r93lZnF+CQ+8X8yOfU29us20rHh+c+EUvnxiBsN1qrZ4UUZ8FO0uS1VDK6nDtW1Lb+2tbeHv727jlU93U9/a0ePxEWEhnHv8SC7Ny2buuBEKtCIEWcgaFhnG8KgwnWnUB+9sLueXr25iV3UT03MSWDArhykZ8WQmRtPuctPS7qK1w01ruxtjIG14JKnDoxSsxGdkdOnBVsjqWVuHm9vfLuDRj3bgtpYvn5DJSaMTOT4jntjIUFo7Pnvdt7S7GBYZRtrwKNKGR2liu8hhgipkQecbrkJWz6y1/OP9Ym57fQuTRsbx8DV5zMtN1ZCf+J30LmtlTc/xcjE+bn9TG//1xCpWbK/m4hmZ3HL2RLKTYrxdlojfCrqQlZUYTWmNQtaxdLjc/O9LG3g2v4QvTkvnz189gahwrW0j/ikrqTNkldb0bqg7WO2oauTaRz+hrKaZv33tRC6cnuntkkT8XhCGrBg+LtqHtVa9Mt1wuy0/emE9L6wu5aZ547n1nImaWyF+bXhUOPHR4ZQoZB3V7v3NXP6AZy/Rb87mpNHa6kpkMATdAHpOUgyNbS6qG9u8XYrPsdby29c288LqUm45eyLf/3yuApYEhJykGHZVqwe7O9WNbVz10ArqWzp44joFLJHBFHQh68D8ghINGR7h7iWFPPThdq6ZO5qbzxrv7XJEBk12UjSl1erJOlxDawfXPLKS0ppmHrrmJKZkxnu7JJGAEnQhK8cTsnbpDfcQTyzfyZ/f2spF0zP5+RcnayhVAkp2UgylNc243dbvRRWzAAAgAElEQVTbpfiMlnYX33wsn42767jnihnMGqMeLJHBFnQhKyuxcxJsiULWQa+u3c3PX97A2cel8sdLpmmIUAJOdmIMbS435fVaIw86T265+ek1fFy8j9u/egJnHZfm7ZJEAlLQhazYyDCSh0UoZHm8sWEPty7+lJNGJ3HX5TMI18bZEoAO9mD3cjHdQNbucvP959by1qZy/u9Lk3UWoYiDgvIvalZijM40AhYt38kNT65mamY8D16dp2UaJGBpLmanxtYOrn8sn39+upsfnpvLNaeM8XZJIgEt6JZwgM5PtWtKgnfD2OY2F397Zyv/eK+Y+ZNSufvyGURHKGBJ4MpMiMaY4J6LWVzZwC2L17K+dD+3XTyVBbO0MquI04IyZGUnRfPv9XvocLkJ8+Phsdqmdt7fVsmSggqKKhoYHh1OUmwEE9PimJ6TwAlZCcRGfvYUN7Z28NamvfzxjQL21Law4KRsfn3hFA0RSsCLCAshfXhUQJxhWFjRwNKCCt7bWklTm4vEmHBS4iKZmpnAzFGJjE8dRqhnXqW1lr11Ldz/fjFPfLyTqPBQ7r1yJp8/fqSXWyESHIIyZOUkxeByW/bUtvjtlhEvrSnlf1/aQFObi4SYcI7PGE5dczvbqxp5+dPdB49LHhZBZkI0NU3tBz/FT82M529fO5HZY0d4q3yRIZedFOPXPVlNbR389KUNvLimDIAJqcNIiYuktKaZ/J01PL2yBICwEENGQjRJsRHs2NfI/qZ2QgwsmJXDLWdPJCUu0pvNEAkqQRmyshM98zOqm/wuZLW0u/jlqxt5emUJs8Yk8aNzczkxO/HgJ1fo3H9sTcl+Nu2uo7SmidKaZrKSYrhkZhZTs+I5Y0KKziCUoJOdFMMH2yq9XUa/bC2v59tPrqaosoGb5o1nwaxsshI/e++y1rJjXxOrd9ZQVNlAaU0z+xpb+cKUdCaNjOOU8cmMTx3mxRaIBKfgDFld1sqa6+Va+qLd5eabj+fzwbYqvn3mOG49Z2K3w50JMRHMy01lXm6qF6oU8U05STGU17XS0u7yq5M8tpbX85V7lhEZHsKi62ZzyvjkI44xxjAmOZYxybFeqFBEjiYoQ1Z6fBShIcavzjC01vLzlzfywbYq/vCVqXztJE1aFemL7IMbRTf7Ta9OZX0r1z7yCVERobz07bmH9F6JiO8b1BnPxpivGmM2GmPcxpi8wbzvwRQWGkJmQrRf7WX2wAfFPL1yF98+c5wClkg/HFgry1/WyGtpd/HNx/PZ19jKQ1fnKWCJ+KHBPq1sA3Ax8P4g3++gy06K9ps32w+3VfH717dw/tR0vv+5XG+XI+KXDs7F9JMe7J/9cwNrS/dzx4LpTMtK8HY5ItIPgxqyrLWbrbUFg3mfTslJivGLkLWvoZVbFn/K2ORY/vRVbXkj0l8pcZFEhoX4xarvL39axnOrSrnxzPFabkHEjwXtAklZiTHsa2yjsbXD26UclbWW7z+3ltrmdv5+2QxiIoJyCp3IoDDGkJ3k+7s97NrXxE9f2sCMnAT+++wJ3i5HRAagzyHLGPMfY8yGbr4u6OP9LDTG5Btj8isrh/606oPzM3z4Dffhj3awpKCS/z3vOCZnDPd2OSJ+LycpxqfnYrZ1uLn5mTVg4I4F0/16sWQR6cfZhdbaswfjga219wP3A+Tl5dnBuM++GD2i81Tn7ZWNTBo5uAHGWkttczsJMRH9vo/8HdX8/rXNnH1cGl8/edQgVicSvEaNiOHjon243XbQh95b2l24rR1Qj/PvXtvMpyX7ufvyGX63hp+IHClox5/Gpw7DGCgor+cLU9MH5T6ttXywrYo/v1XAutJacpJiOHnsCC49KZuZoxJ7fT+V9a3c+NRqMhOjuf3SEzBG87BEBkNuWhzN7S5Ka5rJGTE4Iaa5zcWjy3Zw33tFNLZ2cEJ2AqeMT+bauaNJjO39B62XPy3j0WU7uO7UMZw/bXDek0TEuwZ7CYeLjDGlwMnAv40xbw7m/Q+m6IhQRiXFULC3flDur93l5rrH8vn6wyvZ19DGd8+awKSRcby2YQ+X3LeM3/xrEy3trh7vp63DzXeeXk1tczv3XTmT+OjwQalPRGDiyDgAtuytG5T727S7jtP/tIQ/vLGFmaMSWXj6WNzWcte72zjnr+/z1sa9vbqfLXvr+PEL6zlpdCI//sKkQalNRLxvUHuyrLUvAS8N5n06KXdkHAXlgxOy7l5SyLtbKvjB53O5/rQxRIZ1rijd2NrB71/fzIMfbufdLRX8+dITmJHTfa9WQ2sHNyxaxfLiav5y6Qkcl655WCKDaWJaZ8jaWl7P5wZ41l5Lu4vvPrMGAzz3rZM5aXTSwes27a7je8+tZeETq7h4eia/+NLxxMd0/4Fp9a4arnv0E+Kiwrj78hnasF0kgAT1qzk3LY4dVY296mE6lrUl+/n7u4VceGIGN84bfzBgAcRGhvGbC6ey6LrZtHa4ueTeZfz+9c1HPGZ5XQtf+8fHLCvax58umcbFM7IGVJOIHGlYZBhZidEUlDcM+L7+/GYB2yoa+NNXTzgkYAFMzhjOyzeews1nTeDltbs556/v8c7m8iPu4+1N5Vz+wHKGR4fz3LdOJnV41IDrEhHfEbRzsgByRw7HbaGwooEpmfH9uo+Wdhe3LP6UlGGR/PKCKUc97tQJybzx36fxu9c284/3inlq+S7mjh/BlIx4VmyvZnnxPsJDQ3jw6jztOSjioEkj4ygY4HDhx0X7eOij7Vw5J4czJqZ0e0xEWAi3njORz01O43uL13LdY/mMHhHD6RNTiI4I5e1N5RRXNjItK56HrzmJ5GGRA6pJRHxPkIeszv3LCvbW9ztk3fdeEcWVjSy6bnaP86fiosL5/cXT+PIJmbz8aRnvb63kzY3ljE2O5frTxnLJzCy/2VNNxF9NTItjaUElbR1uIsL63pnvclv+56X1jEqK4X/OO67H46dkxvPKd05hcX4pS7ZU8Fx+Ke0uN3PGjuCauaO5ZGaW1sATCVBB/coePSKWiNAQtvZzXlZzm4vHlu3g7OPSOHVCcq9vd/K4EZw8bgTWWvY3tffpDCQRGZjckXF0uC3FVQ39Wr7l7U172V7VyD1X9H6B4MiwUK6aM4qr5oyitcNFh8sSGxnUb78iQSGo52SFhYYwLnUYW/p5huELq0upaWrnm6eN6dftjTEKWCJDLNdzhmF/zyx+4IPtZCdF93u7m8iwUAUskSAR1CELOudn9Kcny+22PPzhdqZlxTNrTFLPNxARnzA2eRhhIaZfIWv1rhpW7azhG6eMIVT7iIpID4I+ZE1Mi2NPbQu1Te19ut07Wyoormrk+tPGarFQET8SERbC2JTYfn24evCDYoZHhXFpXrYDlYlIoAn6kDXJM3SwtaJvb7gPfFBMZkI0500Z2Fo7IjL0ckcO7/M0gZLqJt7YsJfLZ4/ScJ+I9ErQh6zPVoDu/Rvu5j11rNxezTVzR2sDVxE/lJs2jNKaZhpaO3p9m0XLd2KM4Zq5o50rTEQCStAnhIz4KOIiw9jah5D1zMpdRISGcMlMLRgq4o9yPWcVbuvlkGFrh4vnVpVy9nGpjIzXgqEi0jtBH7KMMUwcGcfmPb1bnLC5zcWLa8r4wtSROjNQxE/lerbX2byndyHr7U3lVDe2cdmsHCfLEpEAE/QhCyBvdCKfluynrqXnye+vrd9DfUuH3mxF/Fh2UjRpwyP5sLCyV8c/s7KEzIRoTpvQ/eruIiLdUcgC5uem0uG2fLitqsdjn165i7HJsczWsg0ifssYw7zcVD7YWkW7y33MY3fua+TDwioWnJStZRtEpE8UsoCZoxIZHhXGu1sqjnnc1vJ68nfWsGBWtpZtEPFz8yalUt/awSc7qo953DOflBAaYviqlm0QkT5SyKJz5ffTJ6awtKACt9se9bhFy3cSHmr4ygxNeBfxd6eOTyYiNIQlx/hw1dLu4rn8EublasK7iPSdQpbH/EmpVDW0sb6sttvrK+tbefaTEi6ansmIYZFDXJ2IDLbYyDBmj03inWOErOfyS6hqaOP6fm6dJSLBTSHL44yJKRjDUYcMH/5oO20uN986Y9wQVyYiTpmXm0pxZSM79zUecV27y8197xUzc1Si5mCKSL8oZHmMGBbJidkJLCk4MmTVNrfzxMc7OW9qOmNThnmhOhFxwvxJqUD3H65e+XQ3ZfubuXHeOM3BFJF+UcjqYn5uKutKa6mobznk8ic+3kFDawc3njneO4WJiCNGJ8cyNjn2iJDldlvuWVrIpJFxzMtN9VJ1IuLvFLK6OOf4NAB+86/NuDwT4Euqm3jow+3Mn5TK5Izh3ixPRBxwzvFpfFRYxVsb9x687MmVuyiqbOTGeePViyUi/aZdTruYNHI4Pzp3En94YwtxUWFcMjOLbz6ej9vCDz6f6+3yRMQB35k/gRXF1dz01BoeufYkVu+s4fa3tzJ33AjOm5ru7fJExI8Za4++ZMFQycvLs/n5+d4u46A/vLGFe5cWEWIgMzGaR66ZxfhUzcUSCVT7m9pYcP9ytpbX47Zw0fRMbvvKVCLDQr1dmoj4IGPMKmttXk/HqSerGz/8fC5ua9m0u46/XHoiKXFaskEkkCXERPD4dbO48cnVnDo+hZvP0jChiAycerJERERE+qC3PVma+C4iIiLiAIUsEREREQcoZImIiIg4QCFLRERExAEKWSIiIiIO8ImzC40xlcBOhx8mGahy+DF8WTC3P5jbDsHdfrU9eAVz+4O57TA07R9lrU3p6SCfCFlDwRiT35vTLQNVMLc/mNsOwd1+tT042w7B3f5gbjv4Vvs1XCgiIiLiAIUsEREREQcEU8i639sFeFkwtz+Y2w7B3X61PXgFc/uDue3gQ+0PmjlZIiIiIkMpmHqyRERERIZMQIQsY8y5xpgCY0yhMebH3VwfaYx51nP9CmPM6C7X/cRzeYEx5vNDWfdg6EXbbzXGbDLGrDPGvGOMGdXlOpcx5lPP1ytDW/ng6EX7rzHGVHZp5/VdrrvaGLPN83X10FY+cL1o+1+7tHurMWZ/l+v8+rk3xjxsjKkwxmw4yvXGGHOn5/9mnTFmRpfr/P1576ntV3javN4Ys8wYc0KX63Z4Lv/UGJM/dFUPnl60/0xjTG2X3++fd7numK8ZX9eLtv+gS7s3eF7nSZ7r/Pq5N8ZkG2OWeP6ebTTGfLebY3zvdW+t9esvIBQoAsYCEcBaYPJhx3wbuM/z/QLgWc/3kz3HRwJjPPcT6u02DXLb5wExnu9vONB2z88N3m7DELT/GuCubm6bBBR7/k30fJ/o7TYNZtsPO/47wMMB9NyfDswANhzl+vOA1wEDzAFWBMLz3su2zz3QJuALB9ru+XkHkOztNjjc/jOBf3VzeZ9eM7741VPbDzv2S8C7gfLcA+nADM/3ccDWbt7vfe51Hwg9WbOAQmttsbW2DXgGuOCwYy4AHvN8/zxwljHGeC5/xlrbaq3dDhR67s9f9Nh2a+0Sa22T58flQNYQ1+ik3jz3R/N54G1rbbW1tgZ4GzjXoTqd0Ne2XwY8PSSVDQFr7ftA9TEOuQB43HZaDiQYY9Lx/+e9x7Zba5d52gaB95rvzXN/NAN5v/AJfWx7oL3m91hrV3u+rwc2A5mHHeZzr/tACFmZQEmXn0s58j/+4DHW2g6gFhjRy9v6sr7Wfx2dKf+AKGNMvjFmuTHmQicKdFhv2/8VT9fx88aY7D7e1lf1un7PEPEY4N0uF/v7c9+To/3/+Pvz3leHv+Yt8JYxZpUxZqGXahoKJxtj1hpjXjfGHO+5LGiee2NMDJ0h4oUuFwfMc286p/xMB1YcdpXPve7DhuJBxPuMMVcCecAZXS4eZa0tM8aMBd41xqy31hZ5p0LHvAo8ba1tNcb8F509mvO9XNNQWwA8b611dbksGJ77oGaMmUdnyDq1y8Wnep73VOBtY8wWT+9IIFlN5+93gzHmPOCfwAQv1zTUvgR8ZK3t2usVEM+9MWYYneHxv621dd6upyeB0JNVBmR3+TnLc1m3xxhjwoB4YF8vb+vLelW/MeZs4H+BL1trWw9cbq0t8/xbDCyl85OBP+mx/dbafV3a/CAws7e39XF9qX8Bhw0bBMBz35Oj/f/4+/PeK8aYaXT+vl9grd134PIuz3sF8BL+NT2iV6y1ddbaBs/3rwHhxphkguS59zjWa95vn3tjTDidAetJa+2L3Rzie6/7oZj45eQXnb1xxXQOhxyYzHj8YcfcyKET3xd7vj+eQye+F+NfE9970/bpdE72nHDY5YlApOf7ZGAb/jcJtDftT+/y/UXAcs/3ScB2z/9Douf7JG+3aTDb7jluEp0TXk0gPfee2kdz9MnP53PoBNiVgfC897LtOXTOL5172OWxQFyX75cB53q7LQ60f+SB33c6g8Quz+9Br14zvv51rLZ7ro+nc95WbCA9957n8HHgb8c4xude934/XGit7TDG3AS8SefZIw9bazcaY34F5FtrXwEeAp4wxhTS+cu3wHPbjcaYxcAmoAO40R46pOLTetn2PwHDgOc65/qzy1r7ZeA44B/GGDedPZq3WWs3eaUh/dTL9t9sjPkync9vNZ1nG2KtrTbG/Br4xHN3v7KHdq37tF62HTp/15+xnncaD79/7o0xT9N5FlmyMaYU+AUQDmCtvQ94jc4zjQqBJuBaz3V+/bxDr9r+czrnnN7jec132M7NctOAlzyXhQFPWWvfGPIGDFAv2n8JcIMxpgNoBhZ4fv+7fc14oQn91ou2Q+eHybestY1dbhoIz/0pwFXAemPMp57L/ofODxU++7rXiu8iIiIiDgiEOVkiIiIiPkchS0RERMQBClkiIiIiDlDIEhEREXGAQpaIiIiIAxSyRERERBygkCUiIiLiAIUsEREREQcoZImIiIg4QCFLRERExAEKWSIiIiIOUMgSERERcYBCloiIiIgDFLJEREREHBDm7QIAkpOT7ejRo71dhoiIiEiPVq1aVWWtTenpOJ8IWaNHjyY/P9/bZYiIiIj0yBizszfHabhQRERExAEKWX7ovveKWFZUdchly4qquO+9Ii9VJCIiIofrMWQZYx42xlQYYzZ0uSzJGPO2MWab599Ez+XGGHOnMabQGLPOGDPDyeKD1bSseG56as3BoLWsqIqbnlrDtKx4L1cmIiIiB/SmJ+tR4NzDLvsx8I61dgLwjudngC8AEzxfC4F7B6dM6WruuGTuunw6Nz21hr+8VcBNT63hrsunM3dcsrdLExEREY8eQ5a19n2g+rCLLwAe83z/GHBhl8sft52WAwnGmPTBKlY+M3dcMlfOzuHOdwu5cnaOApaIiIiP6e+crDRr7R7P93uBNM/3mUBJl+NKPZcdwRiz0BiTb4zJr6ys7GcZwWtZURWLVuzi5vnjWbRi1xFztERERMS7Bjzx3VprAduP291vrc2z1ualpPS41IR0cWAO1l2XT+fWz+UeHDpU0BIREfEd/Q1Z5QeGAT3/VnguLwOyuxyX5blMBtG60tpD5mAdmKO1rrTWy5WJiIjIAf0NWa8AV3u+vxp4ucvlX/ecZTgHqO0yrCiD5FtnjDtiDtbcccl864xxXqpIREREDtfjiu/GmKeBM4FkY0wp8AvgNmCxMeY6YCdwqefw14DzgEKgCbjWgZpFREREfF6PIctae9lRrjqrm2MtcONAixIRERHxd1rxXURERMQBClkiIiIiDlDIEhEREXGAQpaIiIiIAxSyRERERBygkCUiIiLiAIUsEREREQcoZImIiIg4QCFLRERExAEKWSIiIiIOUMgSERERcYBCloiIiIgDFLJEREREHKCQJSIiIuIAhSwRERERByhkiYiIiDhAIUtERETEAQMKWcaYW4wxG40xG4wxTxtjoowxY4wxK4wxhcaYZ40xEYNVrIiIiIi/6HfIMsZkAjcDedbaKUAosAD4A/BXa+14oAa4bjAKFREREfEnAx0uDAOijTFhQAywB5gPPO+5/jHgwgE+hoiIiIjf6XfIstaWAX8GdtEZrmqBVcB+a22H57BSIHOgRYqIiIj4m4EMFyYCFwBjgAwgFji3D7dfaIzJN8bkV1ZW9rcMEREREZ80kOHCs4Ht1tpKa2078CJwCpDgGT4EyALKuruxtfZ+a22etTYvJSVlAGWIiIiI+J6BhKxdwBxjTIwxxgBnAZuAJcAlnmOuBl4eWIkiIiIi/mcgc7JW0DnBfTWw3nNf9wM/Am41xhQCI4CHBqFOEREREb8S1vMhR2et/QXwi8MuLgZmDeR+RURERPydVnwXERERcYBCloiIiIgDFLJEREREHKCQJSIiIuIAhSwRERERByhkiYiIiDhAIUtERETEAQpZIiIiIg5QyBIRERFxgEKWiIiIiAMUskREREQcoJAlIiIi4gCFLBEREREHKGSJiIiIOEAhS0RERMQBClkiIiIiDlDIEhEREXGAQpaIiIiIAwYUsowxCcaY540xW4wxm40xJxtjkowxbxtjtnn+TRysYkVERET8xUB7su4A3rDWTgJOADYDPwbesdZOAN7x/CwiIiISVPodsowx8cDpwEMA1to2a+1+4ALgMc9hjwEXDrRIEREREX8zkJ6sMUAl8IgxZo0x5kFjTCyQZq3d4zlmL5A20CJFRERE/M1AQlYYMAO411o7HWjksKFBa60FbHc3NsYsNMbkG2PyKysrB1CGiIiIiO8ZSMgqBUqttSs8Pz9PZ+gqN8akA3j+rejuxtba+621edbavJSUlAGUISIiIuJ7+h2yrLV7gRJjTK7norOATcArwNWey64GXh5QhSIiIiJ+KGyAt/8O8KQxJgIoBq6lM7gtNsZcB+wELh3gY4iIiIj4nQGFLGvtp0BeN1edNZD7FREREfF3WvFdRERExAEKWSIiIiIOUMgSERERcYBCloiIiIgDFLJEREREHKCQJT7hvveKWFZUdchly4qquO+9Ii9VJCIiMjAKWeITpmXFc9NTaw4GrWVFVdz01BqmZcV7uTIREZH+GehipCKDYu64ZO66fDo3PbWGK2fnsGjFLu66fDpzxyV7uzQREZF+UU+W+Iy545K5cnYOd75byJWzcxSwRETErylkic9YVlTFohW7uHn+eBat2HXEHC0RERF/opAlPuHAHKy7Lp/OrZ/LPTh0qKAlIiL+SiFLfMK60tpD5mAdmKO1rrTWy5WJiIj0j7HWersG8vLybH5+vrfLEBEREemRMWaVtTavp+PUkyUiIiLiAIUsEREREQcoZImIiIg4QCFLRERExAEKWSIiIiIOGHDIMsaEGmPWGGP+5fl5jDFmhTGm0BjzrDEmYuBlioiIiPiXwejJ+i6wucvPfwD+aq0dD9QA1w3CY4iIiIj4lQGFLGNMFnA+8KDnZwPMB573HPIYcOFAHkNERETEHw20J+tvwA8Bt+fnEcB+a22H5+dSIHOAjyEiIiLid/odsowxXwQqrLWr+nn7hcaYfGNMfmVlZX/LEBEREfFJA+nJOgX4sjFmB/AMncOEdwAJxpgwzzFZQFl3N7bW3m+tzbPW5qWkpAygDBERERHf0++QZa39ibU2y1o7GlgAvGutvQJYAlziOexq4OUBVykiIiLiZ5xYJ+tHwK3GmEI652g95MBjiIiIiPi0sJ4P6Zm1dimw1PN9MTBrMO5XRERExF9pxXcRERERByhkiTjovveKWFZUdchly4qquO+9Ii9VJCIiQ0UhS8RB07LiuempNQeD1rKiKm56ag3TsuK9XJmIiDhtUOZkiUj35o5L5q7Lp3PTU2u4cnYOi1bs4q7LpzN3XLK3SxMREYepJ0vEYXPHJXPl7BzufLeQK2fnKGCJiAQJhSwRhy0rqmLRil3cPH88i1bsOmKOloiIBCaFLBEHHZiDddfl07n1c7kHhw4VtEREAp9CloiD1pXWHjIH68AcrXWltV6uTEREnGastd6ugby8PJufn+/tMkRERER6ZIxZZa3N6+k49WSJiIiIOEAhS0RERMQBClkiIiIiDlDIEpE+0VZBIiK9o5AlIn2irYJERHpH2+qISJ9oqyARkd5RT5aI9Jm2ChIR6ZlCloj0mbYKEhHpWb9DljEm2xizxBizyRiz0RjzXc/lScaYt40x2zz/Jg5euSLibdoqSESkdwbSk9UBfM9aOxmYA9xojJkM/Bh4x1o7AXjH87OIBAhtFSQi0juDtq2OMeZl4C7P15nW2j3GmHRgqbU291i31bY6IuJN971XxLSs+EPmli0rqmJdaS3fOmOcFysTEV80pNvqGGNGA9OBFUCatXaP56q9QNpgPIaIiFO0LIWIOGHASzgYY4YBLwD/ba2tM8YcvM5aa40x3XaVGWMWAgsBcnJyBlqGiEi/aVkKEXHCgHqyjDHhdAasJ621L3ouLvcME+L5t6K721pr77fW5llr81JSUgZShojIgGlZChEZbAM5u9AADwGbrbV/6XLVK8DVnu+vBl7uf3kiIkNDy1KIyGAbSE/WKcBVwHxjzKeer/OA24BzjDHbgLM9P4uI+KxAXZZC+0yKeFe/Q5a19kNrrbHWTrPWnuj5es1au89ae5a1doK19mxrbfVgFiwiMtgCdVkKTegX8a5BW8JhILSEg4iIMw4EK03oFxk8Q7qEg4iI+KZAm9CvIVDxJwpZIiIBLNAm9GsIVPzJgNfJEhER39R1Qv/cccnMGTfikJ/9kdY0E3+iniwRkQAVqBP6A20IFDQMGqgUskREAtS3zhh3RACZOy7Z7/djDLQhUNAwaKDScKGIiPiNQBwCBQ2DBir1ZImIiN8I1CFQCLxhUA2BKmSJiIgfCdQhUAi8YVANgWq4UERExOsCcRhUQ6DqyRIREfG6QB0GDbQh0L5ST5aIiIiXdTfcOXdcst+HksOHQOeMG+H3beoL9WSJiIjIoOs6BHrr53IPDh36+1yzvlDIEhERkUEXqEOgfWGstd6ugby8PJufnxkvO9IAAAdWSURBVO/tMkRERER6ZIxZZa3N6+k49WSJiIiIOEAhS0RERPyary58qpAlIiLSDV/9wz0Qgdgm8N2FTx0JWcaYc40xBcaYQmPMj514DF8TqL+4It4UiK+rQGwTBGa7fPUP90AEYpvg0IVP//JWgc8s5DroIcsYEwrcDXwBmAxcZoyZPNiP0xtD+aIP1F/cQHzjVJv8RyC+rgKxTRCY7fLVP9wDEYhtOsAXFz51oidrFlBorS221rYBzwAXOPA4PRrKF32g/uIG4hun2uQ/AvF1FYhtgsBul6/94R6oQGwT+Obej06s+J4JlHT5uRSY7cDj9Gio903q+ot78/zxAfGLG4h7T6lN/iVQX1eB1iYIzHYF4orlgdomX9z70WsT340xC40x+caY/MrKSsceZygTuy+m6MEQiJ961Cb/EYivq0BsEwReuwJxxfJAbBP48MKn1tpB/QJOBt7s8vNPgJ8c6zYzZ860TvmosNJO/9Vb9vY3t9jpv3rLflRY6ejjHLj/w3/2Z0P1fziU1Cb/EIivq0Bsk7WB2a57lxYeUf9HhZX23qWFXqpo4AKxTd4A5NveZKLeHNSXLzqHIIuBMUAEsBY4/li3cSpkDeWLPlB/cQPxjVNt8h+B+LoKxDZZG7jtEulOb0OWI9vqGGPOA/4GhAIPW2t/e6zjndpW5773ipiWFX/IsMmyoirWldZ2u+O5HCkQ/w/VJhERGYjebqujvQtFRERE+kB7F4qIiIh4kUKWiIiIiAN8YrjQGFMJ7HT4YZL/v717CZmqDuM4/v3la6hvF8MsTC1dhBQu0sQulkRmaIlFK4VatKnAQmsR1SZaBhHtglDLyAvmBSLEDJIui8y8hNfCTPQ1S6GLWYGXfi3mHxhYWufM/D3/eT4wvDPDu/g9HObMc87zP2eAZl+jemYl1lViTVBmXVFTc5RYV4k1QZl1lVbTNbaHnu2fzosmqxMkfX4u89OmKbGuEmuCMuuKmpqjxLpKrAnKrKvEms5FjAtDCCGEENogmqwQQgghhDbopibrtdwB2qTEukqsCcqsK2pqjhLrKrEmKLOuEms6q65ZkxVCCCGE0EnddCYrhBBCCKFjuqLJkjRN0peS9kh6JneeOkhaKOmwpO25s9RF0khJ6yXtlLRD0tzcmaqSNEDSZ5K+SDW9kDtTXST1k7RF0ru5s9RF0j5J2yRtlVTEz1BIGixphaTdknZJuiV3pqokjUnb6K/HUUnzcueqStKTaT+xXdJSSQNyZ6pK0txUz44SttF/Vfy4UFI/4CtgKtAHbARm296ZNVhFkiYDx4A3bY/NnacOkoYBw2xvlnQxsAm4v8nbSpKAXtvHJPUHPgHm2v40c7TKJD0FTAAusT0jd546SNoHTLBdzP18JC0CPrY9X9KFwCDbP+XOVZe0jz8I3GS73fdbbBtJw2ntH663/buk5cAa22/kTfb/SRoLLAMmAseBtcBjtvdkDdZB3XAmayKwx/Ze28dpbfD7MmeqzPZHwA+5c9TJ9iHbm9PzX4BdwPC8qapJP9h+LL3snx6NP7KRNAK4F5ifO0v4Z5IuBSYDCwBsHy+pwUqmAF83ucE6TQ8wUFIPMAj4NnOeqq4DNtj+zfZJ4EPggcyZOqobmqzhwIHTXvfR8C/ubiBpFDAO2JA3SXVprLYVOAy8b7vxNQGvAE8Df+QOUjMD6yRtkvRI7jA1GA0cAV5Po935knpzh6rZLGBp7hBV2T4IvATsBw4BP9telzdVZduB2yUNkTQIuAcYmTlTR3VDkxUaRtJFwEpgnu2jufNUZfuU7RuAEcDEdAq9sSTNAA7b3pQ7SxvcZns8MB2Yk8byTdYDjAdetT0O+BUoYl0qQBp/zgTezp2lKkmX0ZqyjAauAnolPZg3VTW2dwEvAutojQq3AqeyhuqwbmiyDvL3znlEei+ch9K6pZXAYturcuepUxrTrAem5c5S0SRgZlq/tAy4U9JbeSPVI51NwPZhYDWt5QZN1gf0nXb2dAWtpqsU04HNtr/PHaQGdwHf2D5i+wSwCrg1c6bKbC+wfaPtycCPtNZId41uaLI2AtdKGp2OemYB72TOFM4gLRJfAOyy/XLuPHWQNFTS4PR8IK0LMHbnTVWN7Wdtj7A9itbn6QPbjT7iBpDUmy64II3U7qY17mgs298BBySNSW9NARp7IckZzKaAUWGyH7hZ0qC0L5xCa11qo0m6Iv29mtZ6rCV5E3VWT+4A7Wb7pKTHgfeAfsBC2zsyx6pM0lLgDuBySX3A87YX5E1V2STgIWBbWsME8JztNRkzVTUMWJSugLoAWG67mFseFOZKYHXr+40eYInttXkj1eIJYHE6yNwLPJw5Ty1SIzwVeDR3ljrY3iBpBbAZOAlsoYy7pK+UNAQ4Acwp8MKLf1X8LRxCCCGEEHLohnFhCCGEEELHRZMVQgghhNAG0WSFEEIIIbRBNFkhhBBCCG0QTVYIIYQQQhtEkxVCCCGE0AbRZIUQQgghtEE0WSGEEEIIbfAnn4BxPmTvZ0gAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_signal_and_spectrum(time_space(), -1 * saw(time_space()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Square Wave\n", "\n", "Square waves are made of every other harmonic above the fundamental frequency. Again, the amplitude of each harmonic _n_ is _1 / n_." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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fx9N07/0+XNvKv/ZwARgTzvvXwR8AyhgMrDJic59Z3WfYq4TcKG57qbvDwPh9q5DL9Z9GvBlG9u7dL046ldn9W+176XAGic69zHABNPrQCCjjXu+w133ztry1byYt9a6HjAv5t3SbGCp6fXHwEyllDJtX661rtNaHwIyTZ/Xl3Raf631Wq11tenbjTStPOAMLDn37bkAWKW1LtFanwBWAbN6qZy9pav1nwt8YJOS2YDW+kegpINdZgPLdJONQLBSKgYnOPed1V1rvcFUN3Cua96S896entwvHEYX6+9s13ye1nqb6XUFsJ9T1492uOveWYMvSxbzbt5Ha90IlAFhFv6so+tqHW6j6anAzEcplaqU2qiUurw3CtiLLK37Vabm54+VUublr1zq3Ju6mgcBa1ps7svn3hLt/f84w7nvitbXvAa+U0ptVU1r7DqjM5RSO5VS3yilRpq2udR5V0r50RRc/LfFZqc596opfWg8sKnVWw533dtieSHhwJRSNwIpwDktNg/QWh9TSg0G1iildmutD9qnhL3iC+ADrXWdUupOmlpAZ9i5TPYwB/hYa21osc3Zz73LU0pNpyn4OrPF5jNN5z0SWKWUSjO1pjiLbTT9bleqphVXPgMS7Vwme7gU+Flr3bKVzCnOvVIqgKag8jda63J7l6czztryZcli3s37KKU8gCCg2MKfdXQW1UEpdS7wJ+AyrXWdebvW+pjp3yxgHU1PEn1Fp3XXWhe3qO/rwERLf7YP6Eod5tCq+6GPn3tLtPf/4wznvlNKqTE0/c7P1loXm7e3OO8FNK1a0tdSLTqktS7XWleaXn8NeCqlwnGR895CR9d8nz33SilPmgKv97TWn7Sxi+Nd97ZILLP1F00telk0damYkyhHttrnXk5OuF9hej2SkxPus+h7CfeW1H88TYmmia22hwDeptfhwAH6UAKqhXWPafH6CmCj6XUocMj0fxBieh1q7zpZu/6m/ZJpSrRVznLuW9RjIO0nXl/MyYm3m53l3FtQ9wSaclintNruDwS2eL0BmGXvuli57tHm33Wagots0++ARddLX/jqqP6m94Noygvzd6ZzbzqPy4BnO9jH4a57p+x21Fo3KqUWAv/j18W89yql/gGkaq1XAm8A7yilMmn6hZxj+tm9SqkVwD6gEbhXn9wt4/AsrP9TQADwUdM4A7K11pcBw4FXlVJGmlpGn9Ba77NLRbrBwrrfr5S6jKbzW0LT6Ee01iVKqX8CW0wf9w99cvO8w7Ow/tD0+75cm+5AJn363AMopT6gaWRbuFLqKPBXwBNAa/0KTWvMXkRTEFIN3GJ6r8+fewvq/hea8lpfMl3zjbppoeEo4FPTNg/gfa31tzavQA9YUPergbuVUo1ADTDH9Lvf5vVihyr0iAX1h6YHze+01lUtfrTPn3tgKnATsFsptcO07Y80PWw47HUvM9wLIYQQQtiQs+Z8CSGEEEI4JAm+hBBCCCFsSIIvIYQQQggbkuBLCCGEEMKGJPgSQgghhLAhCb6EEEIIIWxIgi8hhBBCCBuS4EsIIYQQwoYk+BJCCCGEsCEJvoQQQgghbEiCLyGEEEIIG5LgSwghhBDChiT4EkIIIYSwIQm+hBBCCCFsyMPeBWhPeHi4HjhwoL2LIYQQQgjRqa1bt2x588AAABKCSURBVBZprSMs2ddhg6+BAweSmppq72IIIYQQQnRKKXXE0n2l21EIIYQQwoa6HXwppd5UShUopfa02BaqlFqllDpg+jfEtF0ppZ5XSmUqpXYppSZYo/DiV6/8cJANB4tO2rbhYBGv/HDQTiUSQgghRFt60vL1NjCr1bZHgNVa60Rgtel7gAuBRNPXAuDlHhxXtGFMXBAL39/eHIBtOFjEwve3MyYuyM4lE0IIIURL3Q6+tNY/AiWtNs8GlppeLwUub7F9mW6yEQhWSsV099jiVFOGhPPC9eNZ+P52nv4unYXvb+eF68czZUi4vYsmhBBCiBasnfMVpbXOM70+DkSZXvcHclrsd9S0TVjRlCHh3Hh6As+vyeTG0xMk8BJCCCEcUK8l3GutNaC78jNKqQVKqVSlVGphYWEvlcx5bThYxLubsrl/xlDe3ZR9Sg6YEEIIIezP2sFXvrk70fRvgWn7MSC+xX5xpm0n0Vov0VqnaK1TIiIsmipDmJhzvF64fjwPnp/U3AUpAZgQQgjhWKwdfK0E5ptezwc+b7F9nmnU42SgrEX3pLCCXUfLTsrxMueA7TpaZueSCSGEEKIl1dQ72I0fVOoDYBoQDuQDfwU+A1YACcAR4FqtdYlSSgEv0DQ6shq4RWvd4QyqKSkpWiZZFUIIIURfoJTaqrVOsWTfbs9wr7We285bM9vYVwP3dvdYQgghhBDOQma4F0IIIYSwIQm+hBBCCCFsSIIvIYQQQggbkuBLCCGEEMKGJPgSQgghhLAhCb6EEEIIIWxIgi8hhBBCCBuS4EsIIYQQwoYk+BJCCCGEsCEJvoQQQgghbEiCLyGEEEIIG5LgSwghhBDChiT4EkIIIYSwIQm+hBBCCCFsSIIvIYQQQggbkuBLCCGEEMKGJPgSQgghhLAhCb6EEEIIIWyoV4IvpdRvlVJ7lVJ7lFIfKKV8lFKDlFKblFKZSqkPlVJevXFsIYQQQghHZvXgSynVH7gfSNFajwLcgTnAk8AzWuuhwAngNmsfWwghhBDC0fVWt6MH4KuU8gD8gDxgBvCx6f2lwOW9dGwhhBBCCIdl9eBLa30M+A+QTVPQVQZsBUq11o2m3Y4C/a19bCGEEEIIR9cb3Y4hwGxgEBAL+AOzLPzZBUqpVKVUamFhobWLJoQQQghhd73R7XgucEhrXai1bgA+AaYCwaZuSIA44FjrH9RaL9Fap2itUyIiInqhaEIIIYQQ9tUbwVc2MFkp5aeUUsBMYB+wFrjatM984PNeOLYQQgghhEPrjZyvTTQl1m8DdpuOsQT4PfCgUioTCAPesPaxhRBCCCEcnUfnu3Sd1vqvwF9bbc4CJvXG8YQQQggh+gqZ4V4IIYQQwoYk+BJCCCGEsCEJvoQQQgghbEiCLyGEEEIIG5LgSwghhBDChiT4EkIIIYSwIQm+hBBCCCFsSIIvIYQQQggbkuBLCCGEEMKGJPgSQgghhLAhCb6EEEIIIWxIgi8hhBBCCBuS4EsIIYQQwoYk+BJCCCGEsCEJvoQQQgghbEiCLyGEEEIIG5LgSwghhBDChiT4EkIIIYSwoV4JvpRSwUqpj5VSaUqp/UqpM5RSoUqpVUqpA6Z/Q3rj2EIIIYQQjqy3Wr6eA77VWicD/7+9+4/1q67vOP58jUoU3KqjHWHUCimGjBm2yg3VsuEC0/grShZjlNUQY8JMrOJYouA/y5Ysmcl0zrBACNV1KVUZaDTGCIYf3bRZ54UiCsWtl2m9DOxtpvXHliD63h/3lLRQRtv7/X7O93vu85Hc3Hu+99x+3p9+vt9zX/d8Pt9zfgfYA1wD3FlVLwPu7LYlSZKWlZGHryQrgYuBLQBV9URV/Qh4C7C1220rcNmo25YkSZp04zjzdTawAHwqye4kNyU5FTi9qh7r9nkcOH0MbUuSJE20cYSvFcArgOuraj3wM542xVhVBdTTfzDJlUlmk8wuLCyMoTRJkqR+jSN8zQPzVbWr276VxTD2gyRnAHSf9z/9B6vqxqqaqaqZ1atXj6E0SZKkfo08fFXV48D3k5zbPXQp8BDwReCK7rErgC+Mum1JkqRJt2JM/+77gJuTnAw8AryLxaB3S5J3A98D3jamtiVJkibWWMJXVd0PzBzlW5eOoz1JkqRp4RXuJUmSGjJ8SZIkNWT4kiRJasjwJUmS1JDhS5IkqSHDlyRJUkOGL0mSpIYMX5IkSQ0ZviRJkhoyfEmSJDVk+JIkSWrI8CVJktSQ4UuSJKkhw5ckSVJDhi9JkqSGDF+SJEkNGb4kSZIaGkv4SnJSkt1JvtRtn51kV5K9ST6b5ORxtCtJkjTpxnXm6ypgz2HbHwH+tqrOAX4IvHtM7UqSJE20kYevJGuANwI3ddsBLgFu7XbZClw26nYlSZKmwTjOfH0c+CDwy277NOBHVfVktz0PnDmGdiVJkibeSMNXkjcB+6vq3hP8+SuTzCaZXVhYGGVpkiRJE2HUZ74uAt6c5LvAZ1icbvw74EVJVnT7rAEePdoPV9WNVTVTVTOrV68ecWmSJEn9G2n4qqprq2pNVZ0FvB24q6r+GLgbeGu32xXAF0bZriRJ0rRodZ2vDwFXJ9nL4hqwLY3alSRJmigrnnuXE1NV9wD3dF8/Alw4rrYkSZKmhVe4lyRJasjwJTV2w445ds4dOOKxnXMHuGHHXE8VSZJaMnxJjZ2/ZiWbt+9+KoDtnDvA5u27OX/Nyp4rkyS1MLY1X5KObuO6VVx3+Xo2b9/Npg1r2bZrH9ddvp6N61b1XZokqQHPfEk92LhuFZs2rOUTd+1l04a1Bi9JWkYMX1IPds4dYNuufbz/knPYtmvfM9aASZKGy/AlNXZojdd1l6/n6tee+9QUpAFMkpYHw5fU2APzB49Y43VoDdgD8wd7rkyS1EKqqu8ajmpmZqZmZ2f7LkOSJOk5Jbm3qmaOZV/PfEmSJDVk+JIkSWrI8CVJktSQ4UuSJKkhw5ckSVJDhi9JkqSGDF+SJEkNGb4kSZIaMnxJkiQ1NPLwleQlSe5O8lCSB5Nc1T3+60m+muQ/us8vHnXbkiRJk24cZ76eBP6sqs4DXgm8N8l5wDXAnVX1MuDObluSJGlZGXn4qqrHquq+7uufAHuAM4G3AFu73bYCl426bUkapRt2zLFz7sARj+2cO8ANO+Z6qkjSEIx1zVeSs4D1wC7g9Kp6rPvW48Dp42xbkpbq/DUr2bx991MBbOfcATZv3835a1b2XJmkabZiXP9wkhcCtwEfqKofJ3nqe1VVSeooP3MlcCXA2rVrx1WaJB2TjetWcd3l69m8fTebNqxl2659XHf5ejauW9V3aZKm2FjOfCV5HovB6+aq+lz38A+SnNF9/wxg/9N/rqpurKqZqppZvXr1OEqTpOOycd0qNm1Yyyfu2sumDWsNXpKWbBzvdgywBdhTVR877FtfBK7ovr4C+MKo25akUds5d4Btu/bx/kvOYduufc9YAyZJx2sc044XAe8EvpXk/u6xDwN/DdyS5N3A94C3jaFtSRqZQ2u8Dk01vnLdaUdsS9KJGHn4qqqvAXmWb1866vYkaVwemD94RNA6tAbsgfmDhi9JJyxVz1j3PhFmZmZqdna27zIkSZKeU5J7q2rmWPb19kKSpKnnNdk0TQxfkqSp5zXZNE3Gdp0vSZJa8Zpsmiae+ZIkDYLXZNO0MHxJkgbBa7JNPtfmLTJ8SZKm3uHXZLv6tec+NQVpAJssrs1b5KUmJElT74Ydc5y/ZuURU4075w7wwPxB3vPqdT1Wpqc7FLiGtjbveC414YJ7SdLUO1rA2rhu1SB+qQ/N4Wvz3n/JOctyjJx2lCRJzbg2z/AlSZIacW3eIsOXJElq4v+7X+py4oJ7SZKkJfLejpIkSRPK8CVJktSQ4UuSJKkhw5ckSVJDhi9J6pn3u5sejtX0mOSxahq+krwuyXeS7E1yTcu2+zLJg3+i7NP0GGK/htgn73c3PVqO1RCf6y1N8uuqWfhKchLw98DrgfOAdyQ5r1X7h2v5hJ7kwT9RQzz4DHGcoF2/fE0tzaFrHW3evpuP3fGdpy5COY7brrQcqyGGh5ZjNcRjbUstx+q4VVWTD+BVwO2HbV8LXPts+19wwQU1Ll/fu1Dr//KO+vrehaNuj6u9j97+8FjbaalVn1qO1RDHqapNv3xNjcZHb3+4XvqhL9VHb394bG308Zpq9bxoqcVYVQ3zWNtaq7ECZutYM9Gx7rjUD+CtwE2Hbb8TuO7Z9h9n+Kpqf/BuNfgtDe3gUzXMcapq+0vd19SJafn/N9S2Whnqc92xWprjCV8TteA+yZVJZpPMLiwsjLWtw++qvmnD2rGehhziTURb9qnVWA1xnKBdv3xNnbjW97trOVYt22qh9VgN8VjbykTfR/JYU9pSP5igaccqT+UuxRCnmIY4TlXDnLYd4lhdf8/eZ9T/9b0Ldf09e8fSnme+TlzLsRrisbal1q8rJnTacQXwCHA2cDLwTeC3n23/oaz5aj34LQzx4DPEcapq1y9fU9PDNV/TY4jH2iE7nvDV9MbaSd4AfBw4CfhkVf3Vs+07zhtr37BjjvPXrDzilOrOuQM8MH+Q97x63Vja1IlxrKaD4zQ9Wo6Vz4vp4Vgt3fHcWLtp+Doe4wxfkiRJo3Q84WuiFtxLkiQNneFLkiSpoYmddkyyAHyvQVOrgAl43+lIDbFPMMx+2afpMcR+DbFPMMx+2afJ99KqWn0sO05s+GolyeyxztFOiyH2CYbZL/s0PYbYryH2CYbZL/s0LE47SpIkNWT4kiRJasjwBTf2XcAYDLFPMMx+2afpMcR+DbFPMMx+2acBWfZrviRJklryzJckSVJDyzZ8JXldku8k2Zvkmr7rGYUkn0yyP8m3+65lVJK8JMndSR5K8mCSq/quaRSSPD/JvyX5Ztevv+i7plFJclKS3Um+1Hcto5Dku0m+leT+JIO57UaSFyW5NcnDSfYkeVXfNS1FknO7MTr08eMkH+i7rqVK8qfdMeLbST6d5Pl91zQKSa7q+vTgEMbpeC3LacckJwH/DrwGmAe+Abyjqh7qtbAlSnIx8FPgH6vq5X3XMwpJzgDOqKr7kvwqcC9w2QDGKsCpVfXTJM8DvgZcVVX/2nNpS5bkamAG+LWqelPf9SxVku8CM1U1pOsRkWQr8C9VdVOSk4FTqupHfdc1Ct0x/lFgQ1W1uF7kWCQ5k8Vjw3lV9b9JbgG+XFX/0G9lS5Pk5cBngAuBJ4CvAO+pqr29FtbQcj3zdSGwt6oeqaonWHwSvKXnmpasqv4Z+O++6xilqnqsqu7rvv4JsAc4s9+qlq4W/bTbfF73MfV/CSVZA7wRuKnvWvTskqwELga2AFTVE0MJXp1LgblpDl6HWQG8IMkK4BTgv3quZxR+C9hVVf9TVU8CO4A/6rmmppZr+DoT+P5h2/MM4Bf60CU5C1gP7Oq3ktHopufuB/YDX62qIfTr48AHgV/2XcgIFXBHknuTXNl3MSNyNrAAfKqbIr4pyal9FzVCbwc+3XcRS1VVjwJ/A+wDHgMOVtUd/VY1Et8Gfj/JaUlOAd4AvKTnmpparuFLUybJC4HbgA9U1Y/7rmcUquoXVfW7wBrgwu5U/NRK8iZgf1Xd23ctI/Z7VfUK4PXAe7vp/Wm3AngFcH1VrQd+Bgxl7evJwJuBf+q7lqVK8mIWZ2XOBn4TODXJpn6rWrqq2gN8BLiDxSnH+4Ff9FpUY8s1fD3KkSl7TfeYJlC3Juo24Oaq+lzf9YxaN91zN/C6vmtZoouAN3drpD4DXJJkW78lLV139oGq2g98nsVlC9NuHpg/7GzrrSyGsSF4PXBfVf2g70JG4A+B/6yqhar6OfA5YGPPNY1EVW2pqguq6mLghyyuw142lmv4+gbwsiRnd38lvR34Ys816Si6helbgD1V9bG+6xmVJKuTvKj7+gUsvvnj4X6rWpqquraq1lTVWSy+pu6qqqn+Kz3Jqd0bPeim5V7L4pTJVKuqx4HvJzm3e+hSYKrfxHKYdzCAKcfOPuCVSU7pjoWXsrjudeol+Y3u81oW13tt77eitlb0XUAfqurJJJuB24GTgE9W1YM9l7VkST4N/AGwKsk88OdVtaXfqpbsIuCdwLe69VEAH66qL/dY0yicAWzt3pX1K8AtVTWISzMMzOnA5xd/77EC2F5VX+m3pJF5H3Bz9wfoI8C7eq5nybqA/BrgT/quZRSqaleSW4H7gCeB3QznqvC3JTkN+Dnw3oG94eM5LctLTUiSJPVluU47SpIk9cLwJUmS1JDhS5IkqSHDlyRJUkOGL0mSpIYMX5IkSQ0ZviRJkhoyfEmSJDX0f+tLYsgLWp0GAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def square(domain, freq=1):\n", " harmonics = np.asarray([1.0 / h * sine(domain, freq=freq * h) for h in range(1, Harmonics, 2)])\n", " wave = np.sum(harmonics, axis=0)\n", " return wave\n", "\n", "wave = square(time_space())\n", "plot_signal_and_spectrum(time_space(), wave)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Triangle Wave" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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IoUvERERkSBS+BIREREJIoUvERERkSBS+BIREREJIoUvERERkSBS+BIREREJohivCzia+Ph417ZtW6/LEBERETmm/Pz8zc65hIrsG7Lhq23btuTl5XldhoiIiMgxmdnKiu6rjx1FREREguiEw5eZZZrZJjObW25bQzP7wsyW+L438G03MxthZgVmNtvM+vijePmvV79dytSlm3+2berSzbz67VKPKhIREZEjqcw7X6OBiw7b9jAwxTnXCZjiuw5wMdDJ9zUceKUSx5Uj6NmyHndPmPFTAJu6dDN3T5hBz5b1PK5MREREyjvh8OWc+w7YetjmAUCW73IWcGW57WNcmWlAfTNrdqLHlv91aod4Xro5kbsnzOD5fy/i7gkzeOnmRE7tEO91aSIiIlKOv+d8NXHOrfdd3gA08V1uAawut98a3zbxo1M7xDOwX2tGfFXAwH6tFbxERERCUMAm3DvnHOCO5z5mNtzM8swsr7CwMECVRa6pSzczLnsV957TkXHZq/5nDpiIiIh4z9/ha+OhjxN93zf5tq8FWpXbr6Vv28845153ziU555ISEiq0VIb4HJrj9dLNiTxwQZefPoJUABMREQkt/g5fHwKpvsupwORy2wf7znrsD+wo9/Gk+MHsNTt+Nsfr0Byw2Wt2eFyZiIiIlGdlnw6ewB3NJgJnAfHARuBJ4APgLaA1sBK43jm31cwMeImysyP3AGnOuV9cQTUpKclpkVUREREJB2aW75xLqsi+J7zCvXPupqPcdO4R9nXAXSd6LBEREZFIoRXuRURERIJI4UtEREQkiBS+RERERIJI4UtEREQkiBS+RERERIJI4UtEREQkiBS+RERERIJI4UtEREQkiBS+RERERIJI4UtEREQkiBS+RERERIJI4UtEREQkiBS+RERERIJI4UtEREQkiBS+RERERIJI4UtEREQkiBS+RERERIJI4UtEREQkiAISvszs12Y2z8zmmtlEM6tuZu3MLNvMCszsTTOLDcSxRUREREKZ38OXmbUA7gWSnHMnA9HAjcCzwAvOuY7ANmCov48tIiIiEuoC9bFjDFDDzGKAmsB64BzgHd/tWcCVATq2iIiISMjye/hyzq0F/gasoix07QDyge3OuWLfbmuAFoff18yGm1memeUVFhb6uzQRERERzwXiY8cGwACgHdAcqAVcVJH7Ouded84lOeeS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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def triangle(domain, freq=1):\n", " def label(i):\n", " return 2. * i + 1.\n", " harmonics = np.asarray([((-1) ** h) * (label(h) ** -2) * sine(domain, freq=freq * label(h)) for h in range(Harmonics)])\n", " wave = np.sum(harmonics, axis=0)\n", " return wave\n", "\n", "wave = triangle(time_space())\n", "plot_signal_and_spectrum(time_space(), wave)" ] } ], "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.1" } }, "nbformat": 4, "nbformat_minor": 2 }