274 lines
132 KiB
Text
274 lines
132 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"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 = 20\n",
|
|
"# Time in seconds.\n",
|
|
"Time = 2.0\n",
|
|
"# Plot resolution.\n",
|
|
"Steps = 400"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"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) / 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",
|
|
" num_freqs = Harmonics * 2\n",
|
|
" freqs, mags = (x[:num_freqs] for x in frequency_spectrum(data))\n",
|
|
" plt.subplot(212)\n",
|
|
" plt.xticks(range(num_freqs))\n",
|
|
" plt.bar(freqs, mags)"
|
|
]
|
|
},
|
|
{
|
|
"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": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 2 Axes>"
|
|
]
|
|
},
|
|
"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<sup>-1</sup>."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 2 Axes>"
|
|
]
|
|
},
|
|
"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": "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REQOaOHChRXOuf4H2i8qkqyioiIWLFgQ6TBEREREDsjMNnVnP3UXioiIiHjggEmWmQ0zszfNbJWZrTSzm0Lb88zsNTMrDv3bL7TdzOxOM1tnZsvMbIrXlRARERGJNt1pyfID33XOjQeOBa4zs/HAzcAbzrmxwBuh7wHOAMaGvq4B/hb2qEVERESi3AGTLOfcDufcotDrWmA1UAicBzwY2u1B4Auh1+cBD7mgD4FcMxsc9shFREREothBjckysyJgMjAPGOic2xF6aycwMPS6ENjS6ce2hraJiIiIxI1uP11oZpnAU8C3nXM1ZtbxnnPOmZk7mILN7BqC3YkMHz78YH40qhXd/O+wHm/jrWeF9XgiIiLSO7rVkmVmSQQTrIedc0+HNpe2dwOG/i0Lbd8GDOv040ND2/bgnLvbOTfNOTetf/8DTjUhIiIiElO683ShAfcBq51zv+/01nPAFaHXVwDPdtr+1dBThscCuzt1K4qIiIjEhe50Fx4PXA4sN7MloW0/Am4FHjezrwGbgItC770InAmsAxqAK8MasYiIiEgMOGCS5Zx7F7B9vP35LvZ3wHU9jEtEREQkpmnGdxEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8YCSLBEREREPKMkSERER8cABkywzm21mZWa2otO2n5vZNjNbEvo6s9N7PzSzdWa2xsxO8ypwERERkWjWnZasB4DTu9j+B+fc0aGvFwHMbDxwMTAh9DN/NbPEcAUrIiIiEisOmGQ5594Bqrp5vPOAR51zzc65EmAdMKMH8YmIiIjEpJ6MybrezJaFuhP7hbYVAls67bM1tE1EREQkrhxqkvU3YDRwNLADuP1gD2Bm15jZAjNbUF5efohhiIiIiESnQ0qynHOlzrk251wAuIdPugS3AcM67To0tK2rY9ztnJvmnJvWv3//QwlDREREJGodUpJlZoM7fXs+0P7k4XPAxWaWYmYjgbHARz0LUURERCT2+A60g5nNAU4CCsxsK/Az4CQzOxpwwEbgGwDOuZVm9jiwCvAD1znn2rwJXURERCR6HTDJcs5d0sXm+/az/6+BX/ckKBEREZFYpxnfRURERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDygJEtERETEA0qyRERERDxwwCTLzGabWZmZrei0Lc/MXjOz4tC//ULbzczuNLN1ZrbMzKZ4GbyIiIhItOpOS9YDwOmf2nYz8IZzbizwRuh7gDOAsaGva4C/hSdMERERkdhywCTLOfcOUPWpzecBD4ZePwh8odP2h1zQh0CumQ0OV7AiIiIiscJ3iD830Dm3I/R6JzAw9LoQ2NJpv62hbTuQsCm6+d9hPd7GW88K6/FEREQkDAPfnXMOcAf7c2Z2jZktMLMF5eXlPQ1DREREJKocapJV2t4NGPq3LLR9GzCs035DQ9v24py72zk3zTk3rX///ocYhoiIiEh0OtQk6zngitDrK4BnO23/augpw2OB3Z26FUVERETixgHHZJnZHOAkoMDMtgI/A24FHjezrwGbgItCu78InAmsAxqAKz2IWURERCTqHTDJcs5dso+3Pt/Fvg64rqdBiYiIiMQ6zfguIiIi4gElWSIiIiIeUJIlIiIi4gElWSIiIiIeUJIlIiIi4gElWSIiIiIeUJIlIiIi4gElWSIiIiIeUJIlIiIi4gElWSIiIiIeUJIlIiIi4gElWSIiIiIeUJIlIiIi4gElWSIiIiIeUJIlIiIi4gElWSIiIiIeUJIlIiIi4gElWSIiIiIe8EU6AIlORTf/O6zH23jrWWE9noiISLRTS5aIiIiIB5RkiYiIiHhASZaIiIiIB5RkiYiIiHhASZaIiIiIB5RkiYiIiHhASZaIiIiIB3o0T5aZbQRqgTbA75ybZmZ5wGNAEbARuMg5V92zMEVERERiSzhasj7nnDvaOTct9P3NwBvOubHAG6HvRUREROKKF92F5wEPhl4/CHzBgzJEREREolpP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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 2 Axes>"
|
|
]
|
|
},
|
|
"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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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 2 Axes>"
|
|
]
|
|
},
|
|
"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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JAPrgVGu2z4CLgXygWIg6ZQTi4iIiPiwUypf1trvAXOcmy84xv4WuO1UjiUiIiJSn2iFexEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8SCVLxEREREPUvkSERER8aBTLl/GmFRjzA5jzJJq2x42xmw2xixwXS6tdttfjDH5xpiVxpiLaxtcRERExBfV5pWvdGDEMbY/Y62Ncl0+AjDG9ANGA6e57vOSMca/FscWERER8UmnXL6std8CRTXcfSTwmrW2xFpbAOQDsad6bBERERFfVRdzvm43xixyvS0Z7trWAdhYbZ9Nrm0iIiIiDYq7y9fLQA8gCtgKPHUydzbGTDLG5BpjcgsLC90cTURERMR5bi1f1trt1toKa20lMJX//9biZqBTtV07urYdff8p1tpoa210RESEO6OJiIiIeAW3li9jTLtq314NHDkT8j1gtDEm2BjTDYgEst15bBERERFfEHCqdzTGzAbOBVoZYzYBDwHnGmOiAAusA24CsNYuNcbMAZYB5cBt1tqK2kUXERER8T2nXL6stWOOsTnlN/Z/DHjsVI8nIiIiUh9ohXsRERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfEglS8RERERD1L5EhEREfGgUy5fxphUY8wOY8ySattaGGM+N8asdn0Nd203xpjnjTH5xphFxpgh7ggvIiIi4mtq88pXOjDiqG2TgS+ttZHAl67vAS4BIl2XScDLtTiuiIiIiM865fJlrf0WKDpq80ggw3U9A7iq2vbptspcoLkxpt2pHltERETEV7l7zlcb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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def triangle(domain, freq=1, h=Harmonics):\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(h)])\n",
|
|
" wave = np.sum(harmonics, axis=0)\n",
|
|
" return wave\n",
|
|
"\n",
|
|
"wave = triangle(time_space())\n",
|
|
"plot_signal_and_spectrum(time_space(), wave)"
|
|
]
|
|
},
|
|
{
|
|
"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.4"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|