{ "cells": [ { "cell_type": "markdown", "id": "185c4dba-779f-4bf4-927f-f1d6aa83cd1c", "metadata": {}, "source": [ "# Angle of Arrival (AoA)\n", "\n", "You can open this workbook in Google Colab to experiment with mmWrt \n", "[![](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/matt-chv/mmWrt/blob/main/docs/Angle_of_Arrival.ipynb)\n", "\n", "Below is an intro to mmWrt for simple Angle of Arrival (AoA) estimation" ] }, { "cell_type": "markdown", "id": "e441b108-393a-4c86-8d58-6ea6d8bdd20c", "metadata": {}, "source": [ "## Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "1ddbb3f4-a991-4389-8a99-3aea98673e18", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "running from git folder, using local path (latest) mmWrt code c:\\git\\mmWrt\n", "2024-10-01 19:51:28.451436\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, "id": "013b20eb-c464-4ae6-9a2b-6ba38ac0c40d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.0.7\n" ] } ], "source": [ "from os.path import abspath, join, pardir\n", "import sys\n", "from numpy.fft import fft, fftshift\n", "from scipy.signal import find_peaks\n", "import matplotlib.pyplot as plt\n", "from numpy import arange, cos, sin, pi, zeros\n", "\n", "from mmWrt.Scene import Antenna, Medium, Radar, Receiver, Target, Transmitter\n", "from mmWrt.Raytracing import rt_points\n", "from mmWrt import __version__\n", "print(__version__)" ] }, { "cell_type": "markdown", "id": "1086cfd8-ce6b-487c-89e9-674d5341daa1", "metadata": {}, "source": [ "## Example" ] }, { "cell_type": "code", "execution_count": 21, "id": "a458d063-59e7-4ff8-98c5-36a428bc1988", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f0 = 62e9\n", "# Number of ADC samples\n", "NA = 64\n", "# Number of RX channels\n", "NR = 64\n", "\n", "void = Medium()\n", "c = void.v\n", "lambda0 = c/f0\n", "_fs = 4e3\n", "_k = 70e8\n", "RXs = [Antenna(x=lambda0/2*i) for i in range(NR)]\n", "radar = Radar(transmitter=Transmitter(bw=3.5e9, slope=_k),\n", " receiver=Receiver(fs=_fs, max_adc_buffer_size=2048,\n", " n_adc=NA,\n", " antennas=RXs),\n", " debug=False)\n", "r1, theta1 = 10.1, 0\n", "x1, y1 = r1*cos(theta1), r1*sin(theta1)\n", "r2, theta2 = 20.1, pi/2\n", "x2, y2 = r2*cos(theta2), r2*sin(theta2)\n", "r3, theta3 = 30.1, pi\n", "x3, y3 = r3*cos(theta3), r3*sin(theta3)\n", "\n", "target1 = Target(x1, y1, 0) # 0 degrees on x-axis <=> -pi/2 vs bore sight\n", "target2 = Target(x2, y2, 0) # pi/2 degrees vs x-ax <=> 0 degree vs bore sight\n", "target3 = Target(x3, y3, 0) # 180 degrees on x-axis <=> pi/2 vs boresight\n", "targets = [target1, target2, target3]\n", "\n", "bb = rt_points(radar, targets,\n", " debug=False)\n", "cube = bb[\"adc_cube\"]\n", "# first compute the range FFT\n", "R_fft = fft(cube, axis=4)\n", "# then compute the AoA FFT\n", "A_FFT = fft(R_fft, axis=3)\n", "# for Range vs AoA, display magnitude\n", "# and need to fftshift to have the negative frequencies moved around 0\n", "Z_fft = abs(fftshift(A_FFT[0,0,0,:,:], axes=0))\n", "plt.xlabel(\"Range\")\n", "plt.ylabel(\"AoA\")\n", "plt.title('AoA-Range 2D FFT')\n", "plt.imshow(Z_fft[:,:NA//2])" ] }, { "cell_type": "markdown", "id": "ceb3df2c-6c9f-451e-b0e8-e044eaaf95a1", "metadata": {}, "source": [ "### adding legends" ] }, { "cell_type": "code", "execution_count": 22, "id": "a92f4b46-f386-46b7-9642-8062c5322065", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ranges = arange(0, _fs*c/2/_k, _fs*c/2/_k/NA)\n", "angles = arange(-90, 90, 180/NR)\n", "\n", "no_labels = 6 # how many labels to see on axis x\n", "step_x = int(NA / (no_labels - 1)) # step between consecutive labels\n", "x_positions = arange(0, NA, step_x) # pixel count at label position\n", "x_labels = ranges[::step_x] # labels you want to see\n", "x_labels = [f\"{d:.2g}\" for d in x_labels]\n", "plt.xticks(x_positions, x_labels)\n", "\n", "no_labels_y = 5 # how many labels to see on axis x\n", "step_y = int(NR / (no_labels_y - 1)) # step between consecutive labels\n", "y_positions = arange(0, NR, step_y) # pixel count at label position\n", "y_labels = angles[::step_y] # labels you want to see, FIXME: needs different formulas\n", "y_labels = [f\"{v:.2g}\" for v in y_labels] # rounding up for easier dispaly\n", "plt.yticks(y_positions, y_labels)\n", "\n", "plt.xlabel(\"Range (m)\")\n", "plt.ylabel(\"AoA (degrees)\")\n", "plt.title(\"Rangle AoA plot\")\n", "plt.imshow(Z_fft[:,:NA//2], aspect='auto')" ] }, { "cell_type": "markdown", "id": "5bd4aef4-6ca2-49d6-9187-561cf07bc5b8", "metadata": {}, "source": [ "## Sparse Array Considerations\n", "\n", "A sparse antenna array (as opposed to a `Uniform Linear Array (ULA)`) is an antenna array where the spacing though a multiple of $\\frac{\\lambda}{2}$ is not filled wiht an antenna for every multiple of $$\\frac{\\lambda}{2}$$.\n", "\n", "In other words, where a ULA with n antennas has an appeture of $$ n*\\frac{\\lambda}{2} $$\n", "a sparse array usually as an aperture $$ D >> n*\\frac{\\lambda}{2}$$.\n", "\n", "The best way to see this is to consider that antennas channels which would be located where they are `missing` are filled with zero in the radar cube.\n", "\n", "There is a full field of research on how to optimise angular resolution (which is function of aperture) to the number of antennas as with less antennas comes stronger side lobes." ] }, { "cell_type": "markdown", "id": "c85bfe87-b163-49b1-a9d7-0d8c3d600dda", "metadata": {}, "source": [ "### Example with one antenna missing every 4" ] }, { "cell_type": "code", "execution_count": 23, "id": "f3237f8c-fb26-4864-9ea7-0b7002a9d0c9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "c:\\git\\venv_mmWrt_dev\\Lib\\site-packages\\scipy\\signal\\_peak_finding.py:266: ComplexWarning: Casting complex values to real discards the imaginary part\n", " value = np.asarray(value, order='C', dtype=np.float64)\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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MW/ePHXZzp07m3zdxv6+W265pcG66urqBstWr14tAIitW7c2eI7Jkyf7bXvDDTeIjh07qo+Li4sFADFjxgy/7e644w4BQDz66KPqsilTpojMzExx4sQJv20nTJggUlJSgu6bL+X4f/bZZ+qygwcPitjYWHHDDTeoy1asWCEAiJKSEnVZdnZ2g7/x+PHjwmq1ij/84Q9Nvq7y2r5/S6jHZ/fu3QKAuPfee/22u/XWW1t1fGbNmiWMRqPYunWreO211wQAsXDhwmb/DiGE+Ne//iVSU1P9/qcnTZokHA5HSL9PJIQQLCGR9AoLC5Geno4rr7wSgCcVf/PNN2PNmjV+qe73338fgwcPVksdgKcB7NSpU/Hjjz9i37596vJ169bh5MmTuOWWW9Rlt9xyC7744gvs3bs35H174403sGHDBvUrWGlrzJgxftts2LABI0aMCOsYNMZqtaoNJl0uF06ePInExEScf/752LVrV6uf/+67726wzLdEoGSXhgwZAgBBXzPwOS677DKcPHlSLUWsX78eAHDvvff6bXfffff5PRZC4I033sB1110HIQROnDihfo0YMQIVFRUh/c15eXkYMGCA+rh79+4YM2YMPvjggyZLJwDQp08fNYMFAJ07d8b555+PH374odnXbUxzx+f9998HAEyfPt1vu8BsU7jHZ86cObjwwgsxadIk3HvvvbjiiisavEZjfvGLX2Dw4MFYuHAh3nrrLcycOROFhYV46KGHwv3zKYqxhERSc7lcWLNmDa688kqUlJSoy3Nzc/HMM89g48aNuPrqqwEABw8eDNrF+oILLlDXKyWCVatWIScnB1arFd999x0AoGfPnoiPj0dhYSGefPLJkPbv8ssvb7YRb9euXZGfnx/S84XL7Xbjueeew/PPP4+SkhK/D+COHTu2+vlzcnIaLDt16hTmzp2LNWvW4Pjx437rKioqGmzfvXt3v8dKie306dNITk7GwYMHYTQaG7xWYC+zn3/+GeXl5Vi+fDmWL18edH8D9yeYXr16NVh23nnnobq6Gj///DMyMjIa/d3Av0X5e06fPt3s64b6nI0dn549e/ptd/755/s9Dvf4WCwWvPjiixg0aBBiY2OxYsWKBuW/YD755BOMHj0an376KQYOHAgAGDt2LJKTkzF37lxMnjwZffr0af4Pp6jHAIaktmnTJhw7dgxr1qzBmjVrGqwvLCxUA5hQ2Ww2vPfee6itrQ36YfbKK6/giSeeCOli3t6efPJJPPLII5g8eTIee+wxpKWlwWg0YsaMGXC73a1+/mANMn/zm99g27ZtePDBB3HJJZcgMTERbrcb11xzTdDXbKw9hahvUxMq5blvu+02TJo0Keg2ffv2Des5wxWpv6UtnrMlx+eDDz4A4MmkHThwIGjAGuiFF15Aenq6Grworr/+esyZMwfbtm1jAEMhYQBDUissLESXLl2wZMmSBuvefPNNvPXWW1i2bBni4uKQnZ2N/fv3N9jum2++AQBkZ2erv1dbW4ulS5c2yJ7s378fDz/8MD755BO/UpRWvf7667jyyivx73//2295eXm5398WqWDs9OnT2LhxI+bOnYvZs2eryw8cONDi58zOzobb7UZJSYlfQKlkxhRKDxyXy9WqjFawff32228RHx+Pzp07t/h524pyfL7//nu/rEvg/3q4x+fLL7/EvHnzcOedd2L37t246667sGfPHqSkpDT5e2VlZUFLbQ6HAwDgdDpD+bOI2I2a5FVTU4M333wTo0ePxvjx4xt8TZs2DZWVlXj33XcBANdeey127NiBoqIi9TmqqqqwfPly9OjRQ70rXLVqFc455xzcfffdDZ7zj3/8IxITExvtpq01JpOpwZ36a6+9hiNHjvgtU8ZvCWe04cZeD2iYHVi4cGGLn1NpD/T888/7LV+8eHGD1x43bhzeeOMNfPXVVw2e5+effw7p9YqKivzaghw+fBjvvPMOrr766oiP/RIJI0eOBAAsWrTIb3ngMQ/n+DgcDtxxxx3IysrCc889h5UrV6KsrAwPPPBAs/tz3nnnoaysDB999JHf8tWrVwMAx4ChkDEDQ9J69913UVlZieuvvz7o+iFDhqBz584oLCzEzTffjIceegirV6/GyJEjMX36dKSlpeGll15CSUkJ3njjDRiNRhw9ehSbN29utLGi1WrFiBEj8Nprr2HRokWIiYlpyz+x1UaPHq3eRQ8dOhR79uxBYWFhgwHyevbsidTUVCxbtgxJSUlISEhAbm5uSCUDX8nJybj88suxYMECOBwO/OIXv8CHH37o1z4pXAMGDMC4ceOwcOFCnDx5Uu1G/e233wLwzx499dRT2Lx5M3Jzc/G73/0Offr0walTp7Br1y7873//a9CtPZiLLroII0aM8OtGDQBz585t8d/Qli655BLccssteP7551FRUYGhQ4di48aNDTJUQOjH5/HHH8fu3buxceNGJCUloW/fvpg9ezYefvhhjB8/Htdee22j+zNt2jSsWLEC1113He677z5kZ2djy5YtWL16NX79619HdKoPkly79X8iamPXXXediI2NFVVVVY1uc8cdd4iYmBi12+j3338vxo8fL1JTU0VsbKwYPHiwWLt2rbr9M888IwCIjRs3NvqcK1euFADEO++80+g2ShfYn3/+ucm/AYAoKChochtfLelG/Yc//EFkZmaKuLg4MWzYMFFUVCSuuOIKccUVV/ht+84774g+ffoIs9ncbJfqpv6+n376Sdxwww0iNTVVpKSkiJtuukkcPXq00W7Cgc8RrItyVVWVKCgoEGlpaSIxMVGMHTtW7N+/XwAQTz31lN/vl5WViYKCAtGtWzcRExMjMjIyxPDhw8Xy5cubPV7K+7Fq1SrRq1cvYbVaRf/+/cXmzZub3cfs7GwxatSoBs8Z7Fg39totPT41NTVi+vTpomPHjiIhIUFcd9114vDhww2eU4jmj09xcbEwm83ivvvu8/s9p9MpBg0aJLKyssTp06eb/Fu++eYbMX78ePU1srOzxR//+Mcmz1WiQAYhWtF6jIhIo3bv3o3+/ftj1apVmDhxYnvvDhFFGNvAEJHu+Q5pr1i4cCGMRiMuv/zydtgjImprbANDRLq3YMECFBcX48orr4TZbMa6deuwbt06TJ06Fd26dWvv3SOiNsASEhHp3oYNGzB37lzs27cPZ86cQffu3XH77bfjL3/5C8xm3qcRyYgBDBEREekO28AQERGR7jCAISIiIt2Rtjjsdrtx9OhRJCUl6WJOGiIiIvKM1F1ZWYmsrCwYjY3nWaQNYI4ePcreB0RERDp1+PBhdO3atdH10gYwSUlJADwHIDk5uZ33hoiIiEJhs9nQrVs39XO8MdIGMErZKDk5mQEMERGRzjTX/IONeImIiEh3GMAQERGR7jCAISIiIt1hAENERES6wwCGiIiIdIcBDBEREekOAxgiIiLSHQYwREREpDsMYIiIiEh3GMAQERGR7jCAISIiIt1hAENERES6E3YAs3XrVlx33XXIysqCwWDA22+/7bdeCIHZs2cjMzMTcXFxyM/Px4EDB/y2OXXqFCZOnIjk5GSkpqZiypQpOHPmjN82X375JS67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iJtuugldunRB//798c9//lNdL+N1mQFMiE6cOAGXy4X09HS/5enp6SgtLW2nvdIm5XjwWAFutxszZszAsGHDcNFFFwHwHB+LxYLU1FS/baPl+OzZsweJiYmwWq24++678dZbb6FPnz5Rf1wUa9aswa5duzB//vwG66L9GOXm5mLlypVYv349li5dipKSElx22WWorKyM+mPzww8/YOnSpejVqxc++OAD3HPPPZg+fTpeeuklAHJel83tvQNEMisoKMBXX33lV6ePdueffz52796NiooKvP7665g0aRK2bNnS3rulCYcPH8b999+PDRs2IDY2tr13R3NGjhyp/ty3b1/k5uYiOzsb//nPfxAXF9eOe9b+3G43Bg4ciCeffBIA0L9/f3z11VdYtmwZJk2a1M571zaYgQlRp06dYDKZGrRoLysrQ0ZGRjvtlTYpxyPaj9W0adOwdu1abN68GV27dlWXZ2RkwG63o7y83G/7aDk+FosF5557LgYMGID58+ejX79+eO6556L+uACeMsjx48fxy1/+EmazGWazGVu2bMGiRYtgNpuRnp4e9cfIV2pqKs477zx89913Uf//k5mZiT59+vgtu+CCC9QSm4zXZQYwIbJYLBgwYAA2btyoLnO73di4cSPy8vLacc+0JycnBxkZGX7HymazYfv27VFxrIQQmDZtGt566y1s2rQJOTk5fusHDBiAmJgYv+Ozf/9+HDp0KCqOTyC32426ujoeFwDDhw/Hnj17sHv3bvVr4MCBmDhxovpztB8jX2fOnMH333+PzMzMqP//GTZsWIPhGr799ltkZ2cDkPS63N6tiPVkzZo1wmq1ipUrV4p9+/aJqVOnitTUVFFaWtreu3bWVVZWis8//1x8/vnnAoB49tlnxeeffy4OHjwohBDiqaeeEqmpqeKdd94RX375pRgzZozIyckRNTU17bznbe+ee+4RKSkp4qOPPhLHjh1Tv6qrq9Vt7r77btG9e3exadMm8dlnn4m8vDyRl5fXjnt9djz00ENiy5YtoqSkRHz55ZfioYceEgaDQXz44YdCiOg9Lk3x7YUkRHQfoz/84Q/io48+EiUlJeKTTz4R+fn5olOnTuL48eNCiOg+Njt27BBms1k88cQT4sCBA6KwsFDEx8eLVatWqdvIdl1mABOmxYsXi+7duwuLxSIGDx4sPv300/bepXaxefNmAaDB16RJk4QQni57jzzyiEhPTxdWq1UMHz5c7N+/v313+iwJdlwAiBUrVqjb1NTUiHvvvVd06NBBxMfHixtuuEEcO3as/Xb6LJk8ebLIzs4WFotFdO7cWQwfPlwNXoSI3uPSlMAAJpqP0c033ywyMzOFxWIRv/jFL8TNN98svvvuO3V9NB8bIYR47733xEUXXSSsVqvo3bu3WL58ud962a7LBiGEaJ/cDxEREVHLsA0MERER6Q4DGCIiItIdBjBERESkOwxgiIiISHcYwBAREZHuMIAhIiIi3WEAQ0RERLrDAIaIiIh0hwEMERER6Q4DGCIiItIdBjBERESkO/8fikpL9lI3aZgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# compute spare array AoA FFT\n", "Sparse1_array = cube.copy()\n", "for rx_idx in range(NR//4):\n", " Sparse1_array[0,0,0, 4*rx_idx+1, :] = zeros(NA)\n", " # A_FFT[0,0,0, 4*rx_idx+2, :] = zeros(NA)\n", " # A_FFT[0,0,0, 4*rx_idx+3, :] = zeros(NA)\n", "R1_fft = fft(Sparse1_array, axis=4)\n", "A1_FFT = fft(R1_fft, axis=3)\n", "\n", "# find the range bin index with first target\n", "peak0 = find_peaks(R1_fft[0,0,0,0,:])[0][0]\n", "print(peak0)\n", "plt.title(f\"AoA FFT at range bin index {peak0}\")\n", "plt.plot(abs(A1_FFT[0,0,0,:,peak0]))" ] }, { "cell_type": "markdown", "id": "201e916b-c7ea-42e0-9237-332e98ef8daf", "metadata": {}, "source": [ "### Example with 2 antennas missing every 4" ] }, { "cell_type": "code", "execution_count": 24, "id": "2ab69287-b20a-4110-8b96-60dddb56cc3e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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uXIlVq5cWW9/QUGBHKBEq6qqCh988AFqamrCflmtWLECL7zwQlQX6+b24osv4re//S0effRRPP/880hPT4fZbMbkyZPh8/nO+/HDdXj85S9/ia1bt+Lpp59Gz549kZSUBJ/Ph1tvvTXs34zUn0EE+rRES3rshx56CKNHjw57TPfu3WN6zFhdqOdyMR6zKa/Pxx9/DMCfCdu/f3/YgLSu1157DZmZmXJwIrnzzjsxc+ZMbN26lQEKRY0BCmlWQUEBMjIysGDBgnr73nnnHaxevRqLFy9GfHw8srOzsW/fvnrH/ec//wEAZGdny79XU1ODRYsW1ct+7Nu3D9OnT8eWLVtCSkVq9fbbb+PGG2/EG2+8EbK9oqIi5LldqGDr1KlTWL9+PWbNmoUZM2bI2/fv39/kx8zOzobP50NJSUlIwChltiTSCBav13teGalw5/rtt98iISEBrVq1avLjXizS6/Pdd9+FZE3q/r8e6+vz1VdfYfbs2XjkkUewa9cuPPbYY9i9ezdSU1Mb/L2ysrKwpTC32w0A8Hg80TwtIgAcZkwade7cObzzzju4/fbbcc8999S7TZgwAadPn8b7778PALjtttvw2WefoaioSH6M6upqvP766+jQoYPcqlu+fDk6duyIxx9/vN5jPvXUU0hKSoo4jFltLBZLvZb2qlWr8OOPP4Zsk+YviWW23Eh/D6jfup83b16TH1Pqj7Nw4cKQ7a+++mq9vz1ixAj885//xNdff13vcY4fPx7V3ysqKgrpi3HkyBG89957GDx48AWf++RCGDJkCABg/vz5IdvrvuaxvD5utxtjxoxBmzZt8Kc//QlLly5FWVkZpkyZ0uj5XHnllSgrK8Onn34asv2tt94CAM6BQjFhBoU06f3338fp06dx5513ht0/YMAAtGrVCgUFBbjvvvvw7LPP4q233sKQIUMwadIkpKenY9myZSgpKcE///lPmM1mHD16FBs3bozYGdDhcCAvLw+rVq3C/PnzYbPZLuZTPG+333673Aq+9tprsXv3bhQUFNSbAO6KK65AWloaFi9ejOTkZCQmJqJ///5RpfSVUlJScP3112Pu3Llwu924/PLL8cknn4T0D4pV7969MWLECMybNw8nTpyQhxl/++23AEKzPy+99BI2btyI/v3741e/+hVyc3Nx8uRJfP7551i3bl29Yd/hdO3aFXl5eSHDjAFg1qxZTX4OF1PPnj3xwAMPYOHChaisrMS1116L9evX18swAdG/Pr/73e+wa9curF+/HsnJyejevTtmzJiB6dOn45577sFtt90W8XwmTJiAJUuW4I477sDEiRORnZ2NTZs24a233sItt9xyQZeiIANotvFDROfhjjvuEHFxcaK6ujriMWPGjBE2m00eVvndd9+Je+65R6SlpYm4uDjRr18/sWbNGvn4l19+WQAQ69evj/iYS5cuFQDEe++9F/EYaYjo8ePHG3wOAER+fn6Dxyg1ZZjxr3/9a9G6dWsRHx8vBg4cKIqKisQNN9wgbrjhhpBj33vvPZGbmyusVmujQ44ben4//PCDuOuuu0RaWppITU0V9957rzh69GjEYbR1HyPcEN7q6mqRn58v0tPTRVJSkhg+fLjYt2+fACBeeumlkN8vKysT+fn5ol27dsJms4msrCxx8803i9dff73R10t6P5YvXy46deokHA6H6NWrl9i4cWOj55idnS2GDh1a7zHDvdaR/nZTX59z586JSZMmiZYtW4rExERxxx13iCNHjtR7TCEaf32Ki4uF1WoVEydODPk9j8cj+vbtK9q0aSNOnTrV4HP5z3/+I+655x75b2RnZ4unnnqqwc8qUTgmIc6jBxcRUTPYtWsXevXqheXLl2PkyJHNfTpEdBGwDwoRqZpyynXJvHnzYDabcf311zfDGRHRpcA+KESkanPnzkVxcTFuvPFGWK1WfPTRR/joo48wbtw4tGvXrrlPj4guEpZ4iEjVCgsLMWvWLOzduxdnzpxB+/btMWrUKPzmN7+B1co2FpFeMUAhIiIi1WEfFCIiIlKdmAKUDh06wGQy1bvl5+cD8E+JnJ+fj5YtWyIpKQkjRoxAWVlZyGMcPnwYQ4cORUJCAjIyMvD0009zdkEiIiIKEVMBd8eOHSHTGH/99de45ZZbcO+99wIApkyZgn/9619YtWoVUlNTMWHCBNx9993YsmULAP/ibkOHDkVWVha2bt2KY8eO4eGHH4bNZot6ATbAv67E0aNHkZycrIk1UYiIiMg/0/Tp06fRpk0bebX1hg5usieffFJcccUVwufziYqKCmGz2cSqVavk/d98840AIIqKioQQQnz44YfCbDaL0tJS+ZhFixaJlJQUUVtbG/XflSYh4o033njjjTfetHc7cuRIo9/1Te4C73K5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aWlpc5/aJXf69GnxxRdfiC+++EIAEH/84x/FF198IQ4dOiSEEOKll14SaWlp4r333hNfffWVGDZsmMjJyRHnzp1r5jO/+MaPHy9SU1PFp59+Ko4dOybfzp49Kx/z+OOPi/bt24sNGzaInTt3CqfTKZxOZzOe9aXz7LPPik2bNomSkhLx1VdfiWeffVaYTCbxySefCCGM/dqEoxzFI4SxX59f//rX4tNPPxUlJSViy5YtYtCgQeKyyy4T5eXlQghjvzafffaZsFqt4oUXXhD79+8XBQUFIiEhQSxfvlw+Ro/XZQYoCq+++qpo3769sNvtol+/fmLbtm3NfUrNYuPGjQJAvdvo0aOFEP4hbb/97W9FZmamcDgc4uabbxb79u1r3pO+RMK9LgDEkiVL5GPOnTsnnnjiCdGiRQuRkJAg7rrrLnHs2LHmO+lL6NFHHxXZ2dnCbreLVq1aiZtvvlkOToQw9msTTt0Axcivz3333Sdat24t7Ha7uPzyy8V9990nDhw4IO838msjhBAffPCB6Nq1q3A4HKJz587i9ddfD9mvx+uySQghmid3Q0RERBQe+6AQERGR6jBAISIiItVhgEJERESqwwCFiIiIVIcBChEREakOAxQiIiJSHQYoREREpDoMUIiIiEh1GKAQERGR6jBAISIiItVhgEJERESq8/8BsnknUcdIKMgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Sparse2_array = cube.copy()\n", "for rx_idx in range(NR//4):\n", " Sparse2_array[0,0,0, 4*rx_idx+1, :] = zeros(NA)\n", " Sparse2_array[0,0,0, 4*rx_idx+2, :] = zeros(NA)\n", " # A_FFT[0,0,0, 4*rx_idx+3, :] = zeros(NA)\n", "R2_fft = fft(Sparse2_array, axis=4)\n", "A2_FFT = fft(R2_fft, axis=3)\n", "\n", "plt.title(f\"AoA FFT at range bin index {peak0}\")\n", "plt.plot(abs(A2_FFT[0,0,0,:,peak0]))" ] }, { "cell_type": "code", "execution_count": 25, "id": "6ce2638b-2976-4fa2-bbb5-c900fbb7474f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGzCAYAAAAFROyYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABplUlEQVR4nO2deXxU1d3/PzOZzCQBkhiEBATCIrJvRZaoVRQEEXFD6y4olapBK1gf5SlFwFas3VyKUJ9asDWIxYoLP0URMFTZBEUQFAEjoJAEWZIQSGY7vz+Se+fOZJZ7hyznZD7v12teZGZuJnfu4Zz7+a7HJoQQIIQQQgiRCHtTnwAhhBBCSCgUKIQQQgiRDgoUQgghhEgHBQohhBBCpIMChRBCCCHSQYFCCCGEEOmgQCGEEEKIdFCgEEIIIUQ6KFAIIYQQIh0UKIQQAsBms2Hq1Kkxj1u8eDFsNhu+++67ev3bs2fPrrfPa6jPJKQxoUAhzYIXXngBNpsNw4YNq7fP/Oqrr2Cz2ZCSkoITJ06Y/r3Zs2fDZrOFfSxcuFA/LtIxOTk5+k0w1qNz585n/D0PHTqE2bNnY9u2bWf8WYQcPnwYU6ZMQZcuXZCamopu3bph+vTpOHr0aFOfGlEMR1OfACH1QUFBATp37ozNmzdj7969OPfcc8/4M1955RXk5OTg+PHjeP311/Hzn//c0u8vWLAALVu2DHotVEBdfvnluPPOO4NeS01NxaBBg/Cvf/0r6PWf//znGDp0KKZMmaK/Fvr58XDo0CHMmTMHnTt3xsCBA8/485o7d9xxB26++Wa4XK56+8zTp0/D4VB/OT558iTy8vJQWVmJ+++/Hx07dsQXX3yBv/71r1i7di22bt0Ku512MTGH+jOCJDxFRUVYv3493njjDfziF79AQUEBHn/88TP6TCEElixZgltvvRVFRUUoKCiwLFBuuOEGnH322VGPOe+883D77beHfa9r165Bz++991507do14vFNSWVlJVq0aNHUp9EoJCUlISkpqV4/MyUlpV4/r6l4++23sX//fqxYsQLjxo3TX8/KysLcuXPxxRdfYNCgQU14hkQlKGWJ8hQUFOCss87CuHHjcMMNN6CgoCDscd9++y1uvPFGZGVlIS0tDcOHD8f/+3//L+yxn3zyCb777jvcfPPNuPnmm7Fu3Tp8//33Dfk16p1jx47hV7/6Ffr164eWLVsiPT0dY8eOxRdffKEf89FHH2HIkCEAgLvuuksPHS1evDji52ohrF27duHWW2/FWWedhYsuuggAsH37dkyaNAldu3ZFSkoKcnJycPfdd9dx72ufsXfvXkyaNAmZmZnIyMjAXXfdhVOnTgUde/r0aTz44IM4++yz0apVK1x99dX44YcfwuZY/PDDD7j77ruRnZ0Nl8uFPn364B//+Iel61ZQUIAePXogJSUFgwcPxrp164LeD5eD0rlzZ1x11VX4+OOPMXToUKSkpKBr16745z//aepvhn4XK9enuroa06ZNQ5s2bfTrE+n/aqzrc/r0afTs2RM9e/bE6dOn9dePHTuGdu3a4YILLoDP54v4PcrLywEA2dnZQa+3a9cOQI13kBCz0INClKegoADXX389nE4nbrnlFixYsACffvqpfuMFgJKSElxwwQU4deoUHnzwQbRu3Rovv/wyrr76arz++uu47rrr6nxmt27dMGTIEPTt2xdpaWl49dVX8cgjj5g+r2PHjgU9T0pKwllnnRX0WlVVFX788ceg11q1alUv4YNvv/0Wb775Jm688UZ06dIFJSUl+Nvf/oZLLrkEu3btQvv27dGrVy/MnTsXs2bNwpQpU/DTn/4UAHDBBRfE/Pwbb7wR3bt3x5NPPgkhBABg1apV+Pbbb3HXXXchJycHO3fuxIsvvoidO3di48aNsNlsQZ/xs5/9DF26dMG8efPw2Wef4e9//zvatm2L3//+9/oxkyZNwr///W/ccccdGD58OAoLC4Osc42SkhIMHz5cT3Zt06YN3nvvPUyePBnl5eV46KGHYn6nwsJCvPbaa3jwwQfhcrnwwgsv4IorrsDmzZvRt2/fqL+7d+9e3HDDDZg8eTImTpyIf/zjH5g0aRIGDx6MPn36xPzb4TBzfX7+85/jlVdewa233ooLLrgAa9asifv6pKam4uWXX8aFF16IX//61/jzn/8MAMjPz0dZWRkWL14c1Xt08cUXw26345e//CX+9Kc/oUOHDti+fTt+97vf4dprr0XPnj3jug4kQRGEKMyWLVsEALFq1SohhBB+v1906NBB/PKXvww67qGHHhIAxH//+1/9tYqKCtGlSxfRuXNn4fP59Nfdbrdo3bq1+PWvf62/duutt4oBAwaYOqfHH39cAKjzyM3NDTou3DEAxKJFi8J+bosW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N/SgEEIIIUQ6KFAIIYQQIh0UKIQQQgiRDgoUQgghhEgHBQohhBBCpIMCxcD8+fPRuXNnpKSkYNiwYdi8eXNTn1KTsG7dOowfPx7t27eHzWbDm2++GfS+EAKzZs1Cu3btkJqailGjRmHPnj1Nc7KNzLx58zBkyBC0atUKbdu2xbXXXovdu3cHHVNVVYX8/Hy0bt0aLVu2xIQJE1BSUtJEZ9y4LFiwAP3799e7Wubl5eG9997T30/kaxPKU089BZvNhoceekh/LZGvz+zZs2Gz2YIePXv21N9P5GsDAD/88ANuv/12tG7dGqmpqejXrx+2bNmiv98c12UKlFpee+01TJ8+HY8//jg+++wzDBgwAGPGjEFpaWlTn1qjU1lZiQEDBmD+/Plh33/66afx3HPPYeHChdi0aRNatGiBMWPGoKqqqpHPtPEpLCxEfn4+Nm7ciFWrVsHj8WD06NGorKzUj5k2bRreeecdLFu2DIWFhTh06BCuv/76JjzrxqNDhw546qmnsHXrVmzZsgWXXXYZrrnmGuzcuRNAYl8bI59++in+9re/oX///kGvJ/r16dOnDw4fPqw/Pv74Y/29RL42x48fx4UXXojk5GS899572LVrF/70pz/hrLPO0o9pluuyIEIIIYYOHSry8/P15z6fT7Rv317MmzevCc+q6QEgli9frj/3+/0iJydH/OEPf9BfO3HihHC5XOLVV19tgjNsWkpLSwUAUVhYKISouRbJycli2bJl+jFfffWVACA2bNjQVKfZpJx11lni73//O69NLRUVFaJ79+5i1apV4pJLLhG//OUvhRD8v/P444+LAQMGhH0v0a/No48+Ki666KKI7zfXdZkeFAButxtbt27FqFGj9NfsdjtGjRqFDRs2NOGZyUdRURGKi4uDrlVGRgaGDRuWkNeqrKwMAJCVlQUA2Lp1KzweT9D16dmzJzp16pRw18fn82Hp0qWorKxEXl4er00t+fn5GDduXNB1APh/BwD27NmD9u3bo2vXrrjttttw4MABALw2b7/9Ns4//3zceOONaNu2LQYNGoT/+7//099vrusyBQqAH3/8ET6fD9nZ2UGvZ2dno7i4uInOSk6068FrBfj9fjz00EO48MIL0bdvXwA118fpdCIzMzPo2ES6Pjt27EDLli3hcrlw7733Yvny5ejduzevDYClS5fis88+w7x58+q8l+jXZ9iwYVi8eDFWrlyJBQsWoKioCD/96U9RUVGR8Nfm22+/xYIFC9C9e3e8//77uO+++/Dggw/i5ZdfBtB812VHU58AIaqSn5+PL7/8MihOToAePXpg27ZtKCsrw+uvv46JEyeisLCwqU+ryTl48CB++ctfYtWqVUhJSWnq05GOsWPH6j/3798fw4YNQ25uLv79738jNTW1Cc+s6fH7/Tj//PPx5JNPAgAGDRqEL7/8EgsXLsTEiROb+OwaDnpQAJx99tlISkqqkxFeUlKCnJycJjorOdGuR6Jfq6lTp2LFihVYu3YtOnTooL+ek5MDt9uNEydOBB2fSNfH6XTi3HPPxeDBgzFv3jwMGDAAzz77bMJfm61bt6K0tBQ/+clP4HA44HA4UFhYiOeeew4OhwPZ2dkJfX1CyczMxHnnnYe9e/cm/P+ddu3aoXfv3kGv9erVSw+BNdd1mQIFNQvq4MGDsXr1av01v9+P1atXIy8vrwnPTD66dOmCnJycoGtVXl6OTZs2JcS1EkJg6tSpWL58OdasWYMuXboEvT948GAkJycHXZ/du3fjwIEDCXF9wuH3+1FdXZ3w12bkyJHYsWMHtm3bpj/OP/983HbbbfrPiXx9Qjl58iT27duHdu3aJfz/nQsvvLBOO4NvvvkGubm5AJrxutzUWbqysHTpUuFyucTixYvFrl27xJQpU0RmZqYoLi5u6lNrdCoqKsTnn38uPv/8cwFA/PnPfxaff/652L9/vxBCiKeeekpkZmaKt956S2zfvl1cc801okuXLuL06dNNfOYNz3333ScyMjLERx99JA4fPqw/Tp06pR9z7733ik6dOok1a9aILVu2iLy8PJGXl9eEZ914PPbYY6KwsFAUFRWJ7du3i8cee0zYbDbxwQcfCCES+9qEw1jFI0RiX5+HH35YfPTRR6KoqEh88sknYtSoUeLss88WpaWlQojEvjabN28WDodD/O53vxN79uwRBQUFIi0tTbzyyiv6Mc1xXaZAMfD888+LTp06CafTKYYOHSo2btzY1KfUJKxdu1YAqPOYOHGiEKKmpO03v/mNyM7OFi6XS4wcOVLs3r27aU+6kQh3XQCIRYsW6cecPn1a3H///eKss84SaWlp4rrrrhOHDx9uupNuRO6++26Rm5srnE6naNOmjRg5cqQuToRI7GsTjlCBksjX56abbhLt2rUTTqdTnHPOOeKmm24Se/fu1d9P5GsjhBDvvPOO6Nu3r3C5XKJnz57ixRdfDHq/Oa7LNiGEaBrfDSGEEEJIeJiDQgghhBDpoEAhhBBCiHRQoBBCCCFEOihQCCGEECIdFCiEEEIIkQ4KFEIIIYRIBwUKIYQQQqSDAoUQQggh0kGBQgghhBDpoEAhhBBCiHRQoBBCCCFEOv4/NeYfv79sINMAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Sparse3_array = cube.copy()\n", "for rx_idx in range(NR//4):\n", " Sparse3_array[0,0,0, 4*rx_idx+1, :] = zeros(NA)\n", " Sparse3_array[0,0,0, 4*rx_idx+2, :] = zeros(NA)\n", " Sparse3_array[0,0,0, 4*rx_idx+3, :] = zeros(NA)\n", "R3_fft = fft(Sparse3_array, axis=4)\n", "A3_FFT = fft(R3_fft, axis=3)\n", "\n", "plt.title(f\"AoA FFT at range bin index {peak0}\")\n", "plt.plot(abs(A3_FFT[0,0,0,:,peak0]))" ] }, { "cell_type": "markdown", "id": "a68d2acc-5ad0-46f9-a557-8313cbffec9c", "metadata": {}, "source": [ "## Aperture vs sidelobes\n", "\n", "Comparing an AoA FFT for 8 antennas either sparse (spacing of 4) or dense\n", "\n", "As below shows, the larger aperture - though with the same number of antennas - leads to sharper angular resolution though with larger side lobes (angular uncertainty).\n", "\n", "If radar beam pattern can be controlled to ensure no echo at higher angular values, this can be resolved in SW." ] }, { "cell_type": "code", "execution_count": 26, "id": "cc957171-aded-4b33-9579-c508b3bd6cab", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Number of RX antennas: 8\n", "NR_d = 8\n", "NR_s = 32 # before pruning\n", "RXs_d = [Antenna(x=lambda0/2*i) for i in range(NR_d)]\n", "RXs_s = [Antenna(x=lambda0/2*i) for i in range(NR_s)]\n", "legend = [\"dense\", \"sparse\"]\n", "for idx in range(2):\n", " RXs = [RXs_d, RXs_s][idx]\n", " radar = Radar(transmitter=Transmitter(bw=3.5e9, slope=_k),\n", " receiver=Receiver(fs=_fs, max_adc_buffer_size=2048,\n", " n_adc=NA,\n", " antennas=RXs),\n", " debug=False)\n", " bb = rt_points(radar, targets, debug=False)\n", " cube = bb[\"adc_cube\"]\n", " if idx == 1:\n", " # if sparse then fill RX with zero \n", " # equivalent to adding zeros in tensor if reading ADC from radar\n", " for rx_idx in range(NR_s//4):\n", " cube[0,0,0, 4*rx_idx+1, :] = zeros(NA)\n", " cube[0,0,0, 4*rx_idx+2, :] = zeros(NA)\n", " cube[0,0,0, 4*rx_idx+3, :] = zeros(NA)\n", " # first compute the range FFT\n", " R_fft = fft(cube, axis=4)\n", " # then compute the AoA FFT\n", " A_FFT = fft(R_fft, axis=3)\n", " plt.title(f\"AoA FFT at range bin index {peak0}\")\n", " # scale x-axis\n", " angles = arange(-90, 90, 180/len(RXs))\n", " # plot\n", " plt.plot(angles, abs(A_FFT[0,0,0,:,peak0]), label=f\"{legend[idx]}\")\n", " plt.legend()" ] }, { "cell_type": "markdown", "id": "7ceedbc7-ec9e-4a43-a337-7c5de2f76700", "metadata": {}, "source": [ "### Non regression hook" ] }, { "cell_type": "code", "execution_count": 30, "id": "4fa69107-4655-4927-82fc-2c003f20e13f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "last successful run on \n", "2024-10-01 19:57:22.022264\n", "on version 0.0.7\n" ] } ], "source": [ "assert peak0 == 8\n", "print(\"last successful run on \")\n", "print(datetime.datetime.now())\n", "print(\"on version\", __version__)" ] } ], "metadata": { "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.11.1" } }, "nbformat": 4, "nbformat_minor": 5 }