improve jitter generation
wave_gen: change to gussian jitter distribution wrapper: reduce gtx_jitter to meet real world performance docs: remove noise limitation
This commit is contained in:
parent
734e87eede
commit
f58ab13e9b
@ -54,4 +54,3 @@ nix develop
|
|||||||
</details><br>
|
</details><br>
|
||||||
|
|
||||||
## Limitation
|
## Limitation
|
||||||
1. The white noise is used to simulate jitter which may result in higher phase noise
|
|
||||||
|
@ -3,8 +3,9 @@ import numba as nb
|
|||||||
from numba import njit
|
from numba import njit
|
||||||
|
|
||||||
|
|
||||||
def white_noise(low, high, size, seed=None):
|
|
||||||
return np.random.default_rng(seed).uniform(low, high, size)
|
def gussian_jitter(RMS_jitter, size, seed=None):
|
||||||
|
return np.random.default_rng(seed).normal(0, RMS_jitter/2, size)
|
||||||
|
|
||||||
|
|
||||||
@njit(fastmath=True)
|
@njit(fastmath=True)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from wrpll_simulation.sim import simulation_jit
|
from wrpll_simulation.sim import simulation_jit
|
||||||
from wrpll_simulation.wave_gen import white_noise
|
from wrpll_simulation.wave_gen import gussian_jitter
|
||||||
|
|
||||||
|
|
||||||
class WRPLL_simulator():
|
class WRPLL_simulator():
|
||||||
@ -17,7 +17,7 @@ class WRPLL_simulator():
|
|||||||
start_up_delay,
|
start_up_delay,
|
||||||
i2c_comm_delay=85.6e-6,
|
i2c_comm_delay=85.6e-6,
|
||||||
dcxo_settling_delay=100e-6,
|
dcxo_settling_delay=100e-6,
|
||||||
gtx_jitter=370e-15,
|
gtx_jitter=200e-15,
|
||||||
dcxo_freq=125_000_000,
|
dcxo_freq=125_000_000,
|
||||||
dcxo_jitter=95e-15,
|
dcxo_jitter=95e-15,
|
||||||
freq_acquisition_error=100,
|
freq_acquisition_error=100,
|
||||||
@ -38,11 +38,11 @@ class WRPLL_simulator():
|
|||||||
|
|
||||||
# init condition
|
# init condition
|
||||||
self.gtx_freq = gtx_freq
|
self.gtx_freq = gtx_freq
|
||||||
self.gtx_jitter = white_noise(-gtx_jitter, gtx_jitter, len(self.time), seed)
|
self.gtx_jitter = gussian_jitter(gtx_jitter, len(self.time), seed)
|
||||||
|
|
||||||
self.dcxo_freq = dcxo_freq
|
self.dcxo_freq = dcxo_freq
|
||||||
self.h_jitter = white_noise(-dcxo_jitter, dcxo_jitter, len(self.time), seed)
|
self.h_jitter = gussian_jitter(dcxo_jitter, len(self.time), seed)
|
||||||
self.m_jitter = white_noise(-dcxo_jitter, dcxo_jitter, len(self.time), seed)
|
self.m_jitter = gussian_jitter(dcxo_jitter, len(self.time), seed)
|
||||||
self.N = N
|
self.N = N
|
||||||
self.helper_init_freq = helper_init_freq
|
self.helper_init_freq = helper_init_freq
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user