Oscillator Phase Noise

Inheritance diagram of hermespy.simulation.rf_chain.phase_noise.OscillatorPhaseNoise

Oscillator phase noise model according to Khanzadi et al.[1], modeling the phase noise of an oscillator as a function of the distance to the carrier frequency \(\Delta f\) in frequency domain. 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 by Khanzadi et al.[1] as

\[\begin{split}K_0 &= -110~\mathrm{dB} = 10^{-110/10} \\ K_2 &= 10 \\ K_3 &= 10^4 \quad \text{.} \\\end{split}\]
class OscillatorPhaseNoise(K0=1e-11, K2=10, K3=10000, seed=None)[source]

Bases: PhaseNoise, Serializable

Oscillator phase noise model defined in frequency domain.

Refer to Khanzadi et al.[1] for addtional information.

Parameters:
  • K0 (float) – White noise floor power level, denoted as \(K_0\) [1].

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

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

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.