Hardware Radio Frequency Chain Modeling#

Isolation model (to be implemented): Kiayani et al.[1]

class RfChain(phase_offset=None, amplitude_imbalance=None, adc=None)[source]#

Bases: Serializable

Implements an RF chain model.

Only PA is modelled.

add_iq_imbalance(input_signal)[source]#

Adds Phase offset and amplitude error to input signal.

Notation taken from https://en.wikipedia.org/wiki/IQ_imbalance.

Parameters:

input_signal (np.ndarray) – Signal to be deteriorated as a matrix in shape #no_antennas x #no_samples. #no_antennas depends if on receiver or transmitter side.

Returns:

Deteriorated signal with the same shape as input_signal.

Return type:

np.ndarray

receive(input_signal)[source]#

Returns the distorted version of signal in “input_signal”.

According to reception impairments.

Return type:

Signal

transmit(input_signal)[source]#

Returns the distorted version of signal in “input_signal”.

According to transmission impairments.

Return type:

Signal

property adc: AnalogDigitalConverter#

The analog to digital converter at the end of the RF receive chain.

property amplitude_imbalance: float#

I/Q amplitude imbalance.

Raises:

ValueError – If the imbalance is less than -1 or more than one.

property phase_noise: PhaseNoise#

Phase Noise model configuration.

Returns: Handle to the pase noise model.

property phase_offset: float#

I/Q phase offset.

Returns: Phase offset in radians.

property power_amplifier: PowerAmplifier#

Access the PowerAmplifier of the rf chain.

Returns:

A handle to the PowerAmplifier.