Skip to content
Snippets Groups Projects
Commit 51d19318 authored by Kohei Yamamoto's avatar Kohei Yamamoto Committed by Jean-Baptiste Bayle
Browse files

1st version of hexagon

parent a9cbc8c2
No related branches found
No related tags found
No related merge requests found
Pipeline #185465 failed
...@@ -25,7 +25,7 @@ class Hexagon(): ...@@ -25,7 +25,7 @@ class Hexagon():
Args: Args:
size (int): numer of samples in the simulation size (int): numer of samples in the simulation
dt (float): sampling period [s] dt (float): sampling period [s]
freerunning_laser_asd (float): ASD of free-running laser 1 [Hz/sqrt(Hz)] primary_laser_asd (float): ASD of primary laser 1 [Hz/sqrt(Hz)]
locked_laser_asd (float): ASD added to locked lasers 2 & 3 [Hz/sqrt(Hz)] locked_laser_asd (float): ASD added to locked lasers 2 & 3 [Hz/sqrt(Hz)]
""" """
...@@ -33,8 +33,8 @@ class Hexagon(): ...@@ -33,8 +33,8 @@ class Hexagon():
BEATNOTES = [12, 23, 31] BEATNOTES = [12, 23, 31]
def __init__(self, def __init__(self,
size=100, dt=1 / 3.4, size=100, dt=1 / (80e6/2**17/10/6/3),
freerunning_laser_asd=100, primary_laser_asd=100,
locked_laser_asd=60, locked_laser_asd=60,
offset_freqs='default', offset_freqs='default',
central_freq=2.816E14): central_freq=2.816E14):
...@@ -43,8 +43,9 @@ class Hexagon(): ...@@ -43,8 +43,9 @@ class Hexagon():
self.dt = float(dt) self.dt = float(dt)
self.fs = 1.0 / self.dt self.fs = 1.0 / self.dt
self.duration = self.size * self.dt self.duration = self.size * self.dt
self.time = np.linspace(0, self.duration-self.dt, self.size)
self.freerunning_laser_asd = freerunning_laser_asd self.primary_laser_asd = primary_laser_asd
self.locked_laser_asd = locked_laser_asd self.locked_laser_asd = locked_laser_asd
self.central_freq = float(central_freq) self.central_freq = float(central_freq)
...@@ -59,7 +60,7 @@ class Hexagon(): ...@@ -59,7 +60,7 @@ class Hexagon():
self.laser_noises = np.empty((self.size, 3)) # (size, laser) [Hz] self.laser_noises = np.empty((self.size, 3)) # (size, laser) [Hz]
# Laser 1 is free-running # Laser 1 is free-running
self.laser_noises[:, 0] = noises.laser(self.fs, self.size, self.freerunning_laser_asd) self.laser_noises[:, 0] = noises.laser(self.fs, self.size, self.primary_laser_asd)
# Laser 2 replicated laser 1 with added locking noise # Laser 2 replicated laser 1 with added locking noise
self.laser_noises[:, 1] = self.laser_noises[:, 0] \ self.laser_noises[:, 1] = self.laser_noises[:, 0] \
+ noises.white(self.fs, self.size, self.locked_laser_asd) + noises.white(self.fs, self.size, self.locked_laser_asd)
...@@ -83,5 +84,9 @@ class Hexagon(): ...@@ -83,5 +84,9 @@ class Hexagon():
self.carrier_flucuations[:, int(str(ij)[1]) - 1] - self.carrier_flucuations[:, int(str(ij)[0]) - 1] self.carrier_flucuations[:, int(str(ij)[1]) - 1] - self.carrier_flucuations[:, int(str(ij)[0]) - 1]
for ij in self.BEATNOTES for ij in self.BEATNOTES
], axis=-1) # (size, beatnote) [Hz] ], axis=-1) # (size, beatnote) [Hz]
self.carrier_beatnote = self.carrier_beatnote_offsets + self.carrier_beatnote_fluctuations
# Three-signal combination
self.three_signal_combination = self.carrier_beatnote[:,0] + self.carrier_beatnote[:,1] + self.carrier_beatnote[:,2]
# ...
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment