Phase Noise Modeling#
- class PhaseNoise(mother_node=None, seed=None)#
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.
- class NoPhaseNoise(mother_node=None, seed=None)#
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.
- yaml_tag: Optional[str] = 'NoPhaseNoise'#
YAML serialization tag
- class OscillatorPhaseNoise(K0=1e-11, K2=10, K3=10000, seed=None)#
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:
- yaml_tag: Optional[str] = 'OscillatorPhaseNoise'#
YAML serialization tag.
- 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.