Sidelobe Level¶

The sidelove evaluator measures the directivity of a given signal pattern by comparing the power of the assumed main lobe towards a desired direction with the overall emitted power sampled at a set of candidate directions. The directivity
approaches \(1\) when the main lobe is very narrow and the sidelobes are very low and zero when the main lobe is very wide and the sidelobes are very high.
1# Configure a static conventional beamformer for the transmitting device
2# with a beam focus at the receiving device.
3desired_focus = DeviceFocus(rx_device)
4tx_device.transmit_coding[0] = ConventionalBeamformer()
5tx_device.transmit_coding[0].transmit_focus = [desired_focus]
6
7# Configure a communication down-link with a transmitting modem at the
8# transmitting device and a receiving modem at the receiving device.
9link = SimplexLink(waveform=RootRaisedCosineWaveform())
10link.connect(tx_device, rx_device)
11
12# Evaluate the beamforming main lobe level at the transmitting device
13simulation.add_evaluator(SidelobeEvaluator(
14 tx_device, AntennaMode.TX, desired_focus
15))
- class SidelobeEvaluator(device, mode, desired_focus, codebook=None, plot_surface=True)[source]¶
Bases:
Evaluator,SerializableEvaluate a simulated device’s sidelobe power.
- Parameters:
device (
SimulatedDevice) – The device to evaluate.mode (
AntennaMode) – The duplex mode to evaluate. IfTXthen only the device’s tranmsit beamformer is evaluated, ifRXthen only the device’s receive beamformer is evaluated.desired_focus (
BeamFocus) – The desired beamforming direction to evaluate against the codebook.codebook (
ndarray|None) – Beamforming directions to evaluate against the desired beamforming direction. IfNone, the codebook is generated by sampling the device’s positive z half-space with a resolution of twice the number of antennas.
- classmethod Deserialize(process)[source]¶
Deserialize an object’s state.
Objects cannot be deserialized directly, instead a
Factorymust be instructed to carry out the deserialization process.- Parameters:
process (
DeserializationProcess) – The current stage of the deserialization process. This object is generated by theFactoryand provides an interface to deserialization methods supporting multiple backends.- Return type:
- Returns:
The deserialized object.
- evaluate()[source]¶
Evaluate the state of an investigated object.
Implements the process of extracting an arbitrary performance indicator, represented by the returned
Artifact\(X_m\).Returns: Artifact \(X_m\) resulting from the evaluation.
- Return type:
- initialize_result(grid)[source]¶
Initialize the respective result object for this evaluator.
- Parameters:
grid (
Sequence[GridDimensionInfo]) – The parameter grid over which the simulation iterates.- Return type:
Returns: The initialized evaluation result.
- serialize(process)[source]¶
Serialize this object’s state.
Objects cannot be serialized directly, instead a
Factorymust be instructed to carry out the serialization process.- Parameters:
process (
SerializationProcess) – The current stage of the serialization process. This object is generated by theFactoryand provides an interface to serialization methods supporting multiple backends.- Return type:
- property abbreviation: str[source]¶
Short string representation of this evaluator.
Used as a label for console output and plot axes annotations.
- property mode: AntennaMode[source]¶
The duplex mode to evaluate.
- class SidelobeEvaluation(powers, focus_power)[source]¶
Bases:
Evaluation[PlotVisualization]Evaluation of the side lobe power.
- Parameters: