Antenna Calibration

Inheritance diagram of hermespy.hardware_loop.physical_device.AntennaCalibration, hermespy.hardware_loop.physical_device.NoAntennaCalibration, hermespy.hardware_loop.calibration.antennas.ScalarAntennaCalibration
class AntennaCalibration(device=None, transmit_ports=None, receive_ports=None)[source]

Bases: Calibration

Base class for antenna array calibrations.

Args:

device:

The physical device to which this calibration belongs. If provided, the device will be configured to use this calibration.

transmit_ports:

List of transmit port indices considered for this calibration. If None, all available transmit ports are assumed.

receive_ports:

List of receive port indices considered for this calibration. If None, all available receive ports are assumed.

abstract correct_reception(reception)[source]

Correct a received signal block in-place.

Parameters:

reception (SignalBlock) – The signal block to be corrected.

Return type:

SignalBlock

Returns: The corrected signal block.

abstract correct_transmission(transmission)[source]

Correct a transmitted signal block in-place.

Parameters:

transmission (SignalBlock) – The signal block to be corrected.

Return type:

SignalBlock

Returns: The corrected signal block.

hdf_group_name = 'antenna_calibration'[source]

Group name of the calibration in the HDF save file.

class ScalarAntennaCalibration(transmit_correction_weights, receive_correction_weights, physical_device=None)[source]

Bases: AntennaCalibration

Scalar calibration for antenna arrays.

Initialize the scalar calibration.

Parameters:
  • transmit_correction_weights (ndarray) – Scalar weights applied to transmit ports of the antenna array.

  • receive_correction_weights (ndarray) – Scalar weights applied to receive ports of the antenna array.

  • physical_device (PhysicalDevice | None) – The physical device to which the calibration belongs.

classmethod Deserialize(process)[source]

Deserialize an object’s state.

Objects cannot be deserialized directly, instead a Factory must be instructed to carry out the deserialization process.

Parameters:

process (DeserializationProcess) – The current stage of the deserialization process. This object is generated by the Factory and provides an interface to deserialization methods supporting multiple backends.

Return type:

ScalarAntennaCalibration

Returns:

The deserialized object.

static Estimate(scenario, device, reference_device)[source]

Estimate a scalar calibration for the device using a reference device.

Parameters:
  • scenario (PhysicalScenario) – The scenario in which the calibration is performed.

  • device (PhysicalDevice) – The device to be calibrated.

  • reference_device (PhysicalDevice) – The reference device used for calibration.

Return type:

ScalarAntennaCalibration

Returns: The estimated scalar calibration.

correct_reception(reception)[source]

Correct a received signal block in-place.

Parameters:

reception (SignalBlock) – The signal block to be corrected.

Return type:

SignalBlock

Returns: The corrected signal block.

correct_transmission(transmission)[source]

Correct a transmitted signal block in-place.

Parameters:

transmission (SignalBlock) – The signal block to be corrected.

Return type:

SignalBlock

Returns: The corrected signal block.

serialize(process)[source]

Serialize this object’s state.

Objects cannot be serialized directly, instead a Factory must be instructed to carry out the serialization process.

Parameters:

process (SerializationProcess) – The current stage of the serialization process. This object is generated by the Factory and provides an interface to serialization methods supporting multiple backends.

Return type:

None

property receive_correction_weights: ndarray[source]

Scalar weights applied to receive ports of the antenna array.

property transmit_correction_weights: ndarray[source]

Scalar weights applied to transmit ports of the antenna array.

class NoAntennaCalibration(device=None, transmit_ports=None, receive_ports=None)[source]

Bases: AntennaCalibration

No calibration for antenna arrays.

Args:

device:

The physical device to which this calibration belongs. If provided, the device will be configured to use this calibration.

transmit_ports:

List of transmit port indices considered for this calibration. If None, all available transmit ports are assumed.

receive_ports:

List of receive port indices considered for this calibration. If None, all available receive ports are assumed.

classmethod Deserialize(process)[source]

Deserialize an object’s state.

Objects cannot be deserialized directly, instead a Factory must be instructed to carry out the deserialization process.

Parameters:

process (DeserializationProcess) – The current stage of the deserialization process. This object is generated by the Factory and provides an interface to deserialization methods supporting multiple backends.

Return type:

NoAntennaCalibration

Returns:

The deserialized object.

correct_reception(reception)[source]

Correct a received signal block in-place.

Parameters:

reception (SignalBlock) – The signal block to be corrected.

Returns: The corrected signal block.

correct_transmission(transmission)[source]

Correct a transmitted signal block in-place.

Parameters:

transmission (SignalBlock) – The signal block to be corrected.

Returns: The corrected signal block.

serialize(process)[source]

Serialize this object’s state.

Objects cannot be serialized directly, instead a Factory must be instructed to carry out the serialization process.

Parameters:

process (SerializationProcess) – The current stage of the serialization process. This object is generated by the Factory and provides an interface to serialization methods supporting multiple backends.

Return type:

None