Skip to content

Reflection Factor Application

David Young edited this page Apr 30, 2025 · 1 revision

Description

The solveRe function calculates the power received from a target reflection path (Transmitter -> Target -> Receiver). Within this function, the code checks if either the Transmitter object or the Receiver object involved in this specific interaction path is a "dual" object. A dual object represents a virtual radar positioned based on the multipath reflection geometry.

If either the transmitter or the receiver is identified as a dual object, its stored _multipath_factor value is retrieved. This factor represents the multiplicative power loss assumed to occur during the reflection off the multipath surface (e.g., a factor of 0.7 means 70% of the power is retained after reflection). This factor is then multiplied into the overall power calculation for that specific Transmitter -> Target -> Receiver path. This mechanism aims to account for the energy lost during the multipath reflection event.

Assumptions

  • Assumes that the _multipath_factor stored on the dual Transmitter or Receiver object correctly represents the scalar power loss factor associated with a single bounce off the defined multipath surface.
  • Assumes that applying this factor multiplicatively to the calculated power within the solveRe function is the correct method to model this reflection loss phenomenon.

Limitations

  • Potential Double Application: If both the transmitter and the receiver involved in a target interaction path are dual objects (simulating a path like Tx -> Surface Reflection -> Target -> Surface Reflection -> Rx, often represented computationally as DualTx -> Target -> DualRx for a single physical bounce), the current logic appears to apply the _multipath_factor twice: once because the transmitter is a dual, and again because the receiver is a dual. This would incorrectly model the power loss for a single-bounce reflection path, applying the reflection loss factor squared.

Related Components

  • sim_threading.cpp::solveRe function (specifically the code sections checking trans->getMultipathDual() and recv->getMultipathDual()).
  • Transmitter class (stores _multipath_factor, has getMultipathDual()).
  • Receiver class (stores _multipath_factor, has getMultipathDual()).
  • Multipath Dual Object Properties (Describes how the factor is set on dual objects).
  • Simulation of Reflected Paths via Duals (Provides context for interactions involving dual objects).
  • Multipath Model (Overall multipath simulation approach).

Validation Status

  • Needs Verification: Yes. The potential double application of the reflection factor needs explicit confirmation and, if present, correction.
  • Key Areas for Validation:
    • Simulate a scenario with only one dual object involved (e.g., RealTx -> Target -> DualRx) and verify the _multipath_factor is applied exactly once to the power calculation compared to the non-multipath path (RealTx -> Target -> RealRx).
    • Simulate a scenario involving two dual objects (DualTx -> Target -> DualRx) and verify whether the _multipath_factor is applied once (correctly) or twice (incorrectly) compared to the non-multipath path. Compare results against the expected theoretical power reduction for a single reflection.
  • Priority: High (Potential simulation physics correctness issue).

Clone this wiki locally