Receiver#

class Receiver(seed=None, reference=None, selected_receive_ports=None, *args, **kwargs)[source]#

Bases: RandomNode, MixingOperator[ReceiverSlot], Generic[ReceptionType]

Operator receiving from a device.

Parameters:
  • seed (int, optional) – Random seed used to initialize the pseudo-random number generator.

  • reference (Device, optional) – Reference device to which the channel shall be estimated.

  • selected_receive_ports (Sequence[int] | None) – Indices of antenna ports selected for reception from the operated Device's antenna array. If not specified, all available antenna ports will be considered.

  • *args – Operator base class initialization parameters.

  • **kwargs – Operator base class initialization parameters.

cache_reception(signal)[source]#

Cache recent reception at this receiver.

Parameters:
  • signal (Signal | None) – Signal model to be cached for the next reception.

  • channel_realization (ChannelRealizationBase | None) – Recently received channel state.

Return type:

None

noise_power(strength, snr_type)[source]#

Compute noise power for a given signal strength.

Internally calls _noise_power() for some SNRTypes.

Parameters:
  • strength (float) – Signal strength indicator. The unit depends on the snr_type.

  • snr_type (SNRType) – The considered signal to noise ratio type.

Raises:

ValueError – If the receiver does not support the required snr type.

Return type:

float

receive(signal=None, cache=True)[source]#

Process a received signal by the receiver.

Wrapper around the abstract _receive method.

Parameters:
  • signal (Signal, optional) – Signal model to be processed.

  • cache (bool, optional) – Cache the received information

Return type:

TypeVar(ReceptionType, bound= Reception)

Returns: Information rceived by this operator.

Raises:
  • RuntimeError – If signal model was not provided and no signal is cached.

  • ValueError – If the number of signal streams does not match the number of receive ports.

property device: Device | None#

Device this object is assigned to.

None if this object is currently considered floating / unassigned.

property num_receive_antennas: int#

Number of considered receiving antennas.

property num_receive_ports: int#

Number of considered receiving ports.

property reception: ReceptionType | None#

Information inferred from the most recent reception.

Updated during the receive routine. None if the cache has been cleared or receive has not been called yet.

property reference: Device | None#

Reference transmitter for this receiver.

Returns:

A handle to the referenced device. None if the device was not specified.

property selected_receive_ports: Sequence[int] | None#

Indices of antenna ports selected for reception from the operated Device's antenna array.

If None, all available antenna ports will be considered.

Raises:

ValueError – If the selected ports don’t match the configured device’s receive antenna array configuration.

property signal: Signal | None#

Cached signal model to be received.

Signal model assumed by receive() if no signal model is provided. Updated with cache_reception(). None if cache has been cleared or receive() has not been called yet.