diff --git a/02_fourier_phase.ipynb b/02_fourier_phase.ipynb new file mode 100644 index 0000000..eebabbd --- /dev/null +++ b/02_fourier_phase.ipynb @@ -0,0 +1,446 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import scipy.fft as ft\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.gridspec as gridspec\n", + "import matplotlib.ticker as tck\n", + "rng = np.random.default_rng()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# copied from 01_fourier 4988cf4f6e81b6b9510bf55a264011c37dc71872\n", + "def ft_spectrum( signal, sample_rate, fft=None, freq=None, mask_bias=False):\n", + " \"\"\"Return a FT of $signal$, with corresponding frequencies\"\"\"\n", + " n_samples = len(signal)\n", + " real_signal = np.isrealobj(signal)\n", + " \n", + " if fft is None:\n", + " if real_signal:\n", + " fft = ft.rfft\n", + " freq = ft.rfftfreq\n", + " else:\n", + " fft = ft.fft\n", + " freq = ft.fftfreq\n", + "\n", + " if freq is None:\n", + " freq = ft.fftfreq\n", + " \n", + " spectrum = fft(signal) / sample_rate\n", + " freqs = freq(n_samples, 1/sample_rate)\n", + " \n", + " if not mask_bias:\n", + " return spectrum, freqs\n", + " else:\n", + " return spectrum[1:], freqs[1:]\n", + "\n", + " \n", + "def plot_spectrum( ax, spectrum, freqs, plot_complex=False, plot_power=False, plot_amplitude=None):\n", + " \"\"\" Plot a signal's spectrum on an Axis object\"\"\"\n", + " plot_amplitude = plot_amplitude or (not plot_power and not plot_complex)\n", + " alpha = 1\n", + " \n", + " ax.set_title(\"Spectrum\")\n", + " ax.set_xlabel(\"f (Hz)\")\n", + " ylabel = \"\"\n", + " if plot_amplitude or plot_complex:\n", + " ylabel = \"Amplitude\"\n", + " if plot_power:\n", + " if ylabel:\n", + " ylabel += \"|\"\n", + " ylabel += \"Power\"\n", + " ax.set_ylabel(ylabel)\n", + "\n", + " if plot_complex:\n", + " alpha = 0.5\n", + " ax.plot(freqs, np.real(spectrum), '.-', label='Real', alpha=alpha)\n", + " ax.plot(freqs, np.imag(spectrum), '.-', label='Imag', alpha=alpha)\n", + "\n", + " if plot_power:\n", + " ax.plot(freqs, np.abs(spectrum)**2, '.-', label='Power', alpha=alpha)\n", + " \n", + " if plot_amplitude:\n", + " ax.plot(freqs, np.abs(spectrum), '.-', label='Abs', alpha=alpha)\n", + "\n", + " ax.legend()\n", + "\n", + " return ax\n", + "\n", + "\n", + "def plot_phase( ax, spectrum, freqs, ylim_epsilon=0.5):\n", + " ax.set_ylabel(\"Phase\")\n", + " ax.set_xlabel(\"f (Hz)\")\n", + "\n", + " ax.plot(freqs, np.angle(spectrum), '.-')\n", + " ax.set_ylim(-1*np.pi - ylim_epsilon, np.pi + ylim_epsilon)\n", + " \n", + " return ax\n", + "\n", + "\n", + "def plot_combined_spectrum(spectrum, freqs, \n", + " spectrum_kwargs={}, fig=None, gs=None):\n", + " \"\"\"Plot both the frequencies and phase in one figure.\"\"\"\n", + " \n", + " # configure plotting layout\n", + " if fig is None:\n", + " fig = plt.figure(figsize=(8, 16))\n", + "\n", + " if gs is None:\n", + " gs = gridspec.GridSpec(2, 1, figure=fig, height_ratios=[3,1], hspace=0)\n", + "\n", + " ax1 = fig.add_subplot(gs[:-1, -1])\n", + " ax2 = fig.add_subplot(gs[-1, -1], sharex=ax1)\n", + "\n", + " axes = np.array([ax1, ax2])\n", + " \n", + " # plot the spectrum \n", + " plot_spectrum(ax1, spectrum, freqs, **spectrum_kwargs)\n", + "\n", + " # plot the phase\n", + " plot_phase(ax2, spectrum, freqs)\n", + "\n", + " ax1.xaxis.tick_top()\n", + " [label.set_visible(False) for label in ax1.get_xticklabels()]\n", + " \n", + " return fig, axes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Phase information in the Fourier Transform\n", + "\n", + "$$\n", + "u(t) = sin(2\\pi f t + \\varphi_t)\n", + "$$\n", + "\n", + "Define $f_\\mathrm{max}$ as the frequency with the highest power in the FT (it should be close to $f$).\n", + "Then $\\varphi_f$ is its associated phase." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Required signal length is: 0.005s\n", + "Required number of samples: 50.0\n" + ] + } + ], + "source": [ + "sample_rate = 1/1e-4 # Hz\n", + "f = 200 # Hz\n", + "required_N_samples = sample_rate/f\n", + "\n", + "signal_func = lambda phase: np.sin(phase)\n", + "\n", + "print(\"Required signal length is: {}s\".format(1/f))\n", + "print(\"Required number of samples: {}\".format(required_N_samples))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### $\\varphi_f$ vs $f_\\mathrm{max}$ for differing $\\Delta f$" + ] + }, + { + "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": [ + "# \\phi_f vs f_max for differing \\Delta f\n", + "N_delta_f = 200\n", + "\n", + "\n", + "Ns_samples = required_N_samples//1 + np.arange(0, N_delta_f)\n", + "phi_f = np.empty(N_delta_f)\n", + "f_max = np.empty(N_delta_f)\n", + "\n", + "# set signal_func to exp(i*phi)\n", + "if True:\n", + " signal_func = lambda phase: np.sin(1*phase)\n", + "\n", + "for i, N_sample in enumerate(Ns_samples):\n", + " time = np.arange(N_sample) / sample_rate\n", + " \n", + " fft, freqs = ft_spectrum(signal_func(2*np.pi*f*time), sample_rate)\n", + " \n", + " fft_power = np.abs(fft)**2\n", + " id_max = np.argmax(fft_power)\n", + " \n", + " phi_f[i] = np.angle(fft[id_max])\n", + " f_max[i] = freqs[id_max]\n", + " \n", + " \n", + "# Maximum values\n", + "fig, (ax1, ax2) = plt.subplots(1,2, figsize=(16,4))\n", + "fig.suptitle(\"Maximum Power frequencies and their phase\")\n", + "\n", + "ax1.set_xlabel('$f_\\\\mathrm{max}$')\n", + "ax1.set_ylabel('$\\\\varphi_f$')\n", + "ax1.plot(f_max, phi_f, '--', alpha=0.1)\n", + "sc = ax1.scatter(f_max, phi_f, c=Ns_samples, cmap='Spectral')\n", + "ax1.axvline(f, color='r', alpha=0.5, label=\"Signal frequency\")\n", + "for n in [2,]:\n", + " ax1.axhline(-np.pi/n, color='k', alpha=0.5, label='$-\\\\pi/{}$'.format(n))\n", + "\n", + "\n", + " \n", + "\n", + "ax2.set_xlabel('$N_\\\\mathrm{samples}$')\n", + "ax2.set_ylabel('$f_\\\\mathrm{max}$')\n", + "ax2.scatter(Ns_samples, f_max, c=Ns_samples, cmap='Spectral')\n", + "ax2.axhline(f, color='r', alpha=0.5, label=\"Signal frequency\")\n", + "\n", + "if False:\n", + " ax1.set_xlim(f-5,f+5)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## $\\varphi_f$ vs $\\varphi_t$" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Required signal length is: 0.00022222222222222223s\n", + "Required number of samples: 2.2222222222222223\n" + ] + } + ], + "source": [ + "sample_rate = 1/1e-4 # Hz\n", + "f = 4500# Hz\n", + "required_N_samples = sample_rate/f\n", + "\n", + "signal_func = lambda phase: np.sin(phase)\n", + "\n", + "print(\"Required signal length is: {}s\".format(1/f))\n", + "print(\"Required number of samples: {}\".format(required_N_samples))" + ] + }, + { + "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": [ + "phase_offsets = np.linspace(-np.pi, np.pi, 100, endpoint=True) # rad\n", + "\n", + "phi_f = np.empty_like(phase_offsets)\n", + "\n", + "time = np.arange(required_N_samples) / sample_rate\n", + "\n", + "\n", + "fig, (ax1) = plt.subplots(1,1, figsize=(16,4))\n", + "\n", + "for i, offset in enumerate(phase_offsets):\n", + "\n", + " fft, freqs = ft_spectrum(signal_func(2*np.pi*f*time + offset), sample_rate) \n", + " id_max = np.argmax(np.abs(fft)**2)\n", + " \n", + " phi_f[i] = np.angle(fft[id_max]) \n", + " \n", + "\n", + "\n", + "ax1.set_xlabel('$\\\\varphi_t$')\n", + "ax1.set_ylabel('$\\\\varphi_f$')\n", + "ax1.plot(phase_offsets, phi_f, '.--')\n", + "\n", + "# grid lines\n", + "vlines = [\n", + " (-np.pi, r'$-\\pi$'),\n", + " (-np.pi/np.sqrt(2), r'$\\frac{-\\pi}{\\sqrt{2}}$'),\n", + " (-np.pi/np.sqrt(3), r'$\\frac{-\\pi}{\\sqrt{3}}$'),\n", + " (-np.pi/2, r'$\\frac{-\\pi}{2}$'),\n", + " (np.pi, r'$\\pi$'),\n", + "]\n", + "\n", + "xtrans = ax1.get_xaxis_transform()\n", + "ax1.axhline(0, alpha=0.1, color='k')\n", + "for location, label in vlines:\n", + " ax1.axvline(location, alpha=0.1, color='k')\n", + " ax1.text(location, -0.06, label, transform=xtrans, horizontalalignment='center')\n", + "\n", + "hlines = [\n", + " (-np.pi/2, r'$\\frac{-\\pi}{2}$'),\n", + " (np.pi/2, r'$\\frac{\\pi}{2}$'),\n", + "]\n", + "\n", + "ytrans = ax1.get_yaxis_transform()\n", + "ax1.axvline(0, alpha=0.1, color='k')\n", + "for location, label in hlines:\n", + " ax1.axhline(location, alpha=0.1, color='k')\n", + " ax1.text(-0.03, location, label, transform=ytrans, verticalalignment='center')\n", + " \n", + "if False:\n", + " ax1.set_xlim(-2,-1)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# reconstruct phase from off-frequency ft" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Required signal length is: 0.005s\n", + "Required number of samples: 50.0\n" + ] + } + ], + "source": [ + "sample_rate = 1/1e-4 # Hz\n", + "f = 200 # Hz\n", + "required_N_samples = sample_rate/f\n", + "\n", + "signal_func = lambda phase: np.sin(phase)\n", + "\n", + "print(\"Required signal length is: {}s\".format(1/f))\n", + "print(\"Required number of samples: {}\".format(required_N_samples))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7oAAAEICAYAAABxmYg6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeXSU54Hn++9TparSvu+7BAIECDAIsI0BOwFjY4c4S3tNp91O7Dgd37493T3npvvck0l75vbJzKT7dvo4k447zqSTccSddntLO7HTMwk2u1gEYjUGJNAGQvsu1fLcPwoTzGaZRW+p6vc5RwfV+75V9ZMAqX71vO/zGGstIiIiIiIiItHC5XQAERERERERkZtJRVdERERERESiioquiIiIiIiIRBUVXREREREREYkqKroiIiIiIiISVeKcDnCrZGdn2/LycqdjiMMCofCs4nEu43ASEZnu9uzZ02WtzXE6x3Sm380iInIzXet3c9QW3fLycnbv3u10DHFYz/AEAJlJXoeTiMh0Z4w55XSG6U6/m0VE5Ga61u9mnbosIiIiIiIiUUVFV0RERERERKKKiq6IiIiIiIhElai9RvdK/H4/ra2tjI2NOR1lWoiPj6e4uBiPx+N0FBERERERkUmLqaLb2tpKSkoK5eXlGKNZeK/FWkt3dzetra1UVFQ4HUdERERERGTSYurU5bGxMbKyslRyJ8EYQ1ZWlka/RURERERk2ompoguo5H4C+l6JiIiIiMh0FHNFV0TECW0tfezf3UZP94jTUURERESiXkxdoysiMtVGhif42//0G06d7MHtdhHwB7ljdSV/+Ee343LprAkRERGRW0EjuiIit9BLL2yn6YNuJsaDjI748ftD7NjcxP9666jT0URERESiloquQ1577TWMMRw9+rsXuz/84Q8xxnDkyJEL26qrq2lubr6u53jqqafIzc1l/vz5H9n+9ttvM3v2bGbOnMl3vvOd63psEfl442N+9u1qJRAI4fcOE3L5AZgYD/JrFV0RERGRW0ZF1yF1dXXU1taycePGC9saGxtZtGgRb731FgDj4+OcPXuWsrKy63qOJ598krfffvsj24LBIN/4xjf41a9+xeHDh6mrq+Pw4cPX/4WIyFWNjwcJufz0552gq2IfQ9mtF/aNDvsdTCYiIiIS3VR0HTA0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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "N_deltas = [10, 15, 20] # set !={0, required_N_sample} for imperfect FT\n", + "\n", + "fig, axes = plt.subplots(1,2, figsize=(16,4))\n", + "\n", + "for N_delta in N_deltas:\n", + " time = np.arange(required_N_samples+N_delta) / sample_rate\n", + "\n", + " fft, freqs = ft_spectrum(signal_func(2*np.pi*f*time), sample_rate)\n", + "\n", + " fft_power = np.abs(fft)**2\n", + "\n", + " idx_max = np.empty(5, dtype=np.int)\n", + " for sub in range(len(idx_max)):\n", + " idx = np.argmax(fft_power)\n", + " idx_max[sub] = idx\n", + " tmp = fft_power[idx]\n", + " fft_power[idx] = 0\n", + "\n", + " # select only the top two frequencies\n", + " idx_top = idx_max[:2]\n", + "\n", + " axes[0].plot(freqs[idx_top], np.angle(fft[idx_top]), '--', alpha=0.5, label=r'$\\Delta N = {}$'.format(N_delta))\n", + " sc = axes[0].scatter(freqs[idx_top], np.angle(fft[idx_top]), c=idx_top, cmap='Spectral')\n", + " \n", + " axes[1].plot()\n", + "\n", + "axes[0].set_xlabel(\"$f$\")\n", + "axes[0].set_ylabel(r\"$\\varphi_f$\")\n", + "axes[0].axvline(f, alpha=0.1)\n", + "axes[0].legend()\n", + "plt.show()\n" + ] + } + ], + "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.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}