{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ThinkDSP\n", "\n", "This notebook contains solutions to exercises in Chapter 9: Differentiation and Integration\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", "The goal of this exercise is to explore the effect of `diff` and `differentiate` on a signal. Create a triangle wave and plot it. Apply the `diff` operator and plot the result. Compute the spectrum of the triangle wave, apply `differentiate`, and plot the result. Convert the spectrum back to a wave and plot it. Are there differences between the effect of `diff` and `differentiate` for this wave?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Solution:* Here's the triangle wave." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from thinkdsp import TriangleSignal\n", "\n", "in_wave = TriangleSignal(freq=50).make_wave(duration=0.1, framerate=44100)\n", "in_wave.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The diff of a triangle wave is a square wave, which explains why the harmonics in a square wave drop off like $1/f$, compared to the triangle wave, which drops off like $1/f^2$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "out_wave = in_wave.diff()\n", "out_wave.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we take the spectral derivative, we get \"ringing\" around the discontinuities: https://en.wikipedia.org/wiki/Ringing_(signal)\n", "\n", "Mathematically speaking, the problem is that the derivative of the triangle wave is undefined at the points of the triangle." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "out_wave2 = in_wave.make_spectrum().differentiate().make_wave()\n", "out_wave2.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 2\n", "\n", "The goal of this exercise is to explore the effect of `cumsum` and `integrate` on a signal. Create a square wave and plot it. Apply the `cumsum` operator and plot the result. Compute the spectrum of the square wave, apply `integrate`, and plot the result. Convert the spectrum back to a wave and plot it. Are there differences between the effect of `cumsum` and `integrate` for this wave?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Solution:* Here's the square wave." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from thinkdsp import SquareSignal\n", "\n", "in_wave = SquareSignal(freq=50).make_wave(duration=0.1, framerate=44100)\n", "in_wave.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The cumulative sum of a square wave is a triangle wave. After the previous exercise, that should come as no surprise." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "out_wave = in_wave.cumsum()\n", "out_wave.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The spectral integral is also a triangle wave, although the amplitude is very different." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "spectrum = in_wave.make_spectrum().integrate()\n", "spectrum.hs[0] = 0\n", "out_wave2 = spectrum.make_wave()\n", "out_wave2.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we unbias and normalize the two waves, they are visually similar." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "out_wave.unbias()\n", "out_wave.normalize()\n", "out_wave2.normalize()\n", "out_wave.plot()\n", "out_wave2.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And they are numerically similar, but with only about 3 digits of precision." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0045351473922902175" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "out_wave.max_diff(out_wave2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 3\n", "\n", "The goal of this exercise is the explore the effect of integrating twice. Create a sawtooth wave, compute its spectrum, then apply `integrate` twice. Plot the resulting wave and its spectrum. What is the mathematical form of the wave? Why does it resemble a sinusoid? " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the sawtooth." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from thinkdsp import SawtoothSignal\n", "\n", "in_wave = SawtoothSignal(freq=50).make_wave(duration=0.1, framerate=44100)\n", "in_wave.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first cumulative sum of a sawtooth is a parabola:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "out_wave = in_wave.cumsum()\n", "out_wave.unbias()\n", "out_wave.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The second cumulative sum is a cubic curve:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "out_wave = out_wave.cumsum()\n", "out_wave.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Integrating twice also yields a cubic curve." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "spectrum = in_wave.make_spectrum().integrate().integrate()\n", "spectrum.hs[0] = 0\n", "out_wave2 = spectrum.make_wave()\n", "out_wave2.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this point, the result looks more and more like a sinusoid. The reason is that integration acts like a low pass filter. At this point we have filtered out almost everything except the fundamental, as shown in the spectrum below:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "out_wave2.make_spectrum().plot(high=500)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 4 \n", "\n", "The goal of this exercise is to explore the effect of the 2nd difference and 2nd derivative. Create a `CubicSignal`, which is defined in `thinkdsp`. Compute the second difference by applying `diff` twice. What does the result look like. Compute the second derivative by applying `differentiate` twice. Does the result look the same?\n", "\n", "Plot the filters that corresponds to the 2nd difference and the 2nd derivative and compare them. Hint: In order to get the filters on the same scale, use a wave with framerate 1." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Solution:* Here's the cubic signal" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from thinkdsp import CubicSignal\n", "\n", "in_wave = CubicSignal(freq=0.0005).make_wave(duration=10000, framerate=1)\n", "in_wave.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first difference is a parabola and the second difference is a sawtooth wave (no surprises so far):" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "out_wave = in_wave.diff()\n", "out_wave.plot()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "out_wave = out_wave.diff()\n", "out_wave.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we differentiate twice, we get a sawtooth with some ringing. Again, the problem is that the deriviative of the parabolic signal is undefined at the points." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "spectrum = in_wave.make_spectrum().differentiate().differentiate()\n", "out_wave2 = spectrum.make_wave()\n", "out_wave2.plot()\n", "decorate(xlabel='Time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The window of the second difference is -1, 2, -1. By computing the DFT of the window, we can find the corresponding filter." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from thinkdsp import zero_pad\n", "from thinkdsp import Wave\n", "\n", "diff_window = np.array([-1.0, 2.0, -1.0])\n", "padded = zero_pad(diff_window, len(in_wave))\n", "diff_wave = Wave(padded, framerate=in_wave.framerate)\n", "diff_filter = diff_wave.make_spectrum()\n", "diff_filter.plot(label='2nd diff')\n", "\n", "decorate(xlabel='Frequency (Hz)',\n", " ylabel='Amplitude ratio')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And for the second derivative, we can find the corresponding filter by computing the filter of the first derivative and squaring it." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "PI2 = np.pi * 2\n", "\n", "deriv_filter = in_wave.make_spectrum()\n", "deriv_filter.hs = (PI2 * 1j * deriv_filter.fs)**2\n", "deriv_filter.plot(label='2nd deriv')\n", "\n", "decorate(xlabel='Frequency (Hz)',\n", " ylabel='Amplitude ratio')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's what the two filters look like on the same scale:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "diff_filter.plot(label='2nd diff')\n", "deriv_filter.plot(label='2nd deriv')\n", "\n", "decorate(xlabel='Frequency (Hz)',\n", " ylabel='Amplitude ratio')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Both are high pass filters that amplify the highest frequency components. The 2nd derivative is parabolic, so it amplifies the highest frequencies the most. The 2nd difference is a good approximation of the 2nd derivative only at the lowest frequencies, then it deviates substantially." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.10" } }, "nbformat": 4, "nbformat_minor": 4 }