pytwinnet.physics¶
- class pytwinnet.physics.Environment(dimensions_m=(100.0, 100.0, 30.0), obstacles=<factory>)[source]¶
Bases:
object
- class pytwinnet.physics.FadedModel(base, kind='rayleigh', K_dB=6.0, seed=0, epoch=None)[source]¶
Bases:
PropagationModelWraps a base model and adds small-scale fading (Rayleigh or Rician) as an extra dB term: PL_faded = PL + fading_loss_db where fading_loss_db = -10*log10(|h|^2). Fading is deterministic per (tx, rx, epoch). Change ‘epoch’ to re-sample.
- Parameters:
base (PropagationModel)
kind (str)
K_dB (float)
seed (int)
epoch (int | None)
-
base:
PropagationModel¶
- calculate_path_loss(tx, rx, environment)[source]¶
- Return type:
- Parameters:
tx (WirelessNode)
rx (WirelessNode)
environment (Environment)
- class pytwinnet.physics.FreeSpacePathLoss[source]¶
Bases:
PropagationModel- calculate_path_loss(tx, rx, environment)[source]¶
- Return type:
- Parameters:
tx (WirelessNode)
rx (WirelessNode)
environment (Environment)
- class pytwinnet.physics.PropagationModel[source]¶
Bases:
ABC- abstractmethod calculate_path_loss(tx, rx, environment)[source]¶
- Return type:
- Parameters:
tx (WirelessNode)
rx (WirelessNode)
environment (Environment)
- class pytwinnet.physics.RISAugmentedModel(base, ris, extra_loss_db=3.0)[source]¶
Bases:
PropagationModelWrap a base PropagationModel and return the min of: - direct path loss - two-hop path loss via RIS: PL(tx->RIS) + PL(RIS->rx) - RIS_gain + extra_loss
- Parameters:
base (PropagationModel)
ris (RISPanel)
extra_loss_db (float)
- calculate_path_loss(tx, rx, environment)[source]¶
- Return type:
- Parameters:
tx (WirelessNode)
rx (WirelessNode)
environment (Environment)
- class pytwinnet.physics.RISBeamModel(base, ris, extra_loss_db=3.0)[source]¶
Bases:
PropagationModelWraps a base PropagationModel. For a configured target UE (by id), the RIS contributes mainlobe gain on the two-hop path; others see sidelobe gain. Effective path loss = min( direct, (tx->RIS + RIS->rx - gain + extra_loss_db) ).
- Parameters:
base (PropagationModel)
ris (SmartRISPanel)
extra_loss_db (float)
- calculate_path_loss(tx, rx, environment)[source]¶
- Return type:
- Parameters:
tx (WirelessNode)
rx (WirelessNode)
environment (Environment)
- class pytwinnet.physics.ShadowedModel(base, sigma_db=6.0, seed=0, epoch=None)[source]¶
Bases:
PropagationModelWraps a base propagation model and adds log-normal shadowing (Gaussian in dB). Shadowing is deterministic per (tx, rx, epoch) for reproducibility. Change ‘epoch’ (int) to refresh the samples (e.g., per-drop or per-time-slot).
- Parameters:
base (PropagationModel)
sigma_db (float)
seed (int)
epoch (int | None)
-
base:
PropagationModel¶
- calculate_path_loss(tx, rx, environment)[source]¶
- Return type:
- Parameters:
tx (WirelessNode)
rx (WirelessNode)
environment (Environment)
- class pytwinnet.physics.SmartRISPanel(position, element_count=64, mainlobe_gain_db=None, sidelobe_gain_db=None)[source]¶
Bases:
object- Toy RIS with a steerable mainlobe. Approximates array gain:
mainlobe_gain_db ~= 20*log10(N) sidelobe_gain_db ~= mainlobe - 13 dB (typical)
- Parameters:
Modules
Signal utilities for examples: noise power, SINR, Shannon capacity. |