Add detail of radar equation for marine a scope

This commit is contained in:
2026-05-15 09:03:13 -07:00
parent 11b2ef99b0
commit 204cbc332b

View File

@@ -65,6 +65,8 @@ is compiled, which in this case would be the build subdirectory of the project
directory, you would type ./radar_simulator, or use a full path name
of {PROJECT_DIR}/build/radar_simulator.
In the CMakeLists.txt, plese use the name radar_simulator for the add_executable call.
There will be three main areas of the screen. On the right hand side will be the radar
scope.
@@ -259,6 +261,7 @@ Individual scope informations
2-1 Chain Home A Scope
==========================================================
Downward PIP and mixing calibration pips with target pips and noise grass
Very important. The Chain Home A Scope is upside down. That is, the baseline
@@ -390,7 +393,8 @@ Individual scope informations
creates a curved waveform; not just a line.
A photograph for this display show no graticule at all. Only range pips formed by an oscillator.
Those oscillator pips are fixed. Range settings do not affect them.
Those oscillator pips are fixed. Range settings do not affect them. There is a baseline at the
bottom, etched in glass, that is side illuminated by incandescent lamps.
Like Chain Home, the Marine A-scope sums noise, calibration pips, and target echoes into a
single signal before the deflection plates — this is a hardware reality of any CRT A-scope.
@@ -411,6 +415,45 @@ Individual scope informations
3. 6.0 miles; marker pips every 1.0 miles
4. 12.0 miles; marker pips every 2.0 miles
RADAR EQUATION FOR MARINE A SCOPE
Here are the fixed values (those values that can be declared as
uniforms) for the marine a scope radar. I suggest these for the uniform names
peak_power = 500 KW
wavelength = 10 centimeters
antenna_gain = 30 db
pulse_rep_frequency = 500 hz
horizontal_beamwidth = 2.5 degrees
Now we have some stuff for the settings file:
SYSTEM_TEMPERATURE ($T_s$): Usually 290K; used to calculate the noise floor
NOISE_FIGURE ($F$): A value in dB that determines how much "grass" your
specific receiver adds to the signal.
BOLTZMANN_CONSTANT ($k$): $1.38 \times 10^{-23}$, essential for the thermal
noise part of your simulation.
Now, here is a snippet of pseudo code:
/* Uniform Variables provided by CPU */
uniform float u_AntennaBearing; // Current rotation of knob/motor
uniform float horizontal_beamwidth; // Fixed for the scope (e.g., 2.5 degrees)
/* Logic for each Target (calculated on CPU or in Geometry Shader) */
float angle_diff = abs(target.bearing - u_AntennaBearing);
// Handle the 359 to 0 degree wrap-around
if (angle_diff > 180.0) angle_diff = 360.0 - angle_diff;
// BeamFactor: 1.0 at center, drops to 0.5 at horizontal_beamwidth/2
// This creates the "fade in / fade out" effect as you turn the knob
float beam_factor = exp(-2.77 * pow(angle_diff / horizontal_beamwidth, 2.0));
// Final received power Pr
float Pr = (peak_power * pow(antenna_gain, 2) * pow(wavelength, 2) * target.rcs * beam_factor) /
(pow(4.0 * PI, 3.0) * pow(target.range, 4.0));
2. PPI Scope
PPI stands for Plan Position Indicator