-
Notifications
You must be signed in to change notification settings - Fork 1
Direct Path Handling for Dual Objects
This logic operates within the solveReDirect function, which calculates the direct signal path characteristics (power, delay, phase, Doppler) between a Transmitter (Tx) and a Receiver (Rx).
The specific behavior implemented is: If either the Transmitter object or the Receiver object involved in the direct path calculation is identified as a "dual" object (meaning it represents a reflection point created by the multipath model, rather than a physical entity), the calculated power for that specific direct path (results.power) is explicitly set to zero.
This prevents the simulation from incorrectly calculating a direct signal propagation path between:
- A physical entity and a reflected image.
- Two reflected images.
The energy associated with the actual reflected path (e.g., Tx -> Target -> Reflected Rx image) is handled separately through the bistatic radar equation simulation logic (Simulation of Reflected Paths via Duals) which uses these dual objects' geometric properties.
- Assumes the
Radar::getMultipathDual()method accurately identifies whether a given Transmitter or Receiver instance is a "dual" object created during multipath initialization. - Assumes that
solveReDirectis correctly called for all relevant Tx-Rx pairs, including those potentially involving dual objects. - Assumes setting the
results.powerfield to zero is the correct mechanism within the FERS framework to effectively remove this specific path's contribution from subsequent calculations or outputs. - Assumes that the intended reflected path energy is correctly calculated elsewhere in the simulation (primarily via
solveReinteractions involving dual objects).
- Binary Suppression: The suppression is absolute (power set to zero). It doesn't model any potential, subtle second-order coupling effects that might theoretically exist, treating the distinction between real and dual objects as perfect.
-
Scope Specificity: This logic only affects the direct path calculation (
solveReDirect). It does not interfere with other simulation calculations involving dual objects (like target reflections using dual geometry), which is the intended behavior. -
Dependency on Flag: The correctness of this logic relies entirely on the
_multipath_dualflag (accessed viagetMultipathDual()) being set correctly during the multipath setup phase (Multipath Image Object Generation, Multipath Dual Object Properties).
-
Function:
sim_threading.cpp::solveReDirect(Location of the core logic) -
Classes:
Transmitter,Receiver(specifically theirgetMultipathDual()status) -
Wiki Pages:
- Multipath Model (Overall context)
- Multipath Image Object Generation (Creation of dual objects)
- Multipath Dual Object Properties (Setting the dual flag)
- Direct Path (Tx-Rx) Simulation (The calculation being modified)
- Simulation of Reflected Paths via Duals (Complementary logic for reflected paths)
- Needs Verification: Yes, the behavior of this specific logic branch should be confirmed.
-
Key Areas for Validation:
- Verify that the direct path power output from
solveReDirectis exactly zero when either the Tx or the Rx (or both) are dual objects. - Verify that the direct path power output is non-zero (assuming line-of-sight and no other disabling flags) when neither the Tx nor the Rx is a dual object.
- Confirm that this suppression does not negatively impact the calculation of intended reflected path energies involving dual objects in
solveRe.
- Verify that the direct path power output from
- Priority: Medium (Important for correct multipath simulation results, but potentially less complex to validate than the geometric reflection accuracy itself).