{ "cells": [ { "cell_type": "markdown", "id": "9fe24b4f-528d-4cbb-a710-119db56c3ac1", "metadata": {}, "source": [ "# FMCW Radar 203- SNR\n", "[![](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/matt-chv/mmWrt/blob/main/docs/FMCW-Radar-203_SNR.ipynb)" ] }, { "cell_type": "markdown", "id": "44b6d34b-9ac1-4ac9-af95-2576cf6be917", "metadata": {}, "source": [ "## SNR\n", "\n", "For a mono-static radar, the `Signal to Noise Ratio` or `SNR` is the ratio of the received power to the power of the noise.\n" ] }, { "cell_type": "markdown", "id": "9f66b183-3e82-4366-beb5-d5170fae6bf4", "metadata": {}, "source": [ "### Received Power\n", "\n", "The received power, or `Pr` is defined by the radar equation\n", "\n", "$$P_R = \\frac{P_T \\cdot G_T \\cdot G_R \\cdot \\lambda^2 \\cdot \\sigma}{(4 \\pi)^3 \\cdot R^4}$$\n", "\n", "Where:\n", "\n", "* $ P_T $ is the transmitted power from the input of the antenna\n", "* $ P_R $ is the received power at the antenna\n", "* $ G_T $ is the gain of the transmitting antenna (so the power transmitted to the medium is $P_t \\cdot G_T$ )\n", "* $ G_R $ is the gain of receiving antenna\n", "* $ \\lambda $ is carrier wavelength, often the center frequency of the chirp for a FMCW modulation\n", "* $ \\sigma $ is the equivalent surface of the scatterer, also sometimes called `Radar Cross Section`, aka `RCS`\n", "* $ R $ is the range or the distance between the radar and the scatterer" ] }, { "cell_type": "markdown", "id": "ac1d45b7-8fa6-4a42-812d-27a097cba4a7", "metadata": {}, "source": [ "### Noise\n", "\n", "A resistor $ R$ at temperature $T$ can be represented as either:\n", "\n", "* a series voltage source $ v_n(t) $ with with mean-square spectral density $S_v = 4 \\cdot k_B \\cdot T \\cdot R $\n", "* an equivalent current source $ i_n(t) $ with with mean-square spectral density $S_i = \\frac{4 \\cdot k_B \\cdot T }{ R}$\n", "\n", "Assuming we have a perfectly matched antenna port to $50 \\Omega$ (i.e. both antenann and receiver input have $R= 50 \\Omega$), the power delivered to the matched load (i.e. the LNA input) is:\n", "\n", "$$P_{LNA} (t)= \\frac{v_{LNA}^2 (t)}{R} = \\frac{\\frac{v_n}{2}^2}{R} = \\frac{v_n^2}{4 R} $$\n", "Now, take the mean-square (per unit bandwidth):\n", "$$ \\langle P_{LNA} \\rangle = \\frac{\\langle v_n^2 \\rangle}{4R} = \\frac{S_v \\Delta f}{4R}$$\n", "\n", "Substitute $S_v = 4 \\cdot k_B \\cdot T \\cdot R $:\n", "\n", "$$ \\langle P_{LNA} \\rangle = k_B \\cdot T \\Delta f $$\n", "\n", "### instantaneous SNR (before processing)\n", "\n", "Receiver noise power over an effective noise bandwidth $B_n$ is\n", "\n", "$ N = k T_0 \\cdot \text{NF} \\cdot B_n $\n", "\n", "Common choice: take $B_n$ as the IF / instantaneous noise bandwidth (often approximately the chirp bandwidth B if the receiver front-end passes the entire beat spectrum). For the moment keep it general as `Bn`\n", "\n", "Instantaneous SNR (linear) at the ADC / detector prior to any coherent processing:\n", "\n", "$ SNR_0 = \\frac{Pr}{N} = \\frac{P_R}{k T_0 \\cdot text{NF} \\cdot B_n} $\n", "\n", "This is the baseline SNR per unit bandwidth (no matched-filter gain yet)." ] }, { "cell_type": "markdown", "id": "561b0e89-8b9f-4cf4-827e-f6abc63cb810", "metadata": {}, "source": [ "## Integration time\n", "\n", "If the receiver noise bandwidth $ B_n$ equals the chirp bandwidth $ B$, the processing gain (linear) from the matched filter is:\n", "\n", "$ G_{range,linear} = B T_c $\n", "\n", "(If sampling and DFT are used, $G_{range,linear} \\approx N_{eff} $ — the number of coherent samples that the matched filter coherently sums — same order as $ B T_c$)\n", "\n", "So after the range/matched filter (or equivalently after the first FFT across fast-time) the SNR becomes:\n", "\n", "$ SNR_{afterRangeFFT} = SNR_0 \\cdot BTc $\n", "\n", "Notes:\n", "\n", "1. if the FFT length (N_FFT) is larger than the number of samples (like in the case of zero-padding), the processing gain does not increase beyond the matched-filter $ BT_c $; zero-padding simply interpolates the spectrum.\n", "2. Windowing (Hanning, Hamming, etc.) reduces coherent gain (typical loss a few dB, called processing/window loss).\n" ] }, { "cell_type": "code", "execution_count": null, "id": "aedc0263-808e-4939-bfec-3fbdb1168b8e", "metadata": {}, "outputs": [], "source": [] } ], "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.10.9" } }, "nbformat": 4, "nbformat_minor": 5 }