Phase Noise Modeling#

class NoPhaseNoise(mother_node=None, seed=None)[source]#

Bases: PhaseNoise, Serializable

No phase noise considered within the device model.

Parameters:
  • mother_node (RandomNode, optional) – Mother node of this random node. By default, nodes are considered to be roots.

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

add_noise(signal)[source]#

Add phase noise to a signal model.

Parameters:

signal (Signal) – The signal model to which phase noise is to be added.

Return type:

Signal

Returns: Noise signal model.

yaml_tag: Optional[str] = 'NoPhaseNoise'#

YAML serialization tag

class OscillatorPhaseNoise(K0=1e-11, K2=10, K3=10000, seed=None)[source]#

Bases: PhaseNoise, Serializable

Oscillator phase noise model according to [KKP+14].

Phase noise is modeled as a superposition of three noise power spectral densities (PSDs)

\[S_{\phi}(\Delta f) = S_{\phi_0}(\Delta f) + S_{\phi_2}(\Delta f) + S_{\varphi_3}(\Delta f)\]

where

\[S_{\phi_0}(\Delta f) = K_0\]

denotes the white noise floor PSD of power \(K_0\),

\[S_{\phi_2}(\Delta f) = \frac{K_2}{f^2}\]

denotes the flicker noise PSD of power \(K_2\) following a square law decay with distance to the carrier frequency \(\Delta f\) and

\[S_{\phi_3}(\Delta f) = \frac{K_3}{f^3}\]

denotes the flicker noise PSD of power \(K_3\) following a cubic law decay with distance to the carrier frequency \(\Delta f\).

A starting point for the parameter values is given in [KKP+14] as

\[\begin{split}K_0 &= -110~\mathrm{dB} = 10^{-110/10} \\ K_2 &= 10 \\ K_3 &= 10^4 \quad \text{.} \\\end{split}\]
Parameters:
  • K0 (float) – White noise floor power level, denoted as \(K_0\) in [KKP+14].

  • K2 (float) – Power level of the 2nd order flicker noise component, denoted as \(K_2\) in [KKP+14].

  • K3 (float) – Power level of the 3rd order flicker noise component, denoted as \(K_3\) in [KKP+14].

add_noise(signal)[source]#

Add phase noise to a signal model.

Parameters:

signal (Signal) – The signal model to which phase noise is to be added.

Return type:

Signal

Returns: Noise signal model.

property K0: float#

White noise floor power level, denoted as \(K_0\).

Raises:

ValueError – If the value is negative.

property K2: float#

Power level of the 2nd order flicker noise component, denoted as \(K_2\).

Raises:

ValueError – If the value is negative.

property K3: float#

Power level of the 3rd order flicker noise component, denoted as \(K_3\).

Raises:

ValueError – If the value is negative.

class PhaseNoise(mother_node=None, seed=None)[source]#

Bases: RandomNode, ABC

Base class of phase noise models.

Parameters:
  • mother_node (RandomNode, optional) – Mother node of this random node. By default, nodes are considered to be roots.

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

abstract add_noise(signal)[source]#

Add phase noise to a signal model.

Parameters:

signal (Signal) – The signal model to which phase noise is to be added.

Return type:

Signal

Returns: Noise signal model.