Sensing
metasurface_py.sensing
Sensing models: radar, localization, and ISAC objectives.
JointCommsSensingObjective
dataclass
Weighted combination of comms and sensing objectives.
objective = alpha * comms_obj + (1-alpha) * sensing_obj
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
comms_objective
|
Any
|
Communication objective callable. |
required |
sensing_objective
|
Any
|
Sensing objective callable. |
required |
alpha
|
float
|
Weight for comms (0 to 1). Default 0.5. |
0.5
|
__call__(state, surface, freq, **kwargs)
Evaluate weighted joint objective.
MaxDetectionSNRObjective
dataclass
Maximize radar detection SNR for a point target.
Returns negative SNR (dB) for minimization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
target_pos
|
Position3D
|
Target position. |
required |
tx_power
|
float
|
Transmit power [W]. |
1.0
|
noise_power
|
float
|
Noise power [W]. |
1e-12
|
target_rcs
|
float
|
Target RCS [m^2]. |
1.0
|
__call__(state, surface, freq, **kwargs)
Evaluate: returns negative detection SNR in dB.
bistatic_rcs(surface, state, freq, theta_inc, phi_inc, angles_obs)
Compute bistatic RCS pattern.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
surface
|
Metasurface
|
Metasurface object. |
required |
state
|
SurfaceState
|
Surface configuration. |
required |
freq
|
float
|
Frequency [Hz]. |
required |
theta_inc
|
float
|
Incident polar angle [rad]. |
required |
phi_inc
|
float
|
Incident azimuthal angle [rad]. |
required |
angles_obs
|
AngleGrid
|
Observation angles. |
required |
Returns:
| Type | Description |
|---|---|
DataArray
|
Bistatic RCS as xr.DataArray [m^2]. |
crlb_position(surface, state, target_pos, freq, snr=20.0)
Compute Cramer-Rao Lower Bound on position estimation.
CRLB = diag(J^{-1}) gives minimum variance for each position coordinate.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
surface
|
Metasurface
|
Metasurface object. |
required |
state
|
SurfaceState
|
Surface configuration. |
required |
target_pos
|
Position3D
|
Target position. |
required |
freq
|
float
|
Frequency [Hz]. |
required |
snr
|
float
|
Signal-to-noise ratio (linear). |
20.0
|
Returns:
| Type | Description |
|---|---|
NDArray[floating[Any]]
|
(3,) array of CRLB values [m^2] for (x, y, z). |
detection_snr(surface, state, target_pos, freq, tx_power=1.0, noise_power=1e-12, target_rcs=1.0)
Compute radar detection SNR for a point target.
Uses simplified radar equation: SNR = Pt * G^2 * lambda^2 * sigma / ((4*pi)^3 * R^4 * Pn)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
surface
|
Metasurface
|
Metasurface acting as radar aperture. |
required |
state
|
SurfaceState
|
Surface configuration. |
required |
target_pos
|
Position3D
|
Target position. |
required |
freq
|
float
|
Frequency [Hz]. |
required |
tx_power
|
float
|
Transmit power [W]. |
1.0
|
noise_power
|
float
|
Noise power [W]. |
1e-12
|
target_rcs
|
float
|
Target radar cross-section [m^2]. |
1.0
|
Returns:
| Type | Description |
|---|---|
float
|
Detection SNR (linear). |
fisher_information_matrix(surface, state, target_pos, freq, snr=20.0)
Compute Fisher Information Matrix for position estimation.
Uses a simplified far-field signal model where the FIM depends on the array geometry and element responses.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
surface
|
Metasurface
|
Metasurface object. |
required |
state
|
SurfaceState
|
Surface configuration. |
required |
target_pos
|
Position3D
|
Target position to localize. |
required |
freq
|
float
|
Frequency [Hz]. |
required |
snr
|
float
|
Signal-to-noise ratio (linear). |
20.0
|
Returns:
| Type | Description |
|---|---|
NDArray[floating[Any]]
|
3x3 Fisher Information Matrix. |
monostatic_rcs(surface, state, freq, angles)
Compute monostatic RCS pattern.
For each observation direction, the RCS is proportional to |AF(theta, phi)|^2 where the illumination and observation directions are the same.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
surface
|
Metasurface
|
Metasurface object. |
required |
state
|
SurfaceState
|
Surface configuration. |
required |
freq
|
float
|
Frequency [Hz]. |
required |
angles
|
AngleGrid
|
Observation angles. |
required |
Returns:
| Type | Description |
|---|---|
DataArray
|
RCS pattern as xr.DataArray [m^2], dims (theta, phi). |