Add detail of radar equation for marine a scope
This commit is contained in:
45
CLAUDE.md
45
CLAUDE.md
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user