{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "zhjhmdZgPghM" }, "source": [ "# FMCW Radar 104 - Freq estimator\n", "[![](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/matt-chv/mmWrt/blob/main/docs/FMCW-Radar-104_Freq_est.ipynb)\n", "\n", "Goal:\n", "\n", "> Compare apple to apple frequency estimators since Frequency estimation is key for distance measurement in FMCW radar\n", "\n", "Summary:\n", "\n", "| method | precision (% of 1 bin width) | comment |\n", "|---|---|---|\n", "| fft| +/- 50% | default |\n", "| padding | -2% +0.5% | at 100x padding, unrealistic |\n", "| quinn's 2nd | -1.25% +0.5% | simple |\n", "| phase | -0.2% +0.7% | **broken** (need to compensate for $s*\\delta^2$|\n", "\n", "> => Assuming a range bin/ resolution of $\\frac{c}{2*B}$, a precision of 0.5% is equivalent to a precision of 0.2mm.\n", "\n", "Next:\n", "* Compensate for $s \\cdot \\delta^2$ phase shift in phase method.\n", "\n", "History:\n", "\n", "* 2022-Dec-17: fixed phase method and added summary values\n", "* 2022-Dec-16: MRE code for each method to simplify comparisons\n", "* 2022-Oct-13: added side by side comparison fft, padding, quinn's 2nd and phase\n", "* ??: creation" ] }, { "cell_type": "markdown", "metadata": { "id": "edkdzEwQF879" }, "source": [ "Further reading:\n", "\n", "sources for phase method:\n", "* http://www.tsdconseil.fr/log/scriptscilab/festim/index-en.html\n", "* https://www.dsprelated.com/showarticle/773.php" ] }, { "cell_type": "markdown", "metadata": { "id": "UpEoSwd99eua" }, "source": [ "## MRE for frequency bin error computation" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 298 }, "id": "6AGb_qpD8HQY", "outputId": "a09d0a16-de8e-4005-9f3d-20729f0a3ef5" }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from numpy import abs ,angle, arange, arcsin, cos, pi, sqrt, tan\n", "import matplotlib.pyplot as plt\n", "from scipy.fft import fft\n", "\n", "def y_IF(f0_min, slope, T, antenna_tx, antenna_rx, target, v=3e8):\n", " \"\"\" This function implements the mathematical IF defined in latex as\n", " y_{IF} = cos(2 \\pi [f_0\\delta + s * \\delta * t - s* \\delta^2])\n", " into following python code\n", " y_IF = cos (2*pi*(f_0 * delta + slope * delta * T + slope * delta**2))\n", " Parameters:\n", " -----------\n", " f0_min: float\n", " the frequency at the begining of the chirp\n", " slope: float\n", " the slope with which the chirp frequency inceases over time\n", " T: ndarray\n", " the 1D vector containing time values\n", " antenna_tx: tuple of floats\n", " x, y, z coordinates\n", " antenna_rx: tuple of floats\n", " x, y, z coordinates\n", " target: tuple of floats\n", " x, y, z coordinates\n", " v: float\n", " speed of light in considered medium\n", " Returns:\n", " --------\n", " YIF: ndarray\n", " vector containing the IF values\n", " \"\"\"\n", " tx_x, tx_y, tx_z = antenna_tx\n", " rx_x, rx_y, rx_z = antenna_rx\n", " t_x, t_y, t_z = target\n", " distance = sqrt((tx_x-t_x)**2 + (tx_y-t_y)**2 + (tx_z-t_z)**2)\n", " distance += sqrt((rx_x-t_x)**2 + (rx_y-t_y)**2 + (rx_z-t_z)**2)\n", " # delta = sqrt((A.x-target.x)**2+(A.y-target.y)**2+(A.z-target.z)**2)/3e8\n", " delta = distance/v\n", " YIF = cos(2 *pi *(f0_min * delta + slope * delta * T + slope * delta**2))\n", " return YIF\n", "\n", "f0_min = 60e9\n", "c = 3e8\n", "# lambda ~5mm at 60GHz\n", "lambda0_max = 3e8/f0_min\n", "n_rx = 2\n", "Distance = 10\n", "k = 10e12\n", "n_samples = 512\n", "f_if = 2*k*Distance/c\n", "fs = 50e6\n", "ts = 1/fs\n", "\n", "antenna_tx = (-lambda0_max/2,0,0)\n", "antenna_rx = (0,0,0)\n", "T = arange(0, n_samples*ts+ts, ts)\n", "\n", "errors = []\n", "distances = arange(11, 12.4, 0.01)\n", "for d in distances:\n", " target = (0, d, 0)\n", " f_if = 2*k*d/c\n", " # sanity check\n", " assert f_if < 1/ts/2\n", "\n", " YIF = y_IF(f0_min, k, T, antenna_tx, antenna_rx, target)\n", " FT = fft(YIF)\n", " MAG = abs(FT)[0:int(n_samples/2)]\n", " ANG = angle(FT)[0:int(n_samples/2)]\n", "\n", " # now find the peak\n", " amplitude_peak = sorted(MAG, reverse = True)[0]\n", " i_peak = list(MAG).index(amplitude_peak)\n", " f_peak = i_peak * fs / n_samples\n", " d_calc = f_peak*c/2/k\n", " bin_size = fs*c/2/k/n_samples\n", " error = (d-d_calc)/bin_size\n", " errors.append(error*100)\n", "\n", "plt.title(\"distance error when only looking at frequency\")\n", "plt.ylabel(\"% error of distance bin\")\n", "plt.plot(distances,errors)" ] }, { "cell_type": "markdown", "metadata": { "id": "XHNuuTYj9j0I" }, "source": [ "## MRE for Quinn's second frequency estimation" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 298 }, "id": "bXmhwSF69nWL", "outputId": "6983a18a-2966-47df-f399-0f26b3464094" }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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cIS1vAYyxXratGlq+rTUWdHna1WvXl1tlvz8pcv56pwEfRKkqeYqGOM98Pjjj6u/IOX/w9NPP61+ycqw1DPPPANreP7Sszh37ly0adNG1RiS60tvkxyvrA+Kqnj+Etzee++9aihRekekd0D//1nu1we+8uF49913q+BASNmAsWPHqg/Ijh07qppT0rP20EMPwRQZ4zWQoTf5Hfjzzz+rWkv6x3h4eKjaW5b8/N3c3K75fSc1miTIqtTfg5U6t47KtHnzZjX98epNpnqLb7755rr3T58+vfgaMh1Sf77e8uXLdY0bN9Y5ODjoWrRoofvtt9901vQa1KtX74aPsfT3QEmmXjrAWK/B9u3bVdkMR0dHVUbg7bffViUVrOH55+Xl6d544w1dgwYNdE5OTrrAwEDdE088obt06ZLOnJ6/vlzC9TZ5XMn/81f//54/f76ubt266veglBLYuXOnzlQZ4zUo6zHyfrKW90BJxigdUE3+qbzQi4iIiMiyMGeJiIiIyAAGS0REREQGMFgiIiIiMoDBEhEREZEBDJaIiIiIDGCwRERERGQAgyUiIiIiAxgsERERERnAYImIiIjIAAZLRERERAYwWCIiIiJC2f4f1h5qIK2DhPsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from numpy import log,sqrt\n", "from numpy import abs ,angle, arange, arcsin, cos, pi, sqrt, tan\n", "import matplotlib.pyplot as plt\n", "from scipy.fft import fft\n", "\n", "def quinnsecond(FFT,k):\n", " \"\"\" Provide frequency estimator via Quinn's second estimate\n", " Parameters:\n", " -----------\n", " FFT:\n", " k:\n", " Returns:\n", " --------\n", " d:\n", " Details:\n", " --------\n", " C code source: https://gist.github.com/hiromorozumi/f74fd4d5592a7f79028560cb2922d05f\n", " out[k][0] ... real part of FFT output at bin k\n", " out[k][1] ... imaginary part of FFT output at bin k\n", " c++ code:\n", " divider = pow(out[k][0], 2.0) + pow(out[k][1], 2.0);\n", " ap = (out[k+1][0] * out[k][0] + out[k+1][1] * out[k][1]) / divider;\n", " dp = -ap / (1.0 - ap);\n", " am = (out[k-1][0] * out[k][0] + out[k-1][1] * out[k][1]) / divider;\n", "\n", " dm = am / (1.0 - am);\n", " d = (dp + dm) / 2 + tau(dp * dp) - tau(dm * dm);\n", " \"\"\"\n", " out = [[z.real, z.imag] for z in FFT]\n", "\n", " def tau(x):\n", " return 1/4* log(3*x**2 + 6*x + 1) - sqrt(6)/24 * log((x + 1 - sqrt(2/3)) / (x + 1 + sqrt(2/3)))\n", "\n", " divider = out[k][0]**2.0+ out[k][1]**2\n", " ap = (out[k+1][0] * out[k][0] + out[k+1][1] * out[k][1]) / divider\n", " dp = -ap / (1.0 - ap)\n", " am = (out[k-1][0] * out[k][0] + out[k-1][1] * out[k][1]) / divider\n", "\n", " dm = am / (1.0 - am)\n", " d = (dp + dm) / 2 + tau(dp * dp) - tau(dm * dm)\n", "\n", " return d\n", "\n", "def y_IF(f0_min, slope, T, antenna_tx, antenna_rx, target, v=3e8):\n", " \"\"\" This function implements the mathematical IF defined in latex as\n", " y_{IF} = cos(2 \\pi [f_0\\delta + s * \\delta * t - s* \\delta^2])\n", " into following python code\n", " y_IF = cos (2*pi*(f_0 * delta + slope * delta * T + slope * delta**2))\n", " Parameters:\n", " -----------\n", " f0_min: float\n", " the frequency at the begining of the chirp\n", " slope: float\n", " the slope with which the chirp frequency inceases over time\n", " T: ndarray\n", " the 1D vector containing time values\n", " antenna_tx: tuple of floats\n", " x, y, z coordinates\n", " antenna_rx: tuple of floats\n", " x, y, z coordinates\n", " target: tuple of floats\n", " x, y, z coordinates\n", " v: float\n", " speed of light in considered medium\n", " Returns:\n", " --------\n", " YIF: ndarray\n", " vector containing the IF values\n", " \"\"\"\n", " tx_x, tx_y, tx_z = antenna_tx\n", " rx_x, rx_y, rx_z = antenna_rx\n", " t_x, t_y, t_z = target\n", " distance = sqrt((tx_x-t_x)**2 + (tx_y-t_y)**2 + (tx_z-t_z)**2)\n", " distance += sqrt((rx_x-t_x)**2 + (rx_y-t_y)**2 + (rx_z-t_z)**2)\n", " # delta = sqrt((A.x-target.x)**2+(A.y-target.y)**2+(A.z-target.z)**2)/3e8\n", " delta = distance/v\n", " YIF = cos(2 *pi *(f0_min * delta + slope * delta * T + slope * delta**2))\n", " return YIF\n", "\n", "f0_min = 60e9\n", "c = 3e8\n", "# lambda ~5mm at 60GHz\n", "lambda0_max = 3e8/f0_min\n", "n_rx = 2\n", "Distance = 10\n", "k = 10e12\n", "n_samples = 512\n", "f_if = 2*k*Distance/c\n", "fs = 50e6\n", "ts = 1/fs\n", "\n", "antenna_tx = (-lambda0_max/2,0,0)\n", "antenna_rx = (0,0,0)\n", "T = arange(0, n_samples*ts+ts, ts)\n", "\n", "errors = []\n", "distances = arange(11, 12.4, 0.01)\n", "for d in distances:\n", " target = (0, d, 0)\n", " f_if = 2*k*d/c\n", " # sanity check\n", " assert f_if < 1/ts/2\n", "\n", " YIF = y_IF(f0_min, k, T, antenna_tx, antenna_rx, target)\n", " FT = fft(YIF)\n", " MAG = abs(FT)[0:int(n_samples/2)]\n", " ANG = angle(FT)[0:int(n_samples/2)]\n", "\n", " # now find the peak\n", " amplitude_peak = sorted(MAG, reverse = True)[0]\n", " i_peak = list(MAG).index(amplitude_peak)\n", "\n", " delta_i = quinnsecond(FT, i_peak)\n", " f1_estimate = fs*(i_peak+delta_i)/len(T)\n", "\n", " d_calc = f1_estimate*c/2/k\n", " bin_size = fs*c/2/k/n_samples\n", " error = (d-d_calc)/bin_size\n", " errors.append(error*100)\n", "\n", "plt.title(\"error w/ Quinn's second\")\n", "plt.ylabel(\"% error of distance bin\")\n", "plt.plot(distances,errors)" ] }, { "cell_type": "markdown", "metadata": { "id": "sxYuMA2IKwXE" }, "source": [ "## MRE for Zero Padding" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 298 }, "id": "m7ACEUHrKyt1", "outputId": "89aab300-05b2-4ac4-f679-b6b923060f76" }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from numpy import abs ,angle, arange, arcsin, cos, pi, sqrt, tan\n", "import matplotlib.pyplot as plt\n", "from scipy.fft import fft\n", "\n", "def y_IF(f0_min, slope, T, antenna_tx, antenna_rx, target, v=3e8):\n", " \"\"\" This function implements the mathematical IF defined in latex as\n", " y_{IF} = cos(2 \\pi [f_0\\delta + s * \\delta * t - s* \\delta^2])\n", " into following python code\n", " y_IF = cos (2*pi*(f_0 * delta + slope * delta * T + slope * delta**2))\n", " Parameters:\n", " -----------\n", " f0_min: float\n", " the frequency at the begining of the chirp\n", " slope: float\n", " the slope with which the chirp frequency inceases over time\n", " T: ndarray\n", " the 1D vector containing time values\n", " antenna_tx: tuple of floats\n", " x, y, z coordinates\n", " antenna_rx: tuple of floats\n", " x, y, z coordinates\n", " target: tuple of floats\n", " x, y, z coordinates\n", " v: float\n", " speed of light in considered medium\n", " Returns:\n", " --------\n", " YIF: ndarray\n", " vector containing the IF values\n", " \"\"\"\n", " tx_x, tx_y, tx_z = antenna_tx\n", " rx_x, rx_y, rx_z = antenna_rx\n", " t_x, t_y, t_z = target\n", " distance = sqrt((tx_x-t_x)**2 + (tx_y-t_y)**2 + (tx_z-t_z)**2)\n", " distance += sqrt((rx_x-t_x)**2 + (rx_y-t_y)**2 + (rx_z-t_z)**2)\n", " # delta = sqrt((A.x-target.x)**2+(A.y-target.y)**2+(A.z-target.z)**2)/3e8\n", " delta = distance/v\n", " YIF = cos(2 *pi *(f0_min * delta + slope * delta * T + slope * delta**2))\n", " return YIF\n", "\n", "f0_min = 60e9\n", "c = 3e8\n", "# lambda ~5mm at 60GHz\n", "lambda0_max = 3e8/f0_min\n", "n_rx = 2\n", "Distance = 10\n", "k = 10e12\n", "n_samples = 512\n", "f_if = 2*k*Distance/c\n", "fs = 50e6\n", "ts = 1/fs\n", "\n", "antenna_tx = (-lambda0_max/2,0,0)\n", "antenna_rx = (0,0,0)\n", "T = arange(0, n_samples*ts+ts, ts)\n", "\n", "resize_factor = 100\n", "n_samples_resized = n_samples * resize_factor\n", "errors = []\n", "distances = arange(11, 12.4, 0.1)\n", "for d in distances:\n", " target = (0, d, 0)\n", " f_if = 2*k*d/c\n", " # sanity check\n", " assert f_if < 1/ts/2\n", "\n", " YIF = y_IF(f0_min, k, T, antenna_tx, antenna_rx, target)\n", " YIF.resize(n_samples_resized)\n", " FT = fft(YIF)\n", " MAG = abs(FT)[0:int(n_samples_resized/2)]\n", " ANG = angle(FT)[0:int(n_samples_resized/2)]\n", "\n", " # now find the peak\n", " amplitude_peak = sorted(MAG, reverse = True)[0]\n", " i_peak = list(MAG).index(amplitude_peak)\n", " f_peak = i_peak * fs / n_samples_resized\n", " d_calc = f_peak*c/2/k\n", " bin_size = fs*c/2/k/n_samples\n", " error = (d-d_calc)/bin_size\n", " errors.append(error*100)\n", "\n", "plt.title(\"distance error with 100x Zero Padding\")\n", "plt.ylabel(\"% error of distance bin\")\n", "plt.plot(distances,errors)" ] }, { "cell_type": "markdown", "metadata": { "id": "b1c0k9NcADox" }, "source": [ "## ~~MRE for PHASE to FREQ~~" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 316 }, "id": "GlFrPNlhAhnV", "outputId": "0d050c73-73fb-4f59-a29b-0fda5e0075b3" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "len_T 512\n" ] }, { "data": { "text/plain": [ "Text(0, 0.5, '% error of distance bin')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# / \\\n", "# / ! \\ THIS CODE IS BROKEN/ BUGGED / DO NOT USE\n", "# / ! \\ the term # + slope * delta**2)) is commented out\n", "#/ ! \\ for real life usage this term needs to be compensated for\n", "\n", "from numpy import abs ,angle, arange, arcsin, cos, pi, sqrt, tan\n", "import matplotlib.pyplot as plt\n", "from scipy.fft import fft\n", "\n", "def y_IF(f0_min, slope, T, antenna_tx, antenna_rx, target, v=3e8):\n", " \"\"\" This function implements the mathematical IF defined in latex as\n", " y_{IF} = cos(2 \\pi [f_0\\delta + s * \\delta * t - s* \\delta^2])\n", " into following python code\n", " y_IF = cos (2*pi*(f_0 * delta + slope * delta * T + slope * delta**2))\n", " Parameters:\n", " -----------\n", " f0_min: float\n", " the frequency at the begining of the chirp\n", " slope: float\n", " the slope with which the chirp frequency inceases over time\n", " T: ndarray\n", " the 1D vector containing time values\n", " antenna_tx: tuple of floats\n", " x, y, z coordinates\n", " antenna_rx: tuple of floats\n", " x, y, z coordinates\n", " target: tuple of floats\n", " x, y, z coordinates\n", " v: float\n", " speed of light in considered medium\n", " Returns:\n", " --------\n", " YIF: ndarray\n", " vector containing the IF values\n", " \"\"\"\n", " tx_x, tx_y, tx_z = antenna_tx\n", " rx_x, rx_y, rx_z = antenna_rx\n", " t_x, t_y, t_z = target\n", " distance = sqrt((tx_x-t_x)**2 + (tx_y-t_y)**2 + (tx_z-t_z)**2)\n", " distance += sqrt((rx_x-t_x)**2 + (rx_y-t_y)**2 + (rx_z-t_z)**2)\n", " delta = distance/v\n", " YIF = cos(2 *pi *(f0_min * delta + slope * delta * T)) # + slope * delta**2))\n", " return YIF\n", "\n", "f0_min = 60e9\n", "c = 3e8\n", "# lambda ~5mm at 60GHz\n", "lambda0_max = 3e8/f0_min\n", "n_rx = 2\n", "Distance = 10\n", "k = 10e12\n", "n_samples = 512\n", "f_if = 2*k*Distance/c\n", "fs = 50e6\n", "ts = 1/fs\n", "\n", "antenna_tx = (-lambda0_max/2,0,0)\n", "antenna_rx = (0,0,0)\n", "T = arange(0, n_samples*ts, ts)\n", "print(\"len_T\",len(T))\n", "ns = n_samples//2\n", "\n", "errors = []\n", "phis = []\n", "distances = arange(10, 14, 0.01)\n", "for d in distances:\n", " target = (0, d, 0)\n", " f_if = 2*k*d/c\n", " # sanity check\n", " assert f_if < 1/ts/2\n", "\n", " YIF = y_IF(f0_min, k, T, antenna_tx, antenna_rx, target)\n", " FT = fft(YIF)\n", " MAG = abs(FT)[0:int(n_samples/2)]\n", " ANG = angle(FT)[0:int(n_samples/2)]\n", "\n", " # now find the peak\n", " amplitude_peak = sorted(MAG, reverse = True)[0]\n", " i_peak = list(MAG).index(amplitude_peak)\n", "\n", " # $$ \\epsilon = \\frac{\\phi}{\\pi}*\\frac{N}{N-1} $$\n", " phi = ANG[i_peak]/pi\n", " epsilon = (phi)*(n_samples)/(n_samples-1) # *0.96 why does 0.96 seems to improve it ?!?\n", " # epsilon = 0\n", " f0_estimate = fs*(i_peak)/n_samples +fs*phi/(n_samples)\n", " # fft_bin_size = fs/n_samples\n", " # f_error = (f_if-f0_estimate)/fft_bin_size\n", "\n", " d_calc = f0_estimate*c/2/k\n", " d_error = d - d_calc\n", " bin_size = fs*c/2/k/n_samples\n", " error = (d-d_calc)/bin_size\n", " errors.append(error * 100)\n", "\n", "plt.title(\"error w/ bin phase -- warning missing s*delta^2\")\n", "plt.plot(distances,errors)\n", "plt.ylabel(\"% error of distance bin\")\n" ] }, { "cell_type": "markdown", "metadata": { "id": "QKGi736-Mf9R" }, "source": [ "## BACK-UP\n", "\n", "Not checked / not verified beyond this point" ] }, { "cell_type": "markdown", "metadata": { "id": "TpdSAMNpUUwS" }, "source": [ "## DFT PHASE vs FREQ in 1 bin (from maths)\n", "\n", "source: https://flylib.com/books/en/2.729.1/the_dft_frequency_response_to_a_complex_input.html\n", "\n", "$$ X_c(m) = e^{j[\\pi \\cdot (k-m) - \\pi \\cdot \\frac{k-m}{N}]} \\cdot \\frac{sin(\\pi \\cdot (k-m))}{sin(\\pi \\cdot \\frac{k-m}{N})}$$\n", "\n", "so\n", "$$ \\phi = \\pi \\cdot (k-m) - \\pi \\cdot \\frac{k-m}{N} $$\n", "$$ \\frac{\\phi}{\\pi} = (k-m) \\cdot \\frac{N-1}{N} $$\n", "$$ \\epsilon = \\frac{\\phi}{\\pi}*\\frac{N}{N-1} $$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 295 }, "id": "fZGPn3ebotG0", "outputId": "87c10069-9c3b-472d-93d1-139d01d5c1d2" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHHCAYAAABTMjf2AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUv5JREFUeJzt3Qm8TPX/x/H3te9kyZIlW2mxpWwJRSipEGmhpEgoSwuVkEpFVFRoUUoK2f1SWUpKyFJaKEtRsmXft/k/Puc093/vdXdz77kz5/V8PIY725nvnDkz85nv5/P9fqMCgUBAAAAAPpTJ6wYAAAB4hUAIAAD4FoEQAADwLQIhAADgWwRCAADAtwiEAACAbxEIAQAA3yIQAgAAvkUgBAAAfItACJ6IiopS9+7dvW5GhvTHH384++fdd98N6XbPP/983X333Upv9jzs+djzSgsDBw50tp8cdju7faSy1/iGG25I8nZffvmlsy/s/1A6ePCgzj33XE2YMCFF92vYsKFz8kJaH5+pFfdYHT16tEqXLq1jx4552q5IRCAERJBvv/3W+fDcu3ev102BD73yyivKmzev2rVrJz/48MMP9fLLL6fLY9mPmOPHj2vMmDHp8nh+QiAEZDBlypTRkSNH1L59+1QFQoMGDYo3EFq3bp3efPNNpTd7HvZ87HmlhSeffNLZPpKvfv36zj6z/0PlxIkTTiB07733KnPmzCm67+eff+6cwk16BkI5cuTQXXfdpeHDh4slQkOLQAjIIE6ePOn84rMucfvQS+mXSVKyZ8+urFmzKr3Z87Dnk9z0VUplyZLF2T6SL1OmTM4+s/9DZfbs2dq5c6fatm2b4vtmy5bNOSFxtm///PNPLVy40OumRBQCIYS8VmPt2rXOGzZfvnwqVKiQHnroIR09ejTe+0yfPl2XXnqp8yV9ySWXaO7cubGutzf9Aw88oAsvvFA5c+Z0ttemTZsz8vn2a9R6QipWrOh8wNvt6tWrpy+++CLW7axtt9xyiwoWLOjc7vLLL9fMmTMTfV62bbt9x44dz7hu//79znYefvhh57wFMk899ZRq1Kih/PnzK3fu3LrqqqvO+OAK1gENGzbM+UVZvnx5Zx/88ssv8dYI/fjjj07XeLly5ZzHK1asmO655x79+++/sfb/I4884vxdtmxZZxsxax/iqxHauHGjsz/t+eXKlUu1a9fWnDlz4q0nmTRpkp599lmVLFnSaUOjRo20fv16paYGI1jLsnjxYtWsWdPZnj238ePHp/h1ja9GyOooevXqpSJFijipmhtvvFF//fVXvO37+++/nX1ZtGjR6OPwnXfeUXKD18GDB0e/fva8Hn/88TPqOJL7fI315vXs2VOlSpVytlmhQgW98MILOn36tJLLeleqVavmPM7FF1+sqVOnJlkjZDU69l60Y/Dqq692jofzzjtPL774YrIe097L9jxtX8S0bds2571jx409n+LFi+umm26KdTzErRGKeczZ62/tsNfR3rv79u1z9q/tI6tHypMnj7P9mPs8sTq75NSJzZgxQ82bN1eJEiWcNttzstf51KlTsdps7xX7jAq+1+z5B1l7BgwY4Lx+tg17PR999NEzjo2UHKv2uWLvVWsfQidLCLcFOCwIsg+EIUOG6LvvvtOrr76qPXv2nPGhb18K9gFtgY59ANjtWrdurc2bNztfeGb58uVOusdqDuyD1D7g3njjDedDyD6w7cPa2AebPZ51y9sXjQUo33//vVauXKlrr73Wuc3PP/+sK6+80vlQ7du3rxOk2AftzTffrE8++UQtW7aM9/lYL4pdZ221/HzMX6724W8fZMGaCHvct956S7fddpvuu+8+HThwQG+//baaNm2qZcuWOV9OMY0bN84JEjt37ux8WNqHXHxfePbFb0GLfeBbEGTPZezYsc7/to/tQ7hVq1b67bffNHHiRI0YMUKFCxd27msfsPHZvn276tatq8OHD+vBBx909vl7773nfBBPmTLljP3x/PPPOz0IFvTZl5F9Qd5xxx1aunSpUsOCKPti69Spk9Plb8GHBWr2YW/BSHJf1/jY7T/44APdfvvtznNcsGCB88UW3z6w4C9YvG/76tNPP3XaZI9lX7aJscexfWbPo0+fPs6+sPb++uuvmjZtWoqfr70WDRo0cIKzLl26OMWxdvz369dP//zzT7LSML///rtuvfVW3X///c7j2DFmwa79yEhsnxl7nzZr1sw5lux9bMfBY489psqVK+u6665L9L7Wzssuu+yMy+09bcdpjx49nM+FHTt2OMezvc9jBg7xsX1pP4Ds/Wr7b+TIkc770Y5Da6sdH3b8W8Bjwb/9CAkF254FWL1793b+t+PHtm3HxNChQ53bPPHEE877wIIWe78Zu62x97C9j+wz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6Omnpc8+k849V/rxR6lGDemDD0L+UAAAIBICocKFCytz5szavn17rMvtfLFixeK9j12ektub7NmzO7nEmKe0cu210urV0tVXS4cOSe3bS506SYcPp9lDAgCAcAyEsmXLpho1ami+VRj/x4ql7XydOnXivY9dHvP25osvvkjw9l4oXtzaJA0c6PYUvfOOdMUV0i+/eN0yAAAiX9gEQsaGzr/55pt677339Ouvv6pr167OqLCOHTs613fo0MFJbQU99NBDmjt3rl566SWtXbtWAwcO1Pfff6/u3bsrI8mcWRowwB1FZp1VFgRdfrk0bpxbTwQAANJGWAVCNhx+2LBheuqpp5wh8KtXr3YCnWBB9ObNm/XPP/9E375u3br68MMPNXbsWGfOoSlTpmj69Om69NJLlRFZisxSZZYys5Fk99wj3XWXdPCg1y0DACAyhdU8Ql5Iq3mEEnP6tPT881L//u7flSrZZJJSlSrp8vAAAIS9iJtHyE8yZZIef1z68kvpvPOktWttMklp7FhSZQAAhBKBUAZ21VVuqswmXjx6VOrSRbr9dotyvW4ZAACRgUAogytcWLIVQl580S2q/ugjd86hVau8bhkAAOGPQChMUmWPPCJ9/bVUurS0fr07G/Xrr5MqAwDgbBAIhRGb/sh6gm680dZek7p1k9q2lfbu9bplAACEJwKhMFOwoDR9ujRihJQ1qzRlinTZZdLy5V63DACA8EMgFIZsBuqePaVvvpHOP1/atEm68krp5ZdJlQEAkBIEQmHMluKwVFmrVtKJE1KvXlLLltLu3V63DACA8EAgFOYKFHDTY6NG2Xps0owZUvXq0nffed0yAAAyPgKhCEmVWeH0kiVS+fK21Ig7B9HQoe7M1AAAIH4EQhHEiqZXrrQ12aSTJ6VHH3VHmO3a5XXLAADImAiEIowtpzJxojRmjJQ9uzRnjlStmrR4sdctAwAg4yEQitBUWefO0rJl0oUXSn//LTVsKA0ZQqoMAICYCIQimK1W//330p13SqdOuQu52rplO3Z43TIAADIGAqEIlyePNH689M47Us6c0uefu6kyW9keAAC/IxDySaqsY0d39umLL5b++Udq1EgaNMjtKQIAwK8IhHzkkkvcuiELiqxWaOBAqUkTads2r1sGAIA3CIR8JnduN01m6TL7e8ECqWpVad48r1sGAED6IxDyqfbt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KqtZU9q7V7r5ZqlnT+n4ca9bBiCSEQgByDDOP1/6+mupTx/3vPUUXXmltHGj1y0DEKnOKhA6fvy41q1bp5NMBAIgRLJlc2uFZs6UChZ0F3GtXl2aMsXrlgGIRKkKhA4fPqxOnTopV65cuuSSS7R582bn8h49euj5558PdRsB+FCLFtLq1VLdutL+/VKbNlK3btLRo163DID8Hgj169dPP/zwg7788kvlsElB/tO4cWN9bJODAEAIlCrlLsnRt6973uYfqlNH+v13r1sGwNeB0PTp0zVq1CjVq1dPUVFR0Zdb79CGDRtC2T4APpc1qzsD9aefSoULu71El10mTZzodcsA+DYQ2rlzp84999wzLj906FCswAgAQqVZMzcIsnmGDh501y7r3Fk6csTrlgHwXSB0+eWXa06M+fCDwc9bb72lOtZvDQBp4LzzpPnzpf797XPHXdW+Vi1p7VqvWwbAV4HQc889p8cff1xdu3Z1Roy98soratKkicaNG6dnn3029K2UnO3WrVvXKdAuYLOuJcPdd9/tBGkxT83sZyWAsJUli/T009Lnn0tFi0pr1rjLdIwf73XLAPgmELLaoNWrVztBUOXKlfX55587qbIlS5aohn0ipQEbqt+mTRsn+EoJC3z++eef6NNECguAiNC4sZsqu+YaG8kq3XWX1LGjpei9bhmAcJIltXcsX7683rR+6XQyaNAg5/933303RffLnj27ihUrlkatAuAle2tbz9Bzz0kDB9rng7RsmTRpkg3e8Lp1ACK2R2jlypVaY/3R/5kxY4ZuvvlmJ11mPTcZiQ3xt96qCy+80OlN+teWuQYQMTJndmuGrHaoeHHpl1+kK66Q3nlHCgS8bh2AiAyEunTpot9++835e+PGjbr11lud2p3Jkyfr0UcfVUZhabHx48dr/vz5euGFF/TVV1/puuuu06lTpxK8z7Fjx7R///5YJwAZX8OGbqqsSRN3JFmnTlL79tKBA163DEDEBUIWBFWz5aElJ/hp0KCBPvzwQydt9cknnyR7O3379j2jmDnuae1ZDAdp166dbrzxRqeOyXqsZs+ereXLlzu9RAkZMmSI8ufPH30qZTO6AQgLNquHzTdk8w5ZT9GECTbKVfrhB69bBiCiAqFAIKDTp087f8+bN0/XX3+987cFDbt27Ur2dvr06aNff/010VO5cuUUKratwoUL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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from numpy.fft import fft, ifft,fftfreq\n", "from numpy import abs, angle, arange, dot, exp, sin, pi\n", "import matplotlib.pyplot as plt\n", "from numpy import exp\n", "\n", "def DFT_new(x):\n", " \"\"\"\n", " Function to calculate the\n", " discrete Fourier Transform\n", " of a 1D real-valued signal x\n", " \"\"\"\n", "\n", " N = len(x)\n", " n = arange(N)\n", " k = n.reshape((N, 1))\n", " e = exp(-2j * pi * k * n / N)\n", "\n", " X = dot(e, x)\n", "\n", " return X\n", "\n", "def dft_resp(k,m,N):\n", " \"\"\" function to provide the DFT response from the explicit formula from book\n", " \"\"\"\n", " if k==m:\n", " return N,0\n", " #dft = exp(1j*pi*((k-m)-(k-m)/N))*sin(pi*(k-m))/sin(pi*(k-m)/N)\n", " val = exp(1j*pi*((k-m)-(k-m)/N))*sin(pi*(k-m))/sin(pi*(k-m)/N)\n", " return abs(val),angle(val)\n", "\n", "def plot_phase(N=1024):\n", " k=100\n", " phases = []\n", " offsets = range(1000)\n", " ms = []\n", " for offset in offsets:\n", " m=k+offset/1e3\n", " _, phase = dft_resp(k,m,N)\n", " phases.append(phase)\n", " ms.append(m)\n", " plt.title(\"phase variation inside one bin (simulated)\")\n", " plt.plot(ms,phases,'b')\n", " plt.xlabel('m')\n", " plt.ylabel('phase')\n", "plot_phase()" ] }, { "cell_type": "markdown", "metadata": { "id": "BClivJ0C3DBP" }, "source": [ "## DFT PHASE vs FREQ in 1 bin (from FFT)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 316 }, "id": "Mdjl56xBId_K", "outputId": "b884c459-d28a-4979-d648-2cfa72ff57fe" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "done\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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vv32W/t+ToMGDSr+eGFhoT2g5uXl6YcfftB//vMf/fvf/9aECRNO+5zvv/++br31Vt15551KTEzU999/r+HDh8ubObGfr7nmGhtwlixZolWrVik6OtpuS05Oljc7n31d5I9//KOGDBlS6ucs7eN6k4rez+YxzG3y5Mlau3at/RlYuHCh7rrrLnkzJ76fi0ydOtW337/PXOcFlc/EiRPd0dHRJ/1YWlqaOygoyD1v3rzibRs2bDDX63GvWLHCjj///HO3v7+/Ozk5ufg+r732mjsiIsKdm5t70sfNz893N2zY0P3WW2+5fYUT+/ngwYP2Mb777rvibRkZGXbbokWL3N7qfPd1aR/rfB7XGzixn0/mvffecwcHB9vfK97Iyf0cHx9vf1fv37/fPuaCBQvcvoaZl0psy5Yt9t01W7RooVtuucW2Jwzzl3p+fr769u1bfF8zXWmmalesWGHH5t/OnTurbt26xffp37+/fQfTdevWnfT54uLitHfvXvvmlrGxsapfv76dljR/SXmzit7PZhrZTK+/8847ysrKsjMwb7zxhm05mSlkb3Y++/pclNfjVnYVvZ9PxrSMTEs0MNDr3v/X0f2cnZ1tZ8NnzpypevXqyVcRXiops+akaOr1tdde044dO9SnTx/7duGmtRAcHKzq1asf9znmAFrUdjD/ljygFn286GMns3379uJe7mOPPaZPP/3Urnm59NJLbU/bGzmxn81U79dff634+HiFh4crNDRUU6ZMsTWY/e2tzndfn4vyetzKzIn9fKLU1FQ9/fTTuueee+StnNrPph3Vu3dvu2bOl3lvJPZwZsajSJcuXewPStOmTfXee+/ZBXHlweVy2X//9re/2cVlxr/+9S81atTI9m3vvfdeeRsn9rNZaGcW8pmZlmXLltnneeutt3Tttdfq559/tjNe3siJfe2LnN7PZtbRrAPr0KGD/UPIWzmxnz/++GO7Ti4+Pl6+jpkXD2ESfJs2bbR161Y7VWgWiKalpR13H7OSvWga0fx74sr2ovGpphqLDprml04RswreTIkWTYd6u4rYz+aXj5nVmjNnji666CJ17dpVr776qv2FZxb8+oqz3dfnorwe15NUxH4uYmYdrrzySjujuGDBAgUFBclXVMR+Nr87tm3bZp/LtOOKWnLmj00zQ+5LCC8e4ujRo/ab1gQMsy7C/FJYvHhx8cc3bdpkA0avXr3s2Py7Zs0apaSkFN9n0aJFtgddMpyUVHTKnnmsIqZvu3PnTvsXhS+oiP1setaGWVtUkhkXzX75grPd1+eivB7Xk1TEfi6acenXr59tl5gZAtMO9SUVsZ/HjRun1atXKyEhofhmvPzyy3aW3Kc4vWIYJ/fggw+6ly5d6t6xY4f7+++/d/ft29cdFRXlTklJsR//85//7G7SpIl7yZIl7l9++cXdq1cveytSUFDg7tSpk7tfv37uhIQE98KFC921a9d2jx8/vvg+P/30k7tt27buPXv2FG8bM2aMXcX+5Zdfujdu3Oi+66673HXq1HEfPnzY7Y2c2M/mbKNatWq5Bw0aZD9n06ZN7oceesienWDG3up897WxZcsWe6bFvffe627Tpo39f3MrOrPL7GOzr80+L1Kax/UmTuzn9PR0d8+ePd2dO3d2b9261Z4FU3QzPyPeyKnv5xPJR882IrxUUkOGDHHXr1/fnmpowoQZm18KRY4dO+a+77773DVq1HCHhYW5b7jhBvuLoqSdO3e6BwwY4K5SpYr9oTI/bCVPW/zmm2/sN7754SuSl5dn72cCS3h4uP2BXLt2rdtbObWff/75Zxt4atasaffzhRdeaE+79mZlsa8vueQSuy9PvBXtW/OvGZt9fjaP602c2M9F3+On+xxv49T384nko+HFz/zH6dkfAACA0mLNCwAA8CiEFwAA4FEILwAAwKMQXgAAgEchvAAAAI9CeAEAAB6F8AIAADwK4QUAAHgUwgsAAPAohBcAAOBRCC8AAECe5P8BXP3ugeU6sX0AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# phase measurement with FFT\n", "n_fft = 2000 #FFT points\n", "fs= 2000 #sampling frequency\n", "phases = []\n", "fos = []\n", "for fo in range(1,1000):\n", " f0 = 500.5+fo/1000 #signal frequency\n", " assert fs > 2*f0\n", " T = arange(0,n_fft/fs,1/fs)\n", " Y = sin(2*pi*f0*T+pi/2)\n", " FFT = fft(Y)\n", " MAG = abs(FFT)\n", " PHASE = angle(FFT)\n", "\n", " n_fft_points = int(len(MAG)/2)\n", "\n", " MAG = MAG[0:n_fft_points]\n", " PHASE = PHASE[0:n_fft_points]\n", "\n", " Npeaks=1\n", " sorted_magnitude = sorted(MAG,reverse = True)\n", " sorted_magnitude = sorted_magnitude[:Npeaks][0]\n", " fpeak = list(MAG).index(sorted_magnitude) #for peak in sorted_magnitude][0]\n", " fp = MAG[fpeak]\n", " ph_p = PHASE[fpeak]/pi\n", " phases.append(ph_p)\n", " fos.append(f0)\n", "print(\"done\")\n", "plt.title(\"phase measured from FFT\")\n", "plt.plot(fos,phases)" ] }, { "cell_type": "markdown", "metadata": { "id": "uMOEyJwXQt7e" }, "source": [ "## FREQ from PHASE\n", "\n", "checking interpolation from phase to freq - seems to work down to 0.003mm" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "ITaXzibv87BB", "outputId": "9a895d79-f07b-4455-a760-7ab76d3ef165" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#from v0.3 but backward: freq from phase\n", "#freq accuracy at 2000 points ~ 1/1000th better than FFT\n", "#FFT gives 3cm, phase gives <-> 0.003mm\n", "fs = 2000\n", "ts = 1.0/fs\n", "t_max = 1\n", "T = arange(0,t_max,ts)\n", "f0 = 500.5\n", "n_increments=8000\n", "phases = []\n", "f1s = []\n", "Xs = []\n", "Ys = []\n", "\n", "#for f1 in [200.6,200.55,200.732,200.8855]:\n", "#for f1o in [.1,.05,.232,.3855]:\n", "for f1o in arange(0,1,0.05):\n", " f1=f0+f1o\n", " Y=sin(2*pi*f1*T)\n", " FFT = fft(Y)\n", " MAG = abs(FFT)\n", " ANG = angle(FFT)\n", " n_fft_points = int(len(MAG)/2)\n", "\n", " MAG = MAG[0:n_fft_points]\n", " ANG = ANG[0:n_fft_points]\n", "\n", " Npeaks=1\n", " sorted_magnitude = sorted(MAG,reverse = True)\n", " sorted_magnitude = sorted_magnitude[:Npeaks][0]\n", " fpeak = list(MAG).index(sorted_magnitude)\n", " ph_peak = ANG[fpeak]\n", "\n", " epsilon_estimate = (ph_peak+pi)/(pi*(1-1/n_increments)) #+pi*()\n", " f1_estimate = f0+epsilon_estimate\n", " Xs.append(f1o)\n", " Ys.append((f1-f1_estimate)*100)\n", "max_error = max(abs(Ys))\n", "plt.title(f\"freq error from phase - max is {max_error:.2g} %\")\n", "plt.plot(Xs, Ys)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "rnnrVZCSs-BJ" }, "source": [ "## Back-up #2\n", "\n", "> prep and research code (back-up)" ] }, { "cell_type": "markdown", "metadata": { "id": "iCKSRQNnwjA8" }, "source": [ "## Quinn's second order" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "id": "vz9kb9ZhwER8" }, "outputs": [], "source": [ "from numpy import log,sqrt\n", "\n", "def quinnsecond(FFT,k):\n", " \"\"\" Provide frequency estimator via Quinn's second estimate\n", " Parameters:\n", " -----------\n", " FFT:\n", " k:\n", " Returns:\n", " --------\n", " d:\n", " Details:\n", " --------\n", " C code source: https://gist.github.com/hiromorozumi/f74fd4d5592a7f79028560cb2922d05f\n", " out[k][0] ... real part of FFT output at bin k\n", " out[k][1] ... imaginary part of FFT output at bin k\n", " c++ code:\n", " divider = pow(out[k][0], 2.0) + pow(out[k][1], 2.0);\n", " ap = (out[k+1][0] * out[k][0] + out[k+1][1] * out[k][1]) / divider;\n", " dp = -ap / (1.0 - ap);\n", " am = (out[k-1][0] * out[k][0] + out[k-1][1] * out[k][1]) / divider;\n", "\n", " dm = am / (1.0 - am);\n", " d = (dp + dm) / 2 + tau(dp * dp) - tau(dm * dm);\n", " \"\"\"\n", " out = [[z.real, z.imag] for z in FFT]\n", "\n", " def tau(x):\n", " return 1/4* log(3*x**2 + 6*x + 1) - sqrt(6)/24 * log((x + 1 - sqrt(2/3)) / (x + 1 + sqrt(2/3)))\n", "\n", " divider = out[k][0]**2.0+ out[k][1]**2\n", " ap = (out[k+1][0] * out[k][0] + out[k+1][1] * out[k][1]) / divider\n", " dp = -ap / (1.0 - ap)\n", " am = (out[k-1][0] * out[k][0] + out[k-1][1] * out[k][1]) / divider\n", "\n", " dm = am / (1.0 - am)\n", " d = (dp + dm) / 2 + tau(dp * dp) - tau(dm * dm)\n", "\n", " return d" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "XtATaRnBwCS8", "outputId": "3f3f81b5-093a-4bcc-b15a-f6aadab30ba6" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fs = 2000\n", "ts = 1.0/fs\n", "t_max = 1\n", "T = arange(0,t_max,ts)\n", "f0 = 500.5\n", "n_increments=8000\n", "phases = []\n", "f1s = []\n", "Xq = []\n", "Yq = []\n", "fft_size = len(T)\n", "\n", "#for f1 in [200.6,200.55,200.732,200.8855]:\n", "#for f1o in [.1,.05,.232,.3855]:\n", "for f1o in arange(0,1,0.05):\n", " f1=f0+f1o\n", " Y=sin(2*pi*f1*T)\n", " FFT = fft(Y)\n", " MAG = abs(FFT)\n", " ANG = angle(FFT)\n", " n_fft_points = int(len(MAG)/2)\n", "\n", " MAG = MAG[0:n_fft_points]\n", " ANG = ANG[0:n_fft_points]\n", "\n", " Npeaks=1\n", " sorted_magnitude = sorted(MAG,reverse = True)\n", " sorted_magnitude = sorted_magnitude[:Npeaks][0]\n", " fpeak = list(MAG).index(sorted_magnitude)\n", " ph_peak = ANG[fpeak]\n", "\n", " #epsilon_estimate = (ph_peak+pi)/(pi*(1-1/n_increments)) #+pi*()\n", " #f1_estimate = f0+epsilon_estimate\n", "\n", " d = quinnsecond(FFT,fpeak)\n", " f1_estimate = 1/ts*(fpeak+d)/fft_size\n", "\n", " Xq.append(f1o)\n", " Yq.append((f1-f1_estimate)*100)\n", "max_error = max(abs(Yq))\n", "plt.title(f\"freq error from quinn's 2d - max is {max_error:.2g} %\")\n", "plt.plot(Xq, Yq)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "Dw4ZJnDJ07yW" }, "source": [ "## PHASE to FREQ" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "mMeqQ2QD0_Jd", "outputId": "c4b7bb94-852d-4e38-cf41-13654bdc2065" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#from v0.3 but backward: freq from phase\n", "#freq accuracy at 2000 points ~ 1/1000th better than FFT\n", "#FFT gives 3cm, phase gives <-> 0.003mm\n", "fs = 2000\n", "ts = 1.0/fs\n", "t_max = 1\n", "T = arange(0,t_max,ts)\n", "f0 = 500.5\n", "n_increments=8000\n", "phases = []\n", "f1s = []\n", "Xfs = []\n", "Yfs = []\n", "\n", "#for f1 in [200.6,200.55,200.732,200.8855]:\n", "#for f1o in [.1,.05,.232,.3855]:\n", "for f1o in arange(0,1,0.05):\n", " f1=f0+f1o\n", " Y=sin(2*pi*f1*T)\n", " FFT = fft(Y)\n", " MAG = abs(FFT)\n", " ANG = angle(FFT)\n", " n_fft_points = int(len(MAG)/2)\n", "\n", " MAG = MAG[0:n_fft_points]\n", " ANG = ANG[0:n_fft_points]\n", "\n", " Npeaks=1\n", " sorted_magnitude = sorted(MAG,reverse = True)\n", " sorted_magnitude = sorted_magnitude[:Npeaks][0]\n", " fpeak = list(MAG).index(sorted_magnitude)\n", " ph_peak = ANG[fpeak]\n", "\n", " epsilon_estimate = (ph_peak+pi)/(pi*(1-1/n_increments)) #+pi*()\n", " f1_estimate = f0+epsilon_estimate\n", " Xfs.append(f1o)\n", " Yfs.append((f1-f1_estimate)*100)\n", "max_error = max(abs(Yfs))\n", "plt.title(f\"freq error from phase - max is {max_error:.2g} %\")\n", "plt.plot(Xs, Ys)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "sD_-EXeK1N3O" }, "source": [ "## no code" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "RktWRz_Z1r_4", "outputId": "5cc8c0a8-3afa-4828-84cc-b0df81d2e63d" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#from v0.3 but backward: freq from phase\n", "#freq accuracy at 2000 points ~ 1/1000th better than FFT\n", "#FFT gives 3cm, phase gives <-> 0.003mm\n", "fs = 2000\n", "ts = 1.0/fs\n", "t_max = 1\n", "T = arange(0,t_max,ts)\n", "f0 = 500.5\n", "n_increments=8000\n", "phases = []\n", "f1s = []\n", "Xzs = []\n", "Yzs = []\n", "\n", "#for f1 in [200.6,200.55,200.732,200.8855]:\n", "#for f1o in [.1,.05,.232,.3855]:\n", "for f1o in arange(0,1,0.05):\n", " f1=f0+f1o\n", " Y=sin(2*pi*f1*T)\n", " FFT = fft(Y)\n", " MAG = abs(FFT)\n", " ANG = angle(FFT)\n", " n_fft_points = int(len(MAG)/2)\n", "\n", " MAG = MAG[0:n_fft_points]\n", " ANG = ANG[0:n_fft_points]\n", "\n", " Npeaks=1\n", " sorted_magnitude = sorted(MAG,reverse = True)\n", " sorted_magnitude = sorted_magnitude[:Npeaks][0]\n", " fpeak = list(MAG).index(sorted_magnitude)\n", " ph_peak = ANG[fpeak]\n", "\n", " f1_estimate = fpeak\n", " Xzs.append(f1o)\n", " Yzs.append((f1-f1_estimate)*100)\n", "max_error = max(abs(Yzs))\n", "plt.title(f\"freq error from phase - max is {max_error:.2g} %\")\n", "plt.plot(Xs, Ys)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "JCnbXcBk2Gt6" }, "source": [ "## zero padding" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "ZtcaTIE12Jhu", "outputId": "f5a7c588-9162-474d-d479-4bce0e3fed38" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAGzCAYAAADnmPfhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAA07pJREFUeJztfQm4JEWRf9Z7DwZQTrlhEMEDEJAFFhYUTxSERf2vByoqugi7q6grrgoeoKKCLiKKKKIg6oLgAYiAo8ghcsh9X3IzHDPDcMwMMzAz73X9v6x+VV0ZGRkZlZ1VXf1exPc9pWt+nUd1ZGbkLyIjkzRNUyUiIiIiIiIiMiQyMugGiIiIiIiIiIhUETFeRERERERERIZKxHgRERERERERGSoR40VERERERERkqESMFxEREREREZGhEjFeRERERERERIZKxHgRERERERERGSoR40VERERERERkqESMFxEREREREZGhEjFeKsq1116rdt11V/WCF7xAJUmibrrppkE3aahF3icum266qfrwhz/sxZ166qnZe3vwwQeLZ69//euzvzbJrFmz1HbbbadWWmmlrL3PPPNM9vyXv/yl2mKLLdQKK6yg1lhjjb7q0O9Al63fiYhIU9LG8TYdRIyXCrJ8+XL17ne/Wz311FPqu9/9bjbxvvjFLx50s4ZW5H1OD3nyySfVe97zHrXyyiurE044IfudtbF61113ZQba5ptvrn7yk5+ok046SS1ZskR95StfUZdeeqmaCnLNNdeoj33sY2qHHXbIDDRtXFFy8sknqy233DIz8l72spep448/HsU9+uij2TvVBt9qq62m3v72t6v777+/dWWKVJfQd3vppZdm+oX9/f3vf/d+/4orrlDbb7+9WnXVVTNjTI9PKJ/85CfVHnvsoVoh+m4jEZ7ceeed+h6o9Cc/+cmgmzIlRN6nW1784hen+++/vxf3s5/9LHuHDzzwQPFs6dKl2V9b5I9//GPWxgsvvNB4/qMf/Sh7fs899xTPnnjiiezZEUccUbke/Q70d/U7aYvofqywwgrpDjvskL785S/P2ueSE088Mfv3d77znelJJ52UfvCDH8w+H3300QZu0aJF6cte9rJ03XXXTb/1rW+lxx57bDpz5sx04403TufPn9+aMqeLxBxv/bzbSy65JMN+8pOfTH/5y18af3pcUfLMM8+kL3rRi9K99947G5c777xzutVWW6Xj4+MF5rbbbktXWmml9Pbbb0/bIGK8VJC//vWvmXL85je/8WKfffbZdBik0+mkS5YsQf/tueeeSycmJvoqn3oPU/F9tsF4aZv8/Oc/z9p47bXXGs+/+tWvZs/LE+tUM17mzJlTjK+Pf/zjTuNFY/LFoyz77bdf+oIXvCB96qmnimfauNDlXHPNNcZGYHR0ND3ssMNaU6ZINen33V4yabxw5lNsg7HKKqtkc355LN11110FZvfdd08/8YlPpG0RMV6YohcS/WOW/173utcV/6aV6957703f+ta3pi984QvTt7/97dm/6cX/u9/9bmbFzpgxI9vZHHTQQZYiaiPiyCOPTDfaaKN05ZVXTl//+tdnli53EePWo8vTg2PWrFnZblBj9fdyxf/Vr36VfvGLX0w33HDDNEmS9Omnn86+9+tf/zrdfvvtM8tbDzA9oB555BHrHbneQ6z3qY2YQw45JNsRrrjiitlu9n//93+z91cWXZ5eLHS7t9xyy6zd//Iv/5LecsstxQ5n8803z/qv6+Us/npB1eXqSf3d7353uuqqq6ZrrbVWttPJB30up5xySvqGN7whXWeddbJ26jb88Ic/tMqs8rvr57pM3ReN1987+eSTLeNF9yd/l1ry3/bMM89Mv/71r2ff1f1+4xvfaLAeufzgBz9IX/KSl2T1/PM//3N62WWXWWVyRX8H/s66X7p/2HP4rIoh4zJe9O+ld7Jrrrlm1m+t97///e9RI/Dyyy9PP/3pT6drr712Npm/4x3vSOfNm2ftUnWZ+v+rCGW8nH/++dm/6f8vy5VXXpk917vnXPRvov+gvOUtb8l0ui1l9iv5b/K3v/0tWzT1b7L66qtn85pmOvTcpJmJNdZYI/v77Gc/a80Dem7YZZddsnGq9VnPYXBx12NV16PHUlm+8Y1voH2Fgo2N73//+9lcrMe0bpvWudNOO40sp993e0nJeFm4cGG6fPnylCtnnXVW9o5yWbBgQVbWDTfckH0+++yzs3m/TcapGC9M0Qr0hS98waDl/vznP2f/piddPSnqQa7/Wy+Mv/jFL7J/++hHP5qOjY2lBx54YPb885//fLYw64li2bJlRflf+tKXsrL32muvbPH493//98yA0AOWY7xw69GLxktf+tJsIj/00EMzrFb6XPH1gNtuu+0y2vioo45KFy9eXEwiuixt6Ojv6UG56aabFsaN7z3EeJ96YtILrjaqdH/1e9pnn32yMv77v//bKF8/23bbbTPqW1Ou+k9PfJtsskn2Pd3P73znO9l718aFNgq4xss222yT1avL+cAHPpA905NoWfS7+vCHP5y9r+OPPz5bBDROf6cs3N/98ccfzwwh/bt95StfySZlTfPrPnKNl3/6p3/KJlHdJl2GXpx32mknoz3awNLY3XbbLZuAtaGoJzX9W4QYL/o31YuNLvNrX/ta9jvr315Phv/v//2/7LmmqfXzm266qXAl6X/LKe+bb7452HjRBp/+3fXvrdkF/Y5f+9rXZjqkJ+xcch3X70jrmP7NPvOZz2TMw3ve8x6jnhxbleGhjBdtVOp/mzt3rvFcL9IjIyPZ75BvUvTY+K//+i+rjFyX9MI16DJjSP6e9Xy05557pieccELhRvnc5z6XvuY1r0nf//73Zzr7r//6r9lzzfKVRW9yPvaxj2W/u57TtL5r3HnnnWfg9Pe1njz88MPZZ73J0fPCAQcc4G0nHG/a3aPreNe73pX++Mc/Tr/3ve9l5eh5jpJ+3+0lk+Ncb/b0/2vd1ZshyHi6xo7GH3PMMemDDz6Yzaf6fej5//nnn08322wza+4atIjxUkFctFy+Y9SLeln0jkE/hxa3Zj3Kz/XOTg8UzYiUdw754u4zXrj1aMl3vPrfsL5pJS27kbTho1mcrbfe2mAX9ODX+MMPP9z7HmK9z3POOSd7rgd5WfQkoRcjzdTkonF6Qi4v6noi0c/XX3/9YjLWomlxjuslN17e9ra3Gc/15KiflxdZzBW3xx57ZO83lyq/u55M9LOrr77a+L6eYLjGi2Z/yr55Panq57feemv2Wf+b3l1pw6u8azv11FMNZix0EYKTaP4+63QbvelNb8qMTT0B56Lf9a677poZf7CNmhov/xaahdGTepllqcN40f+m68FEG63vfe97jfejDUEoenEvU/2DLDOG5O9Zj5vyb6KZFD3e//M//7N4pmMztKECdRSOQz2f6blMG6hl0ZsDbaS/+c1vzsaBNmL1RkczED6B402zxK985Ssr97ffd3vFFVdkDKNmkDSzqDefejxrxilnUCjRGyJdv37nenN6+umnFwyUfmfl+Jc2iJw2iij/9V//ZXz+zW9+o1ZffXX15je/Wc2fP7/40ycPXvjCF6pLLrkkw/3lL39Ry5YtU5/4xCeM0wj//d//zaqXW08uL3nJS5wR4/vvv392KiSX6667Ts2bNy87MaGj33PZe++9syOu559/vvc9hAos54ILLlCjo6NZxHtZPvOZz+gVQf3xj380nr/pTW/KjhznsvPOO2f//853vjOLqIfPXScroHz84x83PuvfLW9fLuV3uGDBguz3eN3rXpfVoT9X/d112f/yL/+idtppp+LZOuuso/bbbz/FlY985CNqxRVXLD7vtttuRr/1b61PBh144IFqbGyswOk61lxzTTVsok+xXXzxxdkJmkWLFhXjQvdR6/8999yTnbApy0EHHWT8FvodTUxMqIceeqh4pk9IaX3jHGXnynPPPWf8NmXR407/e47TMmPGDBRXxgyyzJhywAEHGL+JHq/6/evnueh5Yccdd7TGcHkcPv3009nY07/pDTfcYODWX3/97CTchRdemP27TtlwyimnZKeuqoo+rfXII49kaSCqSL/vdtddd1W//e1v1b//+7+rt73tberQQw/NThnpd3fYYYd56/+f//mfbDxcddVV2f+/733vU4899pg66qij1HHHHafGx8ezuWqTTTbJ5iF9OmmQ0puhRPoSPdlvvPHGxjM9OerBsu6666Lf0UaBlnxi1MfiyqIXJ86iwa2nbLy4BP5b3rZXvOIVFlYbL5dffrn3PYQIVo5uy4YbbmgYHlr0scJyW3PRg6ws2sDTMnPmTPS5ntw4An8nfdR3ZGTEyLWiB/YRRxyRTQT6+G9Z9G+l66zyu2tsbmSVBftdXALfR15H3u+8PS996Uut36JsBA6L3Hvvvdki9+Uvfzn7c42NjTbaiP2O6hK9yGpDFpPnn3++WITz/1+6dCmKK2MGWSYm+nvaoIS6rg0PSqqMY/g7nXfeeerrX/96ZoyU+4cdWX/ve9+r/u///i/bkGkjVm9+QuTzn/98tjHRC7weS295y1vU+9//fvXqV7+a/F4/79Ylun595P2ss87KjHDfu15vvfWyv3Jf9HvQf1/60pfURRddpM4888xsQ6w3sHrO6zc/U6iI8RJJ9K5FL2Bl6XQ6mUFx2mmnod/RAzeGVK2HGgQhA8T3HgZVjmugup53vU3VBU6E9913XzbYtXF37LHHZpOs3lFp9kTns9G/1yAkdr/bLvl71jtKF9MIDbVBvaMNNtggW1y0MVXehOjF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QaBwgmdFRESmjkjMi4iISKtFH9O+/vrrScwrX/nKLMmXiIjI9BAxXkRERERERESGSiRgV0RERERERGSoZGwqHuvUaYx1cp2YqcZFRERERERE6hPtCNJpGPTVA77EgFPOeNGGC7xtVERERERERGQ4RF9NsPHGG08v4yVPZ6w7X+UGTREREREREZHBycKFCzPygbpGYcoaL7mrSBsuYryIiIiIiIgMl3BCPiRgV0RERERERGSoRIwXERERERERkaESMV5EREREREREhkrEeBEREREREREZKhHjRURERERERGSoRIwXERERERERkaESMV5EREREREREhkrEeBEREREREREZKhHjRURERERERGSoRIwXERERERERkaESMV5EREREREREhkrEeBEREREREREZKhHjJUAuvGOuOv+Wx4vPTy9epk78631q7sLni2eX3DVP/f6mR4vPC5YszzCPPfNc8eyv/3hCnXXDI8Xnhc93MbOfWlI8u+Le+eo3180uPj+7dFz9+K/3qYeeXFw8u+q+J9UZ1zxcfH5u2YQ66bL71P1PPFs8u/bBp9RpVz+k0jTNPj+/fEL95LL71b3zepjrH3pa/eKqBwvMsvGO+unf7lf/mLuowNw8+xl16hUPqE6nixmf6GLufHxhgbnt0QXqlMsfUBOTGP3/+rN+nssdjy3Mvqe/r0WXp8vV5edy95xFGUa3Q4tul27fDQ8/XWDunbco64fuT475v78/lPU3F/0e9PvQ70Vkakium1pHfLqpdS1EN5dP6qbWKaibekxozNLxnt798qoHszGUix5bUDf1GCzr5gPzF2e6uWTZePFMj2U9pnN5+Mkl2ZjXYz8XPSfouSEXPWfouUPPIbnouUXPMbnouUdj9FyUi56jLr5rbvFZz2Ea89TiZcUzPdf9+fY5xed5i7qY+c8uLZ7Num2OmnVbb0588tmlGUZjc/nLHXPVebc8VnwWEelHxHipKHqyO/j0G9SnzrixmHDOvG62OvqPd6lTrnigwH3iVzeqT595k1rwXHei+N0Nj2SYn/zt/gKj//2QX9+cDXQt5970WIbRgz6Xz/z6ZvXZ396i5izoTgIX3Pq4OuqPd6kfXHxvgfnc725Wh551azbJafnzHXPUNy+4S33vonsKzKG/u0V98ezb1H1PLC6Mq29ccKf6zp/vLjBfOuc2dfjvb1d3Pt5d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xouIiIiIiIjIUIkYLyIiIiIiIiJDJWK8iIiIiIiIiAyViPEiIiIiIiIiMlQixouIiIiIiIjIUIkYLyIiIiIiIiJDJWK8iIiIiIiIiAyViPEiIiIiIiIiMlQixouIiIiIiIjIUMmYmmKSX5Ktb6cUERERERERGQ7J1+18HZ9WxsuiRYuy/585c+agmyIiIiIiIiISsI6vvvrqJCZJOSbOEEmn01GPPfaYWnXVVVWSJNGtQm0UzZ49W6222mpRyxbpibznZkTec3Mi77oZkfc83O9ZmyPacNlwww3VyMjI9GJedIc33njjWuvQP5YMjPpF3nMzIu+5OZF33YzIex7e9+xjXHKRgF0RERERERGRoRIxXkRERERERESGSsR4qSAzZsxQRxxxRPb/IvWJvOdmRN5zcyLvuhmR9zx93vOUC9gVERERERERmdoizIuIiIiIiIjIUIkYLyIiIiIiIiJDJWK8iIiIiIiIiAyViPEiIiIiIiIiMlQixouIiIiIiIjIUIkYL0BOOOEEtemmm6qVVlpJ7bzzzuqaa64h8b/5zW/UFltskeG32WYbdcEFFzTW1unynn/yk5+o3XbbTa255prZ3+677+79XUTC9DmXM844I7te4x3veEftbZyO7/mZZ55RH//4x9UGG2yQHTd9+ctfLnNHTe/6uOOOU694xSvUyiuvnKW0//SnP62ef/75xto7jHLZZZepffbZJ0vTr+eBc845x/udSy+9VG2//faZPr/0pS9Vp556ar2N1EelRbpyxhlnpCuuuGJ6yimnpLfffnt64IEHpmussUY6d+5cFH/FFVeko6Oj6be//e30jjvuSL/0pS+lK6ywQnrrrbc23vap/J7f//73pyeccEJ64403pnfeeWf64Q9/OF199dXTRx55pPG2T+X3nMsDDzyQbrTRRuluu+2Wvv3tb2+svdPlPS9dujTdcccd07322iu9/PLLs/d96aWXpjfddFPjbZ/q7/q0005LZ8yYkf2/fs9/+tOf0g022CD99Kc/3Xjbh0kuuOCC9Itf/GJ61lln6VQq6dlnn03i77///nSVVVZJDznkkGwtPP7447O1cdasWbW1UYyXkuy0007pxz/+8eLzxMREuuGGG6ZHHXUUin/Pe96T7r333saznXfeOf2P//iP2ts6nd4zlPHx8XTVVVdNf/7zn9fYyun5nvW73XXXXdOf/vSn6f777y/GSw3v+Uc/+lG62WabpcuWLWuwldPzXWvsG9/4RuOZXmBf/epX197WqSKKYbx87nOfS1/5ylcaz/bdd990jz32qK1d4jaalGXLlqnrr78+c0mUL3nUn6+66ir0O/p5Ga9ljz32cOJFwt4zlCVLlqjly5ertdZaq8aWTs/3/LWvfU2tu+666oADDmiopdPvPZ977rlql112ydxG6623ntp6663VN7/5TTUxMdFgy6fHu951112z7+Supfvvvz9zz+21116NtXs6yFUDWAun3K3SoTJ//vxs8tCTSVn057vuugv9zpw5c1C8fi4S7z1D+fznP5/5YuFgEenvPV9++eXq5JNPVjfddFNDrZye71kvoBdffLHab7/9soX03nvvVR/72Mcyg1ynXBeJ967f//73Z997zWteo70Manx8XP3nf/6n+sIXvtBQq6eHzHGshQsXLlTPPfdcFm8UW4R5ERkqOfroo7Ng0rPPPjsL2BOJI4sWLVIf/OAHs+Dotddee9DNmdLS6XQyduukk05SO+ywg9p3333VF7/4RXXiiScOumlTTnQQqWa1fvjDH6obbrhBnXXWWer8889XRx555KCbJtKnCPMyKXrCHh0dVXPnzjWe68/rr78++h39vApeJOw953LMMcdkxstf/vIXte2229bc0un1nu+77z714IMPZicMyouslrGxMXX33XerzTffvIGWT3191ieMVlhhhex7uWy55ZbZ7lW7RlZcccXa2z1d3vWXv/zlzCj/6Ec/mn3WJ0IXL16sDjrooMxg1G4nkf7FtRauttpqtbAuWuSXmxQ9Yehd0EUXXWRM3vqz9k9jop+X8VouvPBCJ14k7D1r+fa3v53tlmbNmqV23HHHhlo7fd6zPu5/6623Zi6j/O9tb3ubesMb3pD9tz5iKhJHn1/96ldnrqLcONTyj3/8IzNqxHCJ+651fBw0UHKjUe4kjicDWQtrCwUe0mN4+ljdqaeemh33Ouigg7JjeHPmzMn+/YMf/GB66KGHGkelx8bG0mOOOSY7wnvEEUfIUeka3vPRRx+dHY/87W9/mz7++OPF36JFiwbYi6n3nqHIaaN63vPDDz+cnZY7+OCD07vvvjs977zz0nXXXTf9+te/PsBeTM13redk/a5/9atfZcd5//znP6ebb755dlJUxC16btWpKfSfNhOOPfbY7L8feuih7N/1O9bvGh6V/uxnP5uthTq1hRyVblj0+fRNNtkkWyz1sby///3vxb+97nWvyyb0svz6179OX/7yl2d4fVTs/PPPH0Crp/Z7fvGLX5wNIPinJyaRuPpcFjFe6nvPV155ZZZWQS/E+tj0N77xjeyYukjcd718+fL0K1/5SmawrLTSSunMmTPTj33sY+nTTz89oNYPh1xyySXonJu/W/3/+l3D72y33XbZ76J1+mc/+1mtbUz0/9TH64iIiIiIiIiIxBWJeREREREREREZKhHjRURERERERGSoRIwXERERERERkaESMV5EREREREREhkrEeBEREREREREZKhHjRURERERERGSoRIwXERERERERkaESMV5EREREREREhkrEeBEREREREREZKhHjRURERERERGSoRIwXERERERERETVM8v8Bxk0ym12zfDwAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#from v0.3 but backward: freq from phase\n", "#freq accuracy at 2000 points ~ 1/1000th better than FFT\n", "#FFT gives 3cm, phase gives <-> 0.003mm\n", "fs = 2000\n", "ts = 1.0/fs\n", "t_max = 1\n", "T = arange(0,t_max,ts)\n", "f0 = 500.5\n", "n_increments=8000\n", "phases = []\n", "f1s = []\n", "Xpas = []\n", "Ypas = []\n", "resize = 100 #100\n", "#for f1 in [200.6,200.55,200.732,200.8855]:\n", "#for f1o in [.1,.05,.232,.3855]:\n", "for f1o in arange(0,1,0.001):\n", " f1=f0+f1o\n", " X = sin(2*pi*f1*T)\n", " X.resize(fs*resize)\n", " FFT = fft(X)\n", " #FFT = DFT_new(X)\n", " MAG = abs(FFT)\n", " PHASE = angle(FFT)\n", "\n", " n_fft_points = int(len(MAG)/2)\n", "\n", " MAG = MAG[0:n_fft_points]\n", " PHASE = PHASE[0:n_fft_points]\n", "\n", " Npeaks=1\n", " sorted_magnitude = sorted(MAG,reverse = True)\n", " sorted_magnitude = sorted_magnitude[:Npeaks][0]\n", " fpeak = list(MAG).index(sorted_magnitude) #for peak in sorted_magnitude][0]\n", " f1_estimate = fpeak/resize\n", " ph_p = PHASE[fpeak]/pi\n", "\n", " Xpas.append(f1o)\n", " Ypas.append((f1-f1_estimate)*100)\n", "\n", "max_error = max(abs(Ypas))\n", "plt.title(f\"freq error from padding, fft_len: {n_fft_points} - max is {max_error:.2g} %\")\n", "plt.plot(Xpas, Ypas)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "maajsuLd3Bse" }, "source": [ "## OLD and crap from here" ] }, { "cell_type": "markdown", "metadata": { "id": "C2vbf3Th3q_c" }, "source": [ "### v0.3 interpolation of f1 from phase" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 281 }, "id": "g8Z1L7kO3uzO", "outputId": "a2ab50e4-717d-42fc-bd28-06e1092450ed" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fs = 1000\n", "ts = 1.0/fs\n", "t_max = 1\n", "T = arange(0,t_max,ts)\n", "f0 = 200.5\n", "n_increments=2000\n", "phases = []\n", "f1s = []\n", "for f1_offset in range(1,n_increments+1):\n", " epsilon = f1_offset/n_increments\n", " f1 = f0+epsilon\n", " assert fs>f1*2\n", " Y=sin(2*pi*f1*T)\n", " FFT = fft(Y)\n", " MAG = abs(FFT)\n", " ANG = angle(FFT)\n", " n_fft_points = int(len(MAG)/2)\n", "\n", " MAG = MAG[0:n_fft_points]\n", " ANG = ANG[0:n_fft_points]\n", "\n", " Npeaks=1\n", " sorted_magnitude = sorted(MAG,reverse = True)\n", " sorted_magnitude = sorted_magnitude[:Npeaks][0]\n", " fpeak = list(MAG).index(sorted_magnitude)\n", " ph_peak = ANG[fpeak]\n", " f1s.append(f1)\n", " phases.append(ph_peak+pi+epsilon*pi*(-1+1/n_increments)) #+pi*()\n", "plt.title(\"phases\")\n", "plt.plot(f1s[2:],phases[2:])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "NUVnkBgMwIGv" }, "source": [ "### v0.2 - check validity of dft_resp\n", "seems that :\n", "1. dft_resp accuracy increases as f1 increases\n", "2. not really impacted by fs" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 366 }, "id": "deb_dNvXOqSm", "outputId": "6de5f3ec-59c1-4d5e-e817-e5266be199cd" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FFT len 100\n", "Peak at: 50\n", "MAG-5 delta -0.092 %\n", "MAG-6 delta 0.82 %\n", "199.0\n" ] }, { "data": { "image/png": "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AK6Qlyeye7f3ftWqZz++Y0fvddy2bxfZtSvswwMQgwhJAFzh/fdFcnNF6tUTad787MdXqSLSurX3/ooVYR8egBhESALgCvPmeW+vu04kIaFkX2PVJbHkBiAQQhKAmPfLLyILF3rv9+1b8q+z6pIo3gYQCCEJQMx77z2R334T+cMfRFq1KvnXdejgrUvasUNk585wjhBALCIkAXDNUpvOIpV0qU1VrizSpo33PrNJAIoiJAGIadnZIosWlX6pzUIrAABnQkgCENPeeUfkxAmRxo1FmjUr/dfTVBLAmRCSAMTlUpt/XZI2n9SaJK1NAgALIQlAzPr5Z5HFi4NfalOVKom0beu9z2wSAH+EJAAxa/5876VILrhApFGj4F+HuiQAgRCSAMT8Ulu/fqG9jn9dkscT+rgAuAMhCUBMOnhQZOnS0Jba/OuSkpK8136bPduW4QFwAUISgJj05psiBQXePke//31or1Whgsjf/ua9f+utIqtX2zJEADGOkAQg5hw5IjJtmj2zSJb77xfp1cvbTqB3b5G9e+15XQCxi5AEIOau09ajh8jmzSI1aojccIM9r5uYKPLyyyJNm4rs2+cNSseO2fPaAGITIQlAzMjLE7n6apE1a0SqVRP55z9F0tPte329TIk2p6xa1fs9bruNQm4gnhGSAMSE48dFrr1WZOVKkSpVRD76SKR5c/u/T4MG3rPmdGZJi7ifesr+7wEgNhCSAES9kydFrrvOG4wqVhT54AOR1q3D9/2uuELk8ce990eOFOnTR2TXrvB9PwDRiZAEIKrpslfnziLvviuSnOy9vfji8H/fESO8Z7yVKSPy1lveZpUTJ3pntADEB0ISgKj07bfeGZz27UU+/lgkJcUbVjp1isz31+vAjR8v8vnnIn/8o8hvv3lDky7xaadvnd0C4G6EJABRRc9au/lm71lmGoq0NmjQIJEtW0SuvDLy49FQtGKFyCuviGRkiGzb5j3zrVYtkaFDRT79lOJuwK0SPB7+987JyZHU1FQ5evSoVNGKUAARo7+BNm70NofUTUOS5ZprRCZM8AamaJCT411ymzXL2/HbUq+eNzjpjJN27z73XCdHCcSPnDD//SYkEZKAiNIu2bqUprVG2tl6yRKR77//9/Plyol07SoyZkxkao+CoRfV1UuizJnjne369dfCz59/vjcstW3rDXhNmoicc45T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omf4+L832iJA/1jw3tinc+fO8tVXX5lPydamMxm6pGDd532IHF1yLtoKQ2ti6tata+7r/yf6C97//dAlIa2x4P2wV15enqlf8acfqvVvhOK9cE5JfvZ6qx/u9IOgRf/W6PuntUsl5olzr732mqmInz17tqmGHzJkiCctLc2zf/9+p4fmarfddpsnNTXVs3z5cs++fft8W15enu+YW2+91VOnTh3P0qVLPZ999pknMzPTbAgv/7PbFO9D5Kxdu9ZTtmxZz4QJEzzbtm3zzJkzx1OhQgXPK6+84jtm8uTJ5nfUO++84/nyyy8911xzjad+/fqe3377zdGxu83AgQM9v/vd7zwLFizw7Nixw/PWW295qlev7hk1apTvGN6L8J5x+/nnn5tNo8qTTz5p7u/cubPEP/vu3bt7WrVq5VmzZo1n1apV5gze/v37l2occR+S1LRp08wfgaSkJNMSYPXq1U4PyfX0P/pA26xZs3zH6H/st99+u6dq1armD8W1115rghQiG5J4HyLrvffe8zRr1sx8eGvUqJHn+eefL/S8nv48duxYT3p6ujmmc+fOni1btjg2XrfKyckx/x/o34aUlBTP73//e8/f/vY3z/Hjx33H8F6Ez7JlywL+jdDwWtKf/c8//2xCUaVKlTxVqlTx3HTTTSZ8lUaC/sPeiTAAAIDYF9c1SQAAAGdCSAIAAAiAkAQAABAAIQkAACAAQhIAAEAAhCQAAIAACEkAAAABEJIAAAACICQBiFuXXHKJucq7nTZt2mQu1pybm2vr6wKIPEISgIgZNGiQJCQknLZ99913ER/Lu+++a64arld5t9SrV0+eeuqp0479n//5H2nZsmWJXrdJkybSvn17efLJJ20dL4DIIyQBiKju3bvLvn37Cm16Ve+iTpw4EdZxTJ06VW666abTrvRuB33d6dOny6lTp2x/bQCRQ0gCEFHJycmSkZFRaCtTpoxcdtllMmzYMBkxYoRUr15dunXrZo7/+uuvpUePHlKpUiVJT0+XG264QX766Sff6+my1o033mier1mzpjzxxBPmtfR1zuTQoUOydOlS6dmzZ1D/DoFmw3QWynLFFVfI4cOHZcWKFUG9PoDoQEgCEDVeeuklSUpKkk8++URmzJgh2dnZ0qlTJ2nVqpV89tlnsmjRIrNEdt111/m+5p577jFh5J133pGPPvpIli9fLhs2bCj2+6xatUoqVKggjRs3Dmqc/rNgulT4hz/8wdQ3WfTfQZfnPv7446BeH0B0KOv0AADElwULFphZH4vOEr3xxhvmfsOGDeXRRx/1PTd+/HgTkCZOnOjb9+KLL0rt2rVl69atUqtWLXnhhRfklVdekc6dO/uClhZOF2fnzp1mVirQUtu9994r999//2lLf1prZNHZL+XxeKRPnz6Smpoqzz33XKGv0bHp9wEQuwhJACLq8ssvN/U6looVK/rut27dutCxGzdulGXLlhUKVZbvv/9efvvtNxNg2rVr59tfrVo1Of/884sdg35dSkpKwOd0ZkoLzIvWL61cufK0Y8eMGSNZWVlmlqt8+fKFntPHeXl5xY4DQHQjJAGIKA1Fujx1puf8/frrr6Zu6JFHHjntWK0/CvasOK15OnLkyBmfKzo+DV5F6ezVlClTzPLe7373u9Oe15qkBg0aBDU+ANGBmiQAUevCCy+Ub775xhRFa3Dx3zRQaQgpV66crFmzxvc1Gn50Ka44uoS3f//+Mwals9HZo5tvvtkssenp/oFowbl+HwCxi5AEIGoNHTrUzMj0799f1q1bZ5bYPvzwQ3OKfX5+vlmGGzx4sFki07PVNJjoUtnZTuvX8KIzRlogXloarq699lrTX0nPwNPHuukZc5YffvhB9uzZI126dAnq3xtAdCAkAYhaWvysQUYDUdeuXaV58+bm1P60tDRfEHrsscfkj3/8o1mW01DSsWPH02qbitKWAxq05syZU+oxffvtt+YMOy0Q1yU/a2vbtq3vmFdffdWMt27dukH8WwOIFgkePT0DAFxE+yTpKfiBumdbdPanadOmpl2AnWFGC8n1LD293EmHDh1se10AkcdMEoC4pKfxa/uAXbt22fq6+np61hsBCYh9nN0GIG716tXL9te0CssBxD6W2wAAAAJguQ0AACAAQhIAAEAAhCQAAIAACEkAAAABEJIAAAACICQBAAAEQEgCAAAIgJAEAAAgp/t/+UP7b5/NGO0AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# sampling rate\n", "fs = 200 #(2kHz)\n", "# sampling interval\n", "ts = 1.0/fs\n", "Tmax = 1\n", "T = arange(0,Tmax,ts) #Time vector\n", "ns = int(len(T)) #number samples\n", "Freqs = arange(0,fs,fs/ns)\n", "\n", "exponent=2\n", "fpeaks=[]\n", "FFT, MAG, PHASE = None, None, None\n", "for f1 in [50.1]:\n", " #f1 = 5.1\n", " X = sin(2*pi*f1*T)\n", " FFT = fft(X)\n", " #FFT = DFT_new(X)\n", " MAG = abs(FFT)\n", " PHASE = angle(FFT)\n", "\n", " n_fft_points = int(len(MAG)/2)\n", "\n", " MAG = MAG[0:n_fft_points]\n", " PHASE = PHASE[0:n_fft_points]\n", "\n", " Npeaks=1\n", " sorted_magnitude = sorted(MAG,reverse = True)\n", " sorted_magnitude = sorted_magnitude[:Npeaks][0]\n", " fpeak = list(MAG).index(sorted_magnitude) #for peak in sorted_magnitude][0]\n", " fp = MAG[fpeak]\n", " ph_p = PHASE[fpeak]/pi\n", " fpeaks.append(fp)\n", "\n", "print(\"FFT len\",len(MAG))\n", "print(\"Peak at:\",fpeak)\n", "bin0=fpeak\n", "theo_mag,theo_ang=dft_resp(bin0,f1,n_fft_points)\n", "error = (abs(MAG[bin0])-abs(theo_mag))/abs(theo_mag)\n", "print(f\"MAG-5 delta {error*100:.2g} %\")\n", "bin1=fpeak+1\n", "theo_mag,theo_ang=dft_resp(bin1,f1,n_fft_points)\n", "error = (abs(MAG[bin1])-abs(theo_mag))/abs(theo_mag)\n", "print(f\"MAG-6 delta {error*100:.2g} %\")\n", "\n", "print(Freqs[-1])\n", "plt.plot(Freqs[:n_fft_points],MAG,'b')\n", "plt.xlabel('Freq (Hz)')\n", "plt.ylabel('FFT Amplitude |X(freq)|')\n", "plt.xlim(0,fpeak*2)\n", "\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 528 }, "id": "6_7Shar0bNQh", "outputId": "ba2ecbb0-ea17-4b22-ab6c-108f1e5bae11" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "12 1999\n", "15 1.0\n", "10 2000 2000 0.9995 1999.0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "c:\\dvpt_tools\\venv_mmWrt\\lib\\site-packages\\matplotlib\\cbook.py:1719: ComplexWarning: Casting complex values to real discards the imaginary part\n", " return math.isfinite(val)\n", "c:\\dvpt_tools\\venv_mmWrt\\lib\\site-packages\\matplotlib\\cbook.py:1355: ComplexWarning: Casting complex values to real discards the imaginary part\n", " return np.asarray(x, float)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJNCAYAAADgesaeAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAA3jBJREFUeJzs3Qd0VVXWB/A/HULvRamCFAcBQRFl1BEGRGwjKjoqFsSRER3FUYf5EBUL6owNB8WxMxaUEVEQUeyjIip2KdJBOkLoJKF8a9/DSV5Cykty77un/H9rvZWX5PFycrj35Z19996nzP79+/eDiIiIiIiIiIgohcqm8ocREREREREREREJBqWIiIiIiIiIiCjlGJQiIiIiIiIiIqKUY1CKiIiIiIiIiIhSjkEpIiIiIiIiIiJKOQaliIiIiIiIiIgo5RiUIiIiIiIiIiKilGNQioiIiIiIiIiIUo5BKSIiIiIiIiIiSjkGpYiIiIiIiIiIyK+gVIsWLVCmTJmDbldffXXw/d27dwf369ati2rVqmHAgAFYt25drudYsWIF+vfvj7S0NDRo0AA33ngj9uzZE9NvRERERERERERExgelvvzyS6xZsyb7NnPmzODr5557bvDx+uuvx9SpUzFp0iR89NFHWL16Nc4+++zsf793794gIJWZmYnPPvsMzz33HJ599lmMGjUqtt+JiIiIiIiIiIiKVmb//v37YYjrrrsO06ZNw8KFC7F161bUr18fL774Is4555zg+/Pnz0f79u0xa9YsHHvssXjrrbdw2mmnBcGqhg0bBo8ZP348br75ZmzYsAEVK1ZM6ufu27cveI7q1asHmVpERETkJnnbs23bNjRp0gRly7KLQarxPRcREZEf9if5nqs8DCHZTs8//zyGDx8evEmZM2cOsrKy0Lt37+zHtGvXDs2aNcsOSsnHjh07ZgekRN++fTF06FD89NNP6NKlS74/KyMjI7hpq1atQocOHSL+DYmIiMgUK1euxKGHHhr3MLwjAammTZvGPQwiIiIy5D2XMUGpKVOmID09HZdeemnw+dq1a4NMp1q1auV6nASg5Hv6MYkBKf19/b2CjBkzBrfffnu+k1WjRo1Qfh8iIiIyj2RiS1BEMnUo9fS88z0XERGR25J9z2VMUOqpp55Cv379gtSuqI0YMSLIyMo7WfLmiG+QiIiI3MfSsXjnne+5iIiI/FDUey4jglLLly/Hu+++i8mTJ2d/rVGjRkFJn2RPJWZLye578j39mC+++CLXc+nd+fRj8lOpUqXgRkRERERERERE8TCiw+czzzyDBg0aBDvpaV27dkWFChXw3nvvZX9twYIFWLFiBXr06BF8Lh9/+OEHrF+/PvsxsoOfXHljjygiIiIiIiIiInOVN2EXFglKXXLJJShfPmc4NWvWxODBg4Myuzp16gSBpmuuuSYIREmTc9GnT58g+HTxxRfjvvvuC/pIjRw5EldffTUzoYiIiIiIiIiIDBZ7UErK9iT76fLLLz/oew8++GCwdeCAAQOC3fJkZ71HH300+/vlypXDtGnTgt32JFhVtWrVILg1evToFP8WRERERERERERUHGX279+/H56TRueSmbVlyxY23SQiInIY/+bHi/NPRETkh61J/s03oqcUERERERERERH5hUEpIiIiIiIiIiJKOQaliIiIiIiIiIgo5RiUIiIiIiIiIiKilGNQioiIiIiIiIiIUo5BKSIiIiIiIiIiSjkGpYiIiIiIiIiIKOUYlCIiIiIiIiIiopRjUIqIiIiIiIiIiFKOQSkiIiIiIiIiIko5BqWIiIiIiIiIiCjlGJQiIiIiIiIiIqKUY1CKiIiIiIiIiIhSjkEpIiIiIsd8/PHHOP3009GkSROUKVMGU6ZMKfLffPjhhzjqqKNQqVIltG7dGs8+++xBjxk3bhxatGiBypUro3v37vjiiy8i+g2IiIjIBwxKEZG39u+PewRERNHYsWMHOnXqFASRkrF06VL0798fv/vd7/Dtt9/iuuuuwxVXXIG33347+zEvv/wyhg8fjltvvRVff/118Px9+/bF+vXrI/xNiIiIyGUMShGRl1auBA45BDjnHGDLlrhHQ0QUrn79+uHOO+/EH/7wh6QeP378eLRs2RL3338/2rdvj2HDhuGcc87Bgw8+mP2YBx54AEOGDMFll12GDh06BP8mLS0NTz/9dIHPm5GRga1bt+a6WWPqVODQQ9Ufi9dfj3s09vvxR+DII4GaNYF77417NPbbtAk45RQgLQ247DIgKyvuEdlt717gqqvUfJ58MrBuXdwjst/DDwO1awNHHAF8803co7HfO+8AzZoBjRsD//0vXMKgFBF5SS7+r1kDvPoq0L07sGBB3CMiIorPrFmz0Lt371xfkywo+brIzMzE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TulIKX29aI0cklLOef/992XWrFmmDkLlypW98/H1gxnHBYCbFkXRC1paZ4rYwf9OnDgh7dq1MyOkCxUq5HRzXBV76ci0N954w1x4ql27tqmZNnr0aJJSAaDvHxrnTp482Yxm1iSgfibRBWR0URlkD65OSukbuL6ZHD58ON39ejsmJsaxdiFNt27dZOHChWbFgOLFizvdHFfTYbNagFBXYfDQKx16bLSYc3JysnktwV666kulSpXS3VexYkX58MMPHWsTRPr06WNGS8XHx5vbuuLXvn37zMqiJKWCg+ccr+d7fR156O0aNWo42DL4M2bT+4nxnImTx4wZY5JSX375JQujBKi/d+3aZYpt66pavgkTFR4ebgpw6+qv8O/fuJ4zdIEZ37hXYy8dXaLT03S0OvzX35p40uSrFtr2xFRauLtLly7y/PPPm+l/8K+LnTvz5csXkFFSytVHUd80NLuttT9838z1ts4VhjN0aKYmpObPn2+Gx+qy6nBWs2bNZOvWrWbEh2fTETo6dFm/JyHlDJ3WqkGnL61jVLJkScfahLQaKhmDJH2NeD4swHl6XtGgy/f8r8PSdRU+zv/ZJ2bT+333Vzril2Mc2DhZV7bUUQyLFi0ysQIC0986RTxjbHbnnXd6V8zSlQ/h/79xjb10tI7vOV1jL01WkZDyf39fLKZSaXW74W+OnDstl5s7d65ZbWfGjBnW9u3brS5dulj58+e3EhISnG6aaz355JNWdHS0tWLFCuvQoUPe7dSpU043DT5Yfc9569ats8LDw61hw4ZZv/zyizVr1izriiuusN59912nm+ZquvpRsWLFrIULF1p79uyxPvroI6tQoUJmNRPYu1roDz/8YDYNd8aNG2e+37dvn3l8xIgR5nz/ySefWFu2bDErVpUqVco6ffq0003HZcZs7dq1s/r37+/df/Xq1eY9csyYMdZPP/1kvfjii1auXLmsrVu3Ovi/yN59rq+riIgIa968eeliOH09wv/9nRGr7wW+z/fv329WlOzWrZu1c+dOc64vXLiwNXToUAf/F9m3v/V9W/tbV8bdvXu3tWTJEqtMmTJmdVX4Jx7S/tZ+99B+1s8Tffr0MefO1157zcqZM6e1aNEiK1Bcn5RSEydOtEqUKGFOorpM5bfffut0k1xNXyyZbW+//bbTTYMPklLB4dNPP7WqVKliTvAVKlSw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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from numpy.fft import fft, ifft\n", "# sampling rate\n", "sr = 2000\n", "# sampling interval\n", "ts = 1.0/sr\n", "t = arange(0,1,ts)\n", "x = sin(2*pi*5.5*t)\n", "X = fft(x)\n", "N = len(X)\n", "\n", "n = arange(N)\n", "print(12,n[-1])\n", "T = N/sr\n", "freq = n/T #=n/N*sr=n/n*sr\n", "print(15,T)\n", "print(10,len(X),len(t),t[-1],freq[-1])\n", "\n", "plt.figure(figsize = (12, 6))\n", "plt.subplot(121)\n", "\n", "plt.plot(freq, abs(X), 'b') #, \\\n", " #markerfmt=\" \", basefmt=\"-b\")\n", "plt.xlabel('Freq (Hz)')\n", "plt.ylabel('FFT Amplitude |X(freq)|')\n", "plt.xlim(0, 10)\n", "\n", "plt.subplot(122)\n", "plt.plot(t, ifft(X), 'r')\n", "plt.xlabel('Time (s)')\n", "plt.ylabel('Amplitude')\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "9YWzSZ1R5ELF" }, "source": [] }, { "cell_type": "markdown", "metadata": { "id": "esbaigDD1NGN" }, "source": [ "## FFT padding" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 418 }, "id": "Nxv1-m_a1Uv5", "outputId": "65234518-2fef-43cf-abf5-3ca5c4816b98" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FFT len 10000\n", "Peak at: 50.05 50.05\n", "38 0.0\n", "0.0\n", "MAG-N delta 0 %\n", "10000\n", "len Freqs 200\n", "len MAG 10000\n" ] }, { "data": { "image/png": "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rZI6k1900UXhax988EGmpxMAtokfkCqmHCYSogDkvSbq888/tyuvvLIoQIke9+3bN3wNAPLFBSQFqNQTiglRAPIeog488MCivlA+le2///6ZmC4AyOho5X4ZIQpA3przLrvsMrv88svDWqd27dqFZW+++abdfffdNmjQIHv//feL3rvffvtlZEIBYFsQogDEOkSdfvrp4f3VV19d7GsacJOBNwHELUS5PlJslgDkrTlvzpw5W719+eWXRfeZppouhbM+ffoUla1Zsybs0L7jjjtarVq1rHv37rZo0aKM/20A8UdNFIBY10Q1bdrU8uHtt9+2++67b7MmwiuuuMJeeOEFe+qpp6xu3bp2ySWX2CmnnGKvv/56XqYTQP4QogDEfrDN+fPn25QpU2zx4sW2KeVqnuozlWk//vijnXHGGfbAAw/YgAEDispXrFgRDvo5cuRIO+aYY8Kyhx9+2Pbee++wn5brswWgfCBEAYh1iBo+fLidf/75VrVq1bAJzb8wsR5nI0Spue6EE06wTp06JYWo6dOn2/r168NyZ6+99rImTZrY1KlTiw1Ra9euDW/OypUrMz69APKDEAUg1iGqf//+dt1111m/fv2sYupodlkwatQomzFjRticl2rhwoVhmKtXr15SeYMGDcLXijNw4ED7+9//nrXpBZA/GzZE94QoANmWVgJavXq1nXbaaTkJUPPmzQuHUxgxYoRVr149I5+p8KdmQHfT3wBQGFxAqlzMISIhCkAmpZWCevfuHXbizgU116nflQb4rFy5cnibNGlSeK0+PVaN07p162z58uVJ/09n5zVs2LDYz6xWrZrVqVMn6QagMNCcByDWzXlqDvvtb39rY8eOtVatWlmVKlWSXr/tttsyNX3WsWPHza7Fd84554T9nq655hpr3Lhx+PfHjRsXDm0gs2bNsrlz51r79u0zNh0AygZCFIDYh6iXXnrJ9txzz/B5asfyTKpdu7btu+++SWU1a9YMO7S7ctWM6bp9O+ywQ1irdOmll4YBijPzgPKHEAUg1iHq1ltvtYceesh69eplcTBkyJCwf5ZqonTWXefOne2ee+7J92QByANCFIBYhyj1KTrssMMsXyZOnJj0XB3Odd0+3QCUb4QoALHuWK6z5e68887MTw0AlBIhCkCsa6LeeustGz9+vD3//PPWsmXLzTqW//e//83U9AFA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dV4gAABAGUZNFAAAQBoIUQAAAGkgRAEAAKSBEAUAAJAGQpSZ3X333dasWTOrXr26tW3b1t566618T1KZNnDgQDv44IOtdu3aVr9+fevWrZvNmjUr6T1r1qyxiy++2HbccUerVauWde/e3RYtWpT0Ho0gf8IJJ9h2220Xfs5VV11lGzZsSHrPxIkT7cADDwzPzNhjjz1s+PDhOfmOZdWgQYOsQoUK1qdPn6IylkXufPvtt3bmmWeG87pGjRrWqlUre+edd4pe13k+1113ne2yyy7h6506dbLPPvss6TOWLl1qZ5xxRjjIY7169ax37972448/Jr3n/ffft8MPPzzcpmlk7cGDB+fsO5YFGzdutP79+1vz5s3D+bz77rvbjTfemHT9NZZFdkyePNm6du1qjRo1CrdFo0ePTno9l/P9qaeesr322it8j9bFMWPGlPwLBeXcqFGjgqpVqwYPPfRQ8NFHHwXnnntuUK9evWDRokX5nrQyq3PnzsHDDz8cfPjhh8F7770XHH/88UGTJk2CH3/8seg9F1xwQdC4ceNg3LhxwTvvvBO0a9cuOPTQQ4te37BhQ7DvvvsGnTp1Ct59991gzJgxwU477RT069ev6D1ffvllsN122wV9+/YNPv744+DOO+8MKlWqFIwdOzbn37kseOutt4JmzZoF++23X3D55ZcXlbMscmPp0qVB06ZNg169egXTpk0L59lLL70UfP7550XvGTRoUFC3bt1g9OjRwcyZM4MTTzwxaN68efDTTz8Vvee4444L9t9//+DNN98MXnvttWCPPfYITj/99KLXV6xYETRo0CA444wzwnXw8ccfD2rUqBHcd999Of/OcXXTTTcFO+64Y/D8888Hc+bMCZ566qmgVq1awR133FH0HpZFdowZMyb461//Gvz3v/9VYg2eeeaZpNdzNd9ff/31cBs1ePDgcJt17bXXBlWqVAk++OCDEn2fch+iDjnkkODiiy8uer5x48agUaNGwcCBA/M6XYVk8eLF4coyadKk8Pny5cvDH6s2XM4nn3wSvmfq1KlFK1rFihWDhQsXFr1n2LBhQZ06dYK1a9eGz6+++uqgZcuWSX+rR48eYYhDsh9++CFo0aJF8MorrwRHHnlkUYhiWeTONddcE3To0GGLr2/atClo2LBh8I9//KOoTMunWrVq4U5AtLHXsnn77beL3vPiiy8GFSpUCL799tvw+T333BNsv/32RcvG/e0999wzS9+s7DnhhBOCP/zhD0llp5xySrjTFZZFblhKiMrlfD/11FPD34Gvbdu2wfnnn1+i71Cum/PWrVtn06dPD6sL/evv6PnUqVPzOm2FdoFIcReI1Dxfv3590nxXlaouIunmu+5VvdqgQYOi93Tu3Dm88OdHH31U9B7/M9x7WHabU3OdmuNS5xfLIneee+45a9Omjf3ud78Lm0QPOOAAe+CBB4penzNnji1cuDBpPup6nupi4C8LNV/ocxy9X9utadOmFb3niCOOsKpVqyYtCzWpL1u2LEffNt4OPfRQGzdunM2ePTt8PnPmTJsyZYp16dIlfM6yyI85OZzvmdpmlesQ9d1334Vt4/7OQfRcCxKlt2nTprD/zWGHHWb77rtvWKZ5qx+3VoQtzXfdF7dc3Gtbe4927j/99FNWv1dZMmrUKJsxY0bYVy0VyyJ3vvzySxs2bJi1aNHCXnrpJbvwwgvtsssus0ceeSRpXm5te6R7BTBf5cqVwwOUkiyv8u7Pf/6znXbaaeEBQ5UqVcJAq+2U+tkIyyI/FuZwvm/pPSVdLpVL9G4gjRqQDz/8MDzKQ+7NmzfPLr/8cnvllVfCzpPI7wGFjp5vvvnm8Ll23Fo37r33XuvZs2e+J69cefLJJ23EiBE2cuRIa9mypb333nthiFJnZ5YFSqJc10TttNNOVqlSpc3ORNLzhg0b5m26CsUll1xizz//vE2YMMF22223onLNWzWlLl++fIvzXffFLRf32tbeozM2dFYHoua6xYsXh2fN6WhNt0mTJtnQoUPDxzryYlnkhs422meffZLK9t577/DMR39ebm17pHstT5/OktTZSiVZXuWdzi51tVFqqj7rrLPsiiuuKKqtZVnkR8Mczvctvaeky6Vchyg1Yxx00EFh27h/tKjn7du3z+u0lWXqL6gA9cwzz9j48ePD04h9mueqQvfnu9qqtTNx8133H3zwQdLKotoU7ZTdjkjv8T/DvYdll9CxY8dwPupI291UG6JmC/eYZZEbatJOHepDfXKaNm0aPtZ6og24Px/VHKp+Hv6yUOBVOHa0jmm7pX4j7j06jVx93fxlseeee9r222+f9e9ZFqxevTrsQ+PTAbXmo7As8qN5Dud7xrZZQTmnIQ7U83/48OFhr//zzjsvHOLAPxMJJXPhhReGp6hOnDgxWLBgQdFt9erVSafVa9iD8ePHh6fVt2/fPrylnlZ/7LHHhsMk6FT5nXfeudjT6q+66qrwjLK7776b0+q3gX92nrAscjfEROXKlcPT6z/77LNgxIgR4Tx77LHHkk7v1vbn2WefDd5///3gpJNOKvb07gMOOCAcJmHKlCnhWZf+6d06m0mnd5911lnh6d3axunvlOfT6lP17Nkz2HXXXYuGONDp9hq2Q2eZOiyL7J0p/O6774Y3RZDbbrstfPz111/ndL5riAOtj//85z/Dbdb111/PEAfp0pg22olovCgNeaCxJ5A+rRjF3TR2lKMV4qKLLgpPQ9WP++STTw6Dlu+rr74KunTpEo7voQ3clVdeGaxfvz7pPRMmTAhat24dLrtf/epXSX8D2xaiWBa587///S8MpDpw22uvvYL7778/6XWd4t2/f/9wB6D3dOzYMZg1a1bSe77//vtwh6FxjTTMxDnnnBPumHwaX0fDKegzFBa0Y0LCypUrw3VA2/3q1auHv1eNXeSfEs+yyI4JEyYUu39QsM31fH/yySeDX//61+E2S0O0vPDCCyX+PhX0T3oVbwAAAOVXue4TBQAAkC5CFAAAQBoIUQAAAGkgRAEAAKSBEAUAAJAGQhQAAEAaCFEAAABpIEQBAACkgRAFoNw64ogjbOTIkRn9zI8//ji84PaqVasy+rkA4ocQBSBnevXqZRUqVNjs9vnnn+d8Wp577rnwqu2nnXZaUVmzZs3s9ttv3+y9f/vb36x169bb9Lm6KHO7du3stttuy+j0AogfQhSAnDruuONswYIFSTddvT3VunXrsjodQ4cOtXPOOccqVsz8ZlCfO2zYMNuwYUPGPxtAfBCiAORUtWrVrGHDhkm3SpUq2VFHHWWXXHKJ9enTx3baaSfr3Llz+P4PP/zQunTpYrVq1bIGDRrYWWedZd99913R56nZ7Oyzzw5f32WXXezWW28NP0ufsyVLliyx8ePHW9euXdP6DsXVpqkWy/nNb35jS5cutUmTJqX1+QDKBkIUgNh45JFHrGrVqvb666/bvffea8uXL7djjjnGDjjgAHvnnXds7NixYRPcqaeeWvR/rrrqqjCsPPvss/byyy/bxIkTbcaMGVv9O1OmTLHtttvO9t5777Sm069FU1PkHnvsEfavcvQd1Pz32muvpfX5AMqGyvmeAADly/PPPx/WGjmqZXrqqafCxy1atLDBgwcXvTZgwIAwQN18881FZQ899JA1btzYZs+ebY0aNbIHH3zQHnvsMevYsWNREFPH7q35+uuvw1qt4pryrrnmGrv22ms3a1pUXydHtWcSBIF1797d6tata/fdd1/S/9G06e8AKFyEKAA5dfTRR4f9hZyaNWsWPT7ooIOS3jtz5kybMGFCUuhyvvjiC/vpp5/CgNO2bdui8h122MH23HPPrU6D/l/16tWLfU01W+oAn9p/avLkyZu99y9/+YtNnTo1rCWrUaNG0mt6vnr16q1OB4CyjRAFIKcUmtT8taXXfD/++GPYb+mWW27Z7L3q/5TuWX3qc7Vs2bItvpY6fQpmqVT7NWTIkLD5cNddd93sdfWJ2n333dOaPgBlA32iAMTWgQceaB999FHYaVvBxr8pcCmkVKlSxaZNm1b0fxSO1NS3NWoiXLhw4RaD1C9R7dMf//jHsAlPwxkURx3i9XcAFC5CFIDYuvjii8MandNPP93efvvtsAnvpZdeCocQ2LhxY9jM17t377AJTmfbKbioKe6Xhi1QuFGNkzqwl5TC18knnxyOL6UzCPVcN53x53z11Vf27bffWqdOndL63gDKBkIUgNhS52wFHQWmY4891lq1ahUOXVCvXr2ioPSPf/zDDj/88LDZT6GlQ4cOm/WtSqUhFRTERowYUeJp+vTTT8MzBNWBXU2K7nbwwQcXvefxxx8Pp7dp06ZpfGsAZUWFQKeXAEAB0ThRGmKguNHHHdUetWzZMhwOIZNhRx3ddZahLidz2GGHZexzAcQPNVEAyiUNU6DhEebOnZvRz9Xn6aw9AhRQ+Dg7D0C51a1bt4x/puv4DqDw0ZwHAACQBprzAAAA0kCIAgAASAMhCgAAIA2EKAAAgDQQogAAANJAiAIAAEgDIQoAACANhCgAAAAruf8Hk73zg0w1avMAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from matplotlib.backend_bases import ResizeEvent\n", "# sampling rate\n", "fs = 200 #(2kHz)\n", "# sampling interval\n", "ts = 1.0/fs\n", "t_max = 1\n", "T = arange(0,t_max,ts) #Time vector\n", "n_samples = int(len(T)) #number samples\n", "Freqs = arange(0,fs,fs/n_samples)\n", "\n", "FFT, MAG, PHASE = None, None, None\n", "resize=100\n", "for f in [50.05]:\n", " f1 = f\n", " X = sin(2*pi*f1*T)\n", " X.resize(fs*resize)\n", " FFT = fft(X)\n", " #FFT = DFT_new(X)\n", " MAG = abs(FFT)\n", " PHASE = angle(FFT)\n", "\n", " n_fft_points = int(len(MAG)/2)\n", "\n", " MAG = MAG[0:n_fft_points]\n", " PHASE = PHASE[0:n_fft_points]\n", "\n", " Npeaks=1\n", " sorted_magnitude = sorted(MAG,reverse = True)\n", " sorted_magnitude = sorted_magnitude[:Npeaks][0]\n", " fpeak = list(MAG).index(sorted_magnitude) #for peak in sorted_magnitude][0]\n", " fp = MAG[fpeak]\n", " ph_p = PHASE[fpeak]/pi\n", " fpeaks.append(fp)\n", "\n", "print(\"FFT len\",len(MAG))\n", "print(\"Peak at:\",fpeak/resize,f1)\n", "error = (fpeak/resize-abs(f1))/abs(f1)\n", "print(38,fpeak/resize-f1)\n", "print(error)\n", "print(f\"MAG-N delta {error*100:.2g} %\")\n", "\n", "print(n_fft_points)\n", "print(\"len Freqs\",len(Freqs))\n", "print(\"len MAG\",len(MAG))\n", "Freqs = arange(0,fs*1000,fs/n_samples)\n", "plt.plot(Freqs[:n_fft_points],MAG,'b')\n", "plt.xlabel('Freq (Hz)')\n", "plt.ylabel('FFT Amplitude |X(freq)|')\n", "plt.xlim(0,fpeak*2)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "OLbkGaB85OTa" }, "source": [ "### SPECTROGRAM" ] }, { "cell_type": "markdown", "metadata": { "id": "9kkHgUQJ5QtO" }, "source": [ "### FFT SPECTROGRAM" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "id": "7xwAV9gN5ahG" }, "outputs": [], "source": [ "from numpy.fft import fft, ifft,fftfreq\n", "from numpy import abs, angle, arange, dot, exp, sin, pi\n", "import matplotlib.pyplot as plt\n", "from numpy import exp\n", "\n", "from scipy.signal import spectrogram\n", "from scipy import signal" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 316 }, "id": "C6H4Ra3X5VD0", "outputId": "19215768-587a-497c-f610-f6ac9107369d" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "498 502 2\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df_max = 0.7 # non-resolved\n", "df_min = 0.8 # resolved\n", "f0, df = 500, 2\n", "f1, f2 = f0-df, f0+df\n", "n_fft = 1000 #FFT points\n", "fs= 2000 #sampling frequency\n", "T = arange(0,n_fft/fs,1/fs)\n", "# Nyquist\n", "assert fs> max(f1,f2)*2\n", "Y = sin(2*pi*f1*T) + sin(2*pi*f2*T)\n", "FFT = fft(Y)\n", "MAG = abs(FFT)\n", "PHASE = angle(FFT)\n", "n_fft_points = int(len(T)/2)\n", "F = [fs*i/2/n_fft_points for i in range(n_fft_points)]\n", "print(f1,f2,df)\n", "\n", "MAG = MAG[0:n_fft_points]\n", "PHASE = PHASE[0:n_fft_points]\n", "plt.title(\"FFT\")\n", "fmin, fmax = int((f0-20)/2), int((f0+20)/2)\n", "plt.plot(F[fmin: fmax], MAG[fmin: fmax]) # [min, max],MAG[min, max])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "_dDfH51JbtEK" }, "source": [ "## CROSS CORRELATION\n", "works great when delta f > 1 frequency bin" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 282 }, "id": "Dmzv481U8859", "outputId": "51ca8c1e-739e-48cf-b9d9-587420aeb812" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## CROSS CORRELATION WORKS great down to 1 frequency bin but not below\n", "FREQS = arange(498,502,fs/n_fft_points/33)\n", "\n", "\n", "import numpy as np\n", "\n", "def cross_corr(y1, y2):\n", " \"\"\"Calculates the cross correlation and lags without normalization.\n", "\n", " The definition of the discrete cross-correlation is in:\n", " https://www.mathworks.com/help/matlab/ref/xcorr.html\n", "\n", " Args:\n", " y1, y2: Should have the same length.\n", "\n", " Returns:\n", " max_corr: Maximum correlation without normalization.\n", " lag: The lag in terms of the index.\n", " \"\"\"\n", " if len(y1) != len(y2):\n", " raise ValueError('The lengths of the inputs should be the same.')\n", "\n", " y1_auto_corr = np.dot(y1, y1) / len(y1)\n", " y2_auto_corr = np.dot(y2, y2) / len(y1)\n", " corr = np.correlate(y1, y2, mode='same')\n", " # The unbiased sample size is N - lag.\n", " unbiased_sample_size = np.correlate(\n", " np.ones(len(y1)), np.ones(len(y1)), mode='same')\n", " corr = corr / unbiased_sample_size / np.sqrt(y1_auto_corr * y2_auto_corr)\n", " shift = len(y1) // 2\n", "\n", " max_corr = np.max(corr)\n", " argmax_corr = np.argmax(corr)\n", " return max_corr, argmax_corr - shift\n", "\n", "CORRs = []\n", "\n", "for f in FREQS:\n", " SINE = sin(2*pi*f*T)\n", " # CORR = [(SINE[i]*Y[i])**2 for i in range(len(T))]\n", " # corr = sum(CORR)\n", " # CORRs.append(corr)\n", "\n", " max_corr, _ = cross_corr(Y,SINE)\n", " CORRs.append(max_corr)\n", "\n", "plt.plot(FREQS, CORRs)\n", "plt.show()\n", "\n", "\n" ] } ], "metadata": { "colab": { "name": "FMCW-Radar-104_Freq_est.ipynb", "provenance": [], "toc_visible": true }, "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.10.9" } }, "nbformat": 4, "nbformat_minor": 4 }