{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# FMCW Radar 105 - Vibration\n", "[![](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/matt-chv/mmWrt/blob/main/docs/FMCW-Radar-105_Vibration.ipynb)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ugxnvdnUR0mk", "outputId": "fb3e58da-31cd-4427-ce7a-89b8cd31312f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "running from git folder, using local path (latest) mmWrt code c:\\git\\mmWrt\n", "2026-06-23 20:42:07.773385\n" ] } ], "source": [ "# Install a pip package in the current Jupyter kernel\n", "import sys\n", "from os.path import abspath, basename, join, pardir\n", "import datetime\n", "\n", "# hack to handle if running from git cloned folder or stand alone (like Google Colab)\n", "cw = basename(abspath(join(\".\")))\n", "dp = abspath(join(\".\",pardir))\n", "if cw==\"docs\" and basename(dp) == \"mmWrt\":\n", " # running from cloned folder\n", " print(\"running from git folder, using local path (latest) mmWrt code\", dp)\n", " sys.path.insert(0, dp)\n", "else:\n", " print(\"running standalone, need to ensure mmWrt is installed\")\n", " !{sys.executable} -m pip install mmWrt\n", "print(datetime.datetime.now())" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "yVJbQgLJSdrT" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.0.11-pre.3\n" ] } ], "source": [ "from os.path import abspath, join, pardir\n", "import sys\n", "import matplotlib.pyplot as plt\n", "import matplotlib.cm as cm\n", "from matplotlib import colors\n", "from numpy import where, expand_dims\n", "from scipy.fft import fft, fft2\n", "from numpy import sin, pi\n", "\n", "from mmWrt.Raytracing import rt_points # noqa: E402\n", "from mmWrt.Scene import Radar, Transmitter, Receiver, Scatterer # noqa: E402\n", "from mmWrt import RadarSignalProcessing as rsp # noqa: E402\n", "from mmWrt import __version__ as mmWrt_ver\n", "print(mmWrt_ver)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 527 }, "id": "ft8_YZM-SkFL", "outputId": "5bb8d459-6a16-4974-d6c2-6b7a2a201b6e" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAisAAAHHCAYAAAB+wBhMAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAANcBJREFUeJzt3Qd4FOW+x/F/SCABhNCbdFBEpClFigKCICJFUcSLgohiAQRBxXgOYjtGsAHKRUQRLFSleOQIghJAAaWIAipNmhQRlEQSCYHMff7vubvPbrIJu2GTvJv9fp5nDDs7O/vOzsb55W0T4TiOIwAAAJYqlN8FAAAAyA5hBQAAWI2wAgAArEZYAQAAViOsAAAAqxFWAACA1QgrAADAaoQVAABgNcIKAACwGmEFsEhERIQ8/fTTubLvffv2mf3PmDEjV/YPALmFsALkQI8ePaRYsWLy119/ZblNv379pEiRInLixAmx1X/+859cCUe6Tw1GrqVw4cJSs2ZNefjhh+XkyZNSUCxYsEBuv/12qV27tvk+1KtXT0aNGuXzGD0/j6ioKClTpoxcddVVMnz4cPnxxx/9fk/9HD335bmcPn3abKOBNKttnnjiCWnfvn2Wz3suuRWcgUBFBfwKACaI/Pvf/5aFCxdK//79Mz2fkpIiixcvlhtuuEHKli0rNqhRo4b8/fffJjh4hpXJkyfn2kVpypQpctFFF0lycrJ88cUX8vrrr8vmzZvlq6++koJg8ODBUqVKFbnzzjulevXqsnXrVnnjjTfM56rHWbRoUa/tr7/+evN90VuyJSYmyvfffy8zZ86U//3f/5Vx48bJyJEj/XrfJk2amFCUkYZjT88++6zUqlXLa90VV1whHTt2lHvvvde9bsOGDTJp0iR58sknpX79+u71jRo18vuzAHKV3sgQQGBSUlKcEiVKOF26dPH5/KxZs/QGoc6cOXMC2q++ZuzYsU5eGTJkiHnPYNNj0P3+/vvvXutvv/12s/6bb75xCoKVK1dmWjdz5kxzjNOmTfNar+v0887o+PHjTqtWrczzS5YsOe971qhRw+nWrVu227z77rtmfxs2bPDrOObPn2+293U8gA1oBgJyQP9ivuWWW0xtwbFjxzI9P2vWLClRooRpLlLaLDBixAipVq2aREdHS926dc1f0unp6ed9r++++066du0qJUuWNLUU+lfx+vXrM22n7/HII4+YZgJ9j6pVq5q/4o8fP+6zz8rdd99talWUZ9W/Xld1Hz179sz0HtrMEBsbK/fff38OPjWRa665xvzcs2ePe90ff/whjz76qDRs2NAcnx6nHq/WOnhKSEgw5Zs3b57861//MscXExNjPo/du3dnei89Nm2e0XPVokULWbNmjWn+0MVTamqqjB071pwT/dz0HD3++ONm/flk3Je6+eabzc+ffvrJr89Ea97mzJljmob0uABkRjMQcAFNQVqFrxfPoUOHel18ly1bJnfccYe5UGqTULt27eTQoUPmIq/NBWvXrpW4uDg5cuSITJgwIcv32L59u7nA6wVcL6DahDN16lRzkVy1apW0bNnSbHfq1CmznV4g77nnHrnyyitNSPnkk0/k119/lXLlymXat5bl8OHDsnz5cnn//ffd6zUQaLPG+PHjzbFo3woXbfpKSkoyz+eEBiZVunRp97pffvlFFi1aJLfddptpsvjtt9/MMepnpn05tJnF04svviiFChUyAUebUrScei6++eYbr+YnPSf6mWiA0/ft1auXeV8NOS4aFjVQarOUNuloE4g25bz22muyc+dOU65AHT161Pz09ZlnRb8TerwrV640n6+e7+ykpaW5Q6iL9pnRxZN+Phm3C6RcgDXyu2oHCFVnz551KleubKrwPb355pumSn3ZsmXm8XPPPecUL17c2blzp9d2TzzxhBMZGekcOHAgy2agXr16OUWKFHH27NnjXnf48GHTBHXttde61z311FPmtQsWLMhUzvT0dPNz7969ZhttIjhfM9COHTvM+ilTpnit79Gjh1OzZk33Ps/XDKT70aagffv2OdOnT3eKFi3qlC9f3klOTnZve/r0aefcuXNer9eyRkdHO88++6x7nTZR6D7r16/vpKamutdPnDjRrN+6dat5rM+VLVvWad68uZOWlubebsaMGWa7du3aude9//77TqFChZw1a9b4PIdff/21E6hBgwaZ85rxfGfVDOQyfPhws833339/3mYg3S7j4vm9cTUD+Vp8oRkItqMZCMihyMhI6du3r6xbt85dY+BqAqpYsaJpnlDz5883f+HrX/X6V65r6dSpk5w7d05Wr17tc//63Oeff25qBLQ5w6Vy5cryP//zP6Y2QP8KVx9//LE0btzY3QThSWtKAnXppZeaWpsPP/zQvU5rWT77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LOPHj5dy5crJI488IsF26NAhufPOO01tjb5vw4YNZePGjUF/HwAAUACGLivtPFu3bl3zb+1Q27t3bxk8eLC0adNG2rdvH9TC/fnnn2a/HTp0kM8++8wMk961a5eULl06qO8DAAAKUFi56KKLTAfa6tWry+effy4jR44062NiYsyIoGAaN26cVKtWTd599133ulq1agX1PQAAQAFrBtL5VHTOFV127twpN954o1m/fft2qVmzZlAL98knn0izZs3ktttukwoVKpgh1NOmTcv2NampqWYEkOcCAADCKKxoH5VWrVrJ77//Lh9//LF75I/OwXLHHXcEtXC//PKLTJkyRS655BJZtmyZPPjgg/Lwww+bTr5ZiY+PN0OVXYvWzAAAgAI+z4qaPn269OjRw3SkzStFihQxNStr1651r9OwsmHDBtO5N6uaFV1ctGZFAwvzrAAAUIDnWVEffPCBmVpfhyhrX5Kff/5ZcptO759xxtz69evLgQMHsnxNdHS0+QA8FwAAELr8DitffvmlHDlyRB566CHT5NOiRQvTPDNq1ChZvXq1pKenB71wOhJox44dXuu0n0yNGjWC/l4AAKAA9FnRIcM658m8efPk+PHj8vrrr5sRQP369TMdYPv37y8fffSRJCcnB6VwOm/L+vXrzdwuu3fvllmzZslbb70lQ4YMCcr+AQBAAeqzcj46UZuO3lm8eLHceuutMmbMmGDsVj799FOJi4sz86vosGUdKn3ffff5/XruDQQAQGj3WQlaWPGUlpYmhQvbEQwIKwAAhHZYCXhSOM022tSzcuVKOXbsmFdflYiICDOc2ZagAgAAQl/AYWXEiBEydepUMwV+xYoVTUABAACwJqy8//77smDBAvfMtQAAAFbNYKv9P2rXrp07pQEAALjQsPL000/LM888E/SbFgIAAASlGahPnz4ye/ZsM6+K3rgwY2fazZs3B7pLAACA4IWVAQMGmBlsdXI4OtgCAADrwsqSJUvMHZDbtm2bOyUCAAC4kD4regdjbg4IAACsDSuvvPKKPP7447Jv377cKREAAMCFNANpX5WUlBSpU6eOFCtWLFMH2z/++CPQXQIAAAQvrEyYMCHQlwAAAOTtaCAAAACr+qwkJycHtNNAtwcAALigsFK3bl158cUX5ciRI9nejXn58uXStWtXmTRpkj+7BQAACE4zUEJCgjz5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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "c = 3e8\n", "\n", "debug_ON = False\n", "test = 0\n", "NC=32\n", "NA=64\n", "bw0 = 0.3e9\n", "chirp_slope0=70e8\n", "chirp_end_time0=bw0/chirp_slope0\n", "radar = Radar(transmitter=Transmitter(chirp_end_time=chirp_end_time0,\n", " chirp_slope=chirp_slope0,\n", " chirp_period=1.2e-6,\n", " chirp_count=NC),\n", " receiver=Receiver(adc_sample_rate=1e4,\n", " adc_sample_count=256,\n", " debug=debug_ON), debug=debug_ON)\n", "\n", "target1 = Scatterer(2)\n", "\"\"\"\n", "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4035586/\n", "This movement ranges from 4–12 mm17 with a frequency range of 0.2–0.34 Hz (12–20 breaths per minute)18.\n", "In addition to respiratory motion, the chest surface motion also includes comparatively faster but weaker vibrations (precordial motion41)\n", "due to the beating of the heart. The chest surface motion due to the beating of the heart has an amplitude range of 0.2–0.5 mm19 and frequency range of 1–1.34 Hz\n", "(60–80 beats per minute)18.\n", "\"\"\"\n", "fb = 0.2 #Hz\n", "ab = 8e-3\n", "fh = 1.15 #Hz\n", "ah = 0.3e-3\n", "target2 = Scatterer(5, 0, 0, xt=lambda t: 5.+ ab*sin(2*pi*fb*t)+ah*sin(2*pi*fh*t))\n", "\n", "targets = [target2]\n", "\n", "bb = rt_points([radar], targets,\n", " radar, debug=debug_ON)\n", "cube = bb[\"adc_cube\"][0,:,0,:]\n", "Z_fft2 = abs(fft2(cube))\n", "Data_fft2 = Z_fft2 # [0:n_chirps//2,0:n_samples//2]\n", "\n", "plt.xlabel(\"Range (m)\")\n", "plt.ylabel(\"Velocity (m/s)\")\n", "plt.title('Velocity-Range 2D FFT')\n", "plt.imshow(Data_fft2[0:NC//2,0:42//2])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "YNrx1t9YAJ3u" }, "source": [ "## Some Maths\n", "\n", "$$ y_{IF}(t) \\approx cos(2 \\pi \\cdot [f_{0min} \\cdot \\delta + s \\cdot \\delta \\cdot t ])$$\n", "\n", "Where:\n", "\n", "* $ f_{0min} $ the starting frequency of the chirp\n", "* s is the slope of the chirp\n", "* $\\delta $ is the total time of flight between antennas and target\n", "\n", "$$ \\delta(t) = 2 \\cdot \\frac{R0 + m \\cdot sin(\\omega_m \\cdot t)}{c} $$\n", "\n", "Where:\n", "\n", "* R0: main distance of target\n", "* m: amplitude of vibration\n", "* $\\omega_m$: frequency of vibration\n", "\n", "$$ \\forall l \\in \\mathbb{N} , l \\in [ \\,0, L] \\, $$\n", "\n", "Where:\n", "* L is the number of chirps\n", "* l the index of a given chirp\n", "* $T_c$ the total time between the start of two chirps\n", "* $t_c$ the time starting at 0 at the begining of the chirp\n", "\n", "$$ \\delta = \\frac{2[R0 + m \\cdot sin(\\omega_m \\cdot [l \\cdot T_c + t_c])]}{c} $$\n", "\n", "considering that\n", "$$ sin(\\omega_m \\cdot [l \\cdot T_c + t_c]) = sin( \\omega_m \\cdot l \\cdot T_c)cos(\\omega_m \\cdot t_c) + cos(\\omega_m \\cdot l \\cdot T_c)sin(\\omega_m \\cdot t_c) $$\n", "\n", "considering that $$ \\omega_m \\cdot t_c \\approx 0 $$\n", "$$ sin(\\omega_m \\cdot [l \\cdot T_c + t_c]) \\approx sin( \\omega_m \\cdot l \\cdot T_c) $$\n", "\n", "Thus\n", "$$ \\delta \\approx \\frac{2[R0 + m \\cdot sin( \\omega_m \\cdot l \\cdot T_c)]}{c} $$\n", "\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "dBbg0vH92pfy", "outputId": "22783ee6-e2e9-4814-bfc7-d1133dcf2c45" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.2 0.09765625\n", "(64, 64, 1, 1, 1024)\n" ] } ], "source": [ "from numpy import arange, zeros\n", "\n", "n_adc = 1024\n", "n_chirps = 64\n", "n_frames = 64\n", "\n", "ts = 1e-2\n", "fs = 1/ts\n", "\n", "\n", "T = arange(0, n_adc*ts, ts)\n", "assert fs > 2* fh\n", "assert fs > 2* fb\n", "t_interchirp=1.2e-6\n", "fc = 1/t_interchirp\n", "t_interframe = 1e-1\n", "ff = 1/(t_interframe)\n", "print(fb, fs/n_adc)\n", "assert fb > fs/n_adc\n", "assert fb > ff/n_frames\n", "assert fh > ff/n_frames\n", "assert int(ff/fb) != int(fh/fb)\n", "n_tx = 1\n", "n_rx = 1\n", "adc_cube_2 = zeros((n_frames, n_chirps, n_tx, n_rx, n_adc))\n", "tx_i=0\n", "rx_i=0\n", "\n", "for frame_i in range(n_frames):\n", " T[:] += t_interframe\n", " for chirp_i in range(n_chirps):\n", " T[:] += t_interchirp\n", " chest = lambda t: ab*sin(2*pi*fb*t)+ah*sin(2*pi*fh*t)\n", " YIF = chest(T)\n", " adc_cube_2[frame_i, chirp_i, tx_i, rx_i, :] = YIF\n", "print(adc_cube_2.shape)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, "id": "d8GlMHm6w-yl", "outputId": "1431b12c-3dd5-4045-c7b4-90491dc5bbf3" }, "outputs": [ { "data": { "image/png": "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smTJEpkyZYps3LhRioqKZM2aNaH/bgAAQPsPI2qo7pdffikLFizQnVDVEN3t27c7O6kWFxfrETaGnJwcPbfIk08+KU888YSe9EyNpDE7xwgAAGjfYnY6eAAAEBl/vy31GQEAAAg1wggAAAgrwggAAAgrwggAAAgrwggAAAgrwggAAAgrwggAAAgrwggAAAiriFy1tzljXjY1eQoAAIgOxt9tf/OrRkUYuXjxon7MysoK90cBAAAB/B1XM7FG9XTwamXgL774Qrp06SI2my2kiU0FnJKSEqaZ94D74x33xjfuj2/cH++4N+3r/qiIoYJI79693dati8qWEfUN9OnTp9VeX/2DRsM/arhwf7zj3vjG/fGN++Md96b93B9fLSIGOrACAICwIowAAICwiukwkpycLE8//bR+REvcH++4N75xf3zj/njHvYnN+xMVHVgBAED7FdMtIwAAIPwIIwAAIKwIIwAAIKwIIwAAIKxiOoysWLFCrrrqKklJSZHrr79ePvjgA4lFe/bskalTp+oZ8tQMt1u3bnV7XvVxXrBggfTq1Us6dOggEydOlI8//lhiQX5+vowdO1bP/tuzZ0+ZPn26nDx50u2cy5cvy+zZs+WKK66Qzp07yw9/+EM5e/astHcrV66UESNGOCdfys7OlnfeeUdi/b54smjRIv3f1rx585zHYvn+/Pd//7e+H67b4MGDnc/H8r0xfP7553Lffffpe6B+7w4fPlyKiora7e/lmA0jmzZtkvnz5+shUocPH5aRI0fKpEmT5Ny5cxJrqqqq9Pevwpknv/rVr+T555+XVatWyYEDB6RTp076XqlfGO3d7t279S/F/fv3y86dO6W2tlZuv/12fc8Mjz76qLz55puyefNmfb5auuAHP/iBtHdqVmT1R/bQoUP6l+T3vvc9mTZtmpw4cSKm70tzBw8elNWrV+vg5irW788111wjpaWlzm3v3r3O52L93pw/f15uuOEGSUxM1AH/ww8/lCVLlki3bt3a7+9lR4waN26cY/bs2c79+vp6R+/evR35+fmOWKZ+JLZs2eLct9vtjoyMDMfixYudxy5cuOBITk52/P73v3fEmnPnzul7tHv3bue9SExMdGzevNl5zt///nd9TmFhoSPWdOvWzbF27VruS6OLFy86Bg4c6Ni5c6djwoQJjrlz5+rjsX5/nn76acfIkSM9Phfr90Z5/PHHHTfeeKPDm/b4ezkmW0Zqamr0/5pTzVqu69+o/cLCwrB+tkhz+vRpKSsrc7tXap0BVdaKxXtVXl6uH7t3764f1c+Rai1xvT+qublv374xdX/q6+tl48aNusVIlWu4Lw1Uq9qUKVPc7oPC/RFdUlCl4e985zty7733SnFxsT7OvRH505/+JNddd53MmDFDl4dHjRolL774Yrv+vRyTYeSrr77SvzzT09Pdjqt99Q+MJsb94F41rB6tav6q+XTYsGH6mLoHSUlJ0rVr15i8P8eOHdM1fTUb5KxZs2TLli0ydOjQmL8vigpnqgSs+h01F+v3R/3RXLdunWzfvl33PVJ/XL/73e/q1V1j/d4on376qb4vAwcOlB07dsgjjzwi//Vf/yWvvvpqu/29HBWr9gKR8r9yjx8/7lbbjnWDBg2So0eP6hajN954Q2bOnKlr/LFOLe8+d+5c3c9IdZCHu8mTJzu/Vn1pVDjp16+fvP7667ozZqyz2+26ZeSXv/yl3lctI+p3j+ofov4ba49ismWkR48eEh8f36J3ttrPyMgI2+eKRMb9iPV7NWfOHHnrrbfkvffe0x03DeoeqLLfhQsXYvL+qP8FO2DAABkzZoxuAVAdoZctWxbz90WVGlRn+NGjR0tCQoLeVEhTHQ7V1+p/wcby/WlOtYJcffXVcurUqZj/2VHUCBnVwuhqyJAhzlJWe/y9HJNhRP0CVb88d+3a5ZZE1b6qd6NJ//799Q+3672qqKjQvbdj4V6pPr0qiKjyw7vvvqvvhyv1c6R6vLveHzX0V/3SiIX705z676i6ujrm78utt96qS1iq1cjY1P/SVX0jjK9j+f40V1lZKZ988on+IxzrPzuKKgU3n0LgH//4h249are/lx0xauPGjbrn8bp16xwffvih48c//rGja9eujrKyMkesUT3+jxw5ojf1I/HrX/9af33mzBn9/KJFi/S92bZtm+Nvf/ubY9q0aY7+/fs7Ll265GjvHnnkEUdaWpqjoKDAUVpa6ty+/fZb5zmzZs1y9O3b1/Huu+86ioqKHNnZ2Xpr737+85/rUUWnT5/WPxdq32azOf7yl7/E9H3xxnU0Tazfn5/+9Kf6vyn1s/P+++87Jk6c6OjRo4cerRbr90b54IMPHAkJCY5nn33W8fHHHztee+01R8eOHR3r1693GNrb7+WYDSPKCy+8oH/gk5KS9FDf/fv3O2LRe++9p0NI823mzJnOYWRPPfWUIz09XQe4W2+91XHy5ElHLPB0X9T2yiuvOM9R//H/53/+px7Wqn5hfP/739eBpb174IEHHP369dP//Vx55ZX658IIIrF8X8yGkVi+P3fffbejV69e+mcnMzNT7586dcr5fCzfG8Obb77pGDZsmP6dO3jwYMeaNWscrtrb72Wb+n/hbp0BAACxKyb7jAAAgMhBGAEAAGFFGAEAAGFFGAEAAGFFGAEAAGFFGAEAAGFFGAEAAGFFGAEAAGFFGAEAAGFFGAEAAGFFGAEAAGFFGAEAABJO/x+0wjOaqFueUAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cube = adc_cube_2[0,0,0,0,:]\n", "# print(cube.shape) # (1024,)\n", "Z_fft = abs(fft(cube))\n", "plt.plot(Z_fft[0:64])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 509 }, "id": "oasS_Gch4Xl7", "outputId": "7edf1962-c72b-43ed-db7e-9e05e2ba48d7" }, "outputs": [ { "data": { "image/png": "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ViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABW8GmgDR8+XKpVqybZsmWTvHnzSsuWLWXv3r1e21y9elW6du0q4eHhkjVrVmndurWcOnXKZ8cMAPBPPg20tWvXmrDauHGjrFixQuLi4qRJkyZy+fJl9za9evWSxYsXy9y5c832x48fl1atWvnysAEAfijIcRxH/MSZM2dMS02D67HHHpPz589Lnjx5ZNasWfLUU0+Zbfbs2SMRERESHR0tNWvWvOM+L1y4IGFhYVJPWkiGoOD7cBYAgJR03YmTNbLQZEL27NkDYwxND1blypXLfN26datptTVq1Mi9TZkyZaRIkSIm0AAAcMkgfuLmzZvSs2dPqV27tpQvX96sO3nypGTMmFFy5MjhtW2+fPnMY4mJjY01i2cLDQBgP79poelY2s6dO2XOnDn3XGiiXYyupXDhwil2jAAA/+UXgdatWzf5z3/+I6tXr5ZChQq51+fPn1+uXbsm586d89peqxz1scT069fPdF26liNHjqT68QMA0nigaT2Khtn8+fPlm2++keLFi3s9XrVqVQkODpZVq1a512lZf0xMjERGRia6z5CQEDNo6LkAAOyXwdfdjFrBuHDhQnMtmmtcTLsKQ0NDzdfOnTtL7969TaGIhlP37t1NmN1NhSMAIO3waaBNmjTJfK1Xr57X+unTp0unTp3M92PGjJF06dKZC6q12CMqKkomTpzok+MFAPgvv7oOLTVwHRoABLaAvA4NAIDkItAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAViDQAABWINAAAFYg0AAAaW+Cz3Pnzsn8+fNl/fr18uuvv8qVK1ckT548UrlyZTPxZq1atVLvSAEAuNcW2vHjx+XFF1+UAgUKyNChQ+XPP/+Uhx9+WBo2bCiF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82mX482bN00LbdiwYeZnbaHt3LnTjJd17NgxWfscPny4DBkyJIWPFADg73zaQtPKxbJly3qti4iIkJiYGPN9/vz5zddTp055baM/ux6Lr1+/fnL+/Hn3cuTIkVQ7fgCA//BpoGmF4969e73W7du3T4oWLeouENHgWrVqlftx7ULUasfIyMhE9xkSEiLZs2f3WgAA9vNpl2OvXr2kVq1apsvx6aeflu+//14+/PBDs6igoCDp2bOnDB061IyzacANGDBAChYsKC1btvTloQMA/IxPA61atWoyf/5800341ltvmcDSMv327du7t+nbt69cvnxZunTpIufOnZM6derIsmXLJFOmTL48dACAnwly9GIvi2kXpZb615MWkiEo2NeHAwBIoutOnKyRhaYu4nbDSD6/9RUAACmBQAMAWIFAAwBYgUADAFiBQAMAWIFAAwBYgUADAFiBQAMAWIFAAwBYgUADAFiBQAMAWIFAAwBYgUADAFjBp9PH3A+uyQSuS5yI1fMKAICdzOe3x+d5mg20ixcvmq/fyn99fSgAgHv8PNfpwNLsfGg3b96U48ePS7Zs2cyLUbhwYTly5Mht59SxYQ44288zLZyj4jztkhbO80IqnKPGlH5+FyxYUNKlS5d2W2h68oUKFTLfBwUFma/6Itv6j8lTWjjPtHCOivO0S1o4z+wpfI63a5m5UBQCALACgQYAsEKaCrSQkBAZNGiQ+WqztHCeaeEcFedpl7RwniE+PEfri0IAAGlDmmqhAQDsRaABAKxAoAEArECgAQCskGYCbcKECVKsWDHJlCmT1KhRQ77//nsJZOvWrZPmzZubK+f1gvEFCxZ4Pa61PgMHDpQCBQpIaGioNGrUSPbv3y+BZvjw4VKtWjVzp5e8efNKy5YtZe/evV7bXL16Vbp27Srh4eGSNWtWad26tZw6dUoCxaRJk6RixYruC1EjIyNl6dKl1pzfrYwYMcL82+3Zs6dV5zp48GBzXp5LmTJlrDpHdezYMenQoYM5D/2MqVChgmzZskV8+RmUJgLtiy++kN69e5tS0m3btkmlSpUkKipKTp8+LYHq8uXL5jw0qBMzatQoGT9+vEyePFk2bdokWbJkMees/zMFkrVr15r/+Tdu3CgrVqyQuLg4adKkiTl/l169esnixYtl7ty5Znu91VmrVq0kUOidbPTDfevWreYDoUGD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cube = adc_cube_2[0,:,0,0,:]\n", "# print(cube.shape) # (64,1024)\n", "Z_fft2 = abs(fft2(cube))\n", "Data_fft2 = Z_fft2 # [0:n_chirps//2,0:n_samples//2]\n", "\n", "plt.xlabel(\"Range (m)\")\n", "plt.ylabel(\"Velocity (m/s)\")\n", "plt.title('Velocity-Range 2D FFT')\n", "plt.imshow(Data_fft2[:,:64])\n", "plt.show()" ] } ], "metadata": { "colab": { "provenance": [] }, "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 }