Scenarios API¶
Scenario classes for defining operating conditions.
Overview¶
from phased_array_systems.scenarios import (
ScenarioBase,
CommsLinkScenario,
RadarDetectionScenario,
)
Classes¶
ScenarioBase
¶
Bases: BaseModel
Base class for all scenario types.
All scenarios must have a frequency, which is used to compute wavelength and other frequency-dependent parameters.
| ATTRIBUTE | DESCRIPTION |
|---|---|
freq_hz |
Operating frequency in Hz
TYPE:
|
name |
Optional name for the scenario
TYPE:
|
CommsLinkScenario
¶
Bases: ScenarioBase
Scenario for communications link budget analysis.
Defines the parameters needed for a point-to-point or satellite communications link budget calculation.
| ATTRIBUTE | DESCRIPTION |
|---|---|
freq_hz |
Operating frequency (Hz)
TYPE:
|
bandwidth_hz |
Signal bandwidth (Hz)
TYPE:
|
range_m |
Link range/distance (meters)
TYPE:
|
required_snr_db |
Required SNR for demodulation (dB)
TYPE:
|
scan_angle_deg |
Beam scan angle from boresight (degrees)
TYPE:
|
rx_antenna_gain_db |
Receive antenna gain (dB), None for isotropic
TYPE:
|
rx_noise_temp_k |
Receive system noise temperature (K)
TYPE:
|
path_loss_model |
Propagation model to use
TYPE:
|
atmospheric_loss_db |
Additional atmospheric losses (dB)
TYPE:
|
rain_loss_db |
Rain fade margin (dB)
TYPE:
|
polarization_loss_db |
Polarization mismatch loss (dB)
TYPE:
|
total_extra_loss_db
property
¶
Total additional losses beyond free space path loss.
RadarDetectionScenario
¶
Bases: ScenarioBase
Scenario for radar detection analysis.
Defines the operating conditions for monostatic radar detection, including target characteristics, detection requirements, and pulse integration parameters.
| ATTRIBUTE | DESCRIPTION |
|---|---|
freq_hz |
Operating frequency (Hz)
TYPE:
|
bandwidth_hz |
Signal bandwidth (Hz)
TYPE:
|
range_m |
Target range (meters)
TYPE:
|
target_rcs_dbsm |
Target radar cross section (dBsm)
TYPE:
|
rx_noise_temp_k |
Receiver noise temperature (K)
TYPE:
|
pfa |
Probability of false alarm
TYPE:
|
pd_required |
Required probability of detection
TYPE:
|
n_pulses |
Number of pulses integrated
TYPE:
|
scan_angle_deg |
Beam scan angle from boresight (degrees)
TYPE:
|
integration_type |
Coherent or non-coherent integration
TYPE:
|
Usage Examples¶
Communications Scenario¶
from phased_array_systems.scenarios import CommsLinkScenario
# Point-to-point link
scenario = CommsLinkScenario(
freq_hz=10e9,
bandwidth_hz=10e6,
range_m=100e3,
required_snr_db=10.0,
scan_angle_deg=0.0,
rx_antenna_gain_db=30.0,
rx_noise_temp_k=290.0,
)
print(f"Wavelength: {scenario.wavelength_m * 100:.2f} cm")
print(f"Total extra loss: {scenario.total_extra_loss_db:.1f} dB")
Radar Scenario¶
from phased_array_systems.scenarios import RadarDetectionScenario
scenario = RadarDetectionScenario(
freq_hz=10e9,
target_rcs_m2=1.0,
range_m=100e3,
required_pd=0.9,
pfa=1e-6,
pulse_width_s=10e-6,
prf_hz=1000,
n_pulses=10,
integration_type="coherent",
swerling_model=1,
)
Satellite Link¶
geo_scenario = CommsLinkScenario(
freq_hz=12e9,
bandwidth_hz=36e6,
range_m=36000e3,
required_snr_db=8.0,
rx_antenna_gain_db=45.0,
rx_noise_temp_k=80.0,
atmospheric_loss_db=0.3,
rain_loss_db=5.0,
)