-
Notifications
You must be signed in to change notification settings - Fork 1
Reflection Factor Application
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.
- Assumes that the
_multipath_factorstored on the dualTransmitterorReceiverobject 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
solveRefunction is the correct method to model this reflection loss phenomenon.
-
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_factortwice: 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.
-
sim_threading.cpp::solveRefunction (specifically the code sections checkingtrans->getMultipathDual()andrecv->getMultipathDual()). -
Transmitterclass (stores_multipath_factor, hasgetMultipathDual()). -
Receiverclass (stores_multipath_factor, hasgetMultipathDual()). - 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).
- 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_factoris 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_factoris applied once (correctly) or twice (incorrectly) compared to the non-multipath path. Compare results against the expected theoretical power reduction for a single reflection.
- Simulate a scenario with only one dual object involved (e.g., RealTx -> Target -> DualRx) and verify the
- Priority: High (Potential simulation physics correctness issue).