Hardware Radio Frequency Chain Modeling#

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

class RfChain(phase_offset=None, amplitude_imbalance=None)#

Bases: Serializable

Implements an RF chain model.

Only PA is modelled.

yaml_tag: Optional[str] = 'RfChain'#

YAML serialization tag.

property amplitude_imbalance: float#

I/Q amplitude imbalance.

Raises:

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

property phase_offset: float#

I/Q phase offset.

Returns: Phase offset in radians.

transmit(input_signal)#

Returns the distorted version of signal in “input_signal”.

According to transmission impairments.

Return type:

Signal

add_iq_imbalance(input_signal)#

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)#

Returns the distorted version of signal in “input_signal”.

According to reception impairments.

Return type:

Signal

property power_amplifier: PowerAmplifier#

Access the PowerAmplifier of the rf chain.

Returns:

A handle to the PowerAmplifier.

property phase_noise: PhaseNoise#

Phase Noise model configuration.

Returns: Handle to the pase noise model.