Skip to content
Snippets Groups Projects
Commit ff8409e7 authored by Jean-Baptiste Bayle's avatar Jean-Baptiste Bayle
Browse files

Rename TCB sync noise to MOC time correlation

parent fe7697ba
No related branches found
No related tags found
1 merge request!141Resolve "Missing TPS deviations from TPS in the TCB timer deviations"
...@@ -87,8 +87,8 @@ class Instrument: ...@@ -87,8 +87,8 @@ class Instrument:
# Optical pathlength noises # Optical pathlength noises
backlink_asds=3E-12, backlink_fknees=2E-3, testmass_asds=2.4E-15, testmass_fknees=0.4E-3, backlink_asds=3E-12, backlink_fknees=2E-3, testmass_asds=2.4E-15, testmass_fknees=0.4E-3,
oms_asds=(6.35E-12, 1.25E-11, 1.42E-12, 3.38E-12, 3.32E-12, 7.90E-12), oms_fknees=2E-3, oms_asds=(6.35E-12, 1.25E-11, 1.42E-12, 3.38E-12, 3.32E-12, 7.90E-12), oms_fknees=2E-3,
# TCB synchronization # MOC time correlation
sync_asds=0.42, moc_time_correlation_asds=0.42,
# Tilt-to-length (TTL) # Tilt-to-length (TTL)
ttl_coeffs='default', ttl_coeffs='default',
sc_jitter_asds=(5E-9, 5E-9, 5E-9), sc_jitter_fknees=(8E-4, 8E-4, 8E-4), sc_jitter_asds=(5E-9, 5E-9, 5E-9), sc_jitter_fknees=(8E-4, 8E-4, 8E-4),
...@@ -155,8 +155,9 @@ class Instrument: ...@@ -155,8 +155,9 @@ class Instrument:
testmass_fknees: dictionary of cutoff frequencies for test-mass noise [Hz] testmass_fknees: dictionary of cutoff frequencies for test-mass noise [Hz]
oms_asds: tuple of dictionaries of amplitude spectral densities for OMS noise [m/sqrt(Hz)], oms_asds: tuple of dictionaries of amplitude spectral densities for OMS noise [m/sqrt(Hz)],
ordered as (isi_carrier, isi_usb, tmi_carrier, tmi_usb, rfi_carrier, rfi_usb) ordered as (isi_carrier, isi_usb, tmi_carrier, tmi_usb, rfi_carrier, rfi_usb)
sync_asds: dictionary of amplitude spectral densities for TCB synchronization noise [s/sqrt(Hz)], moc_time_correlation_asds: dictionary of amplitude spectral densities for MOC time
the default ASD seems rather high, this is due to the small sampling rate (default 1 / 86400s) correlation noise [s/sqrt(Hz)], the default ASD seems rather high, this is due
to the small sampling rate (default 1 / 86400s)
oms_fknees: dictionary of cutoff frequencies for OMS noise oms_fknees: dictionary of cutoff frequencies for OMS noise
ttl_coeffs: tuple (local_phi, distant_phi, local_eta, distant_eta) of dictionaries of ttl_coeffs: tuple (local_phi, distant_phi, local_eta, distant_eta) of dictionaries of
tilt-to-length coefficients on each MOSA [m/rad], 'default' for a default set of tilt-to-length coefficients on each MOSA [m/rad], 'default' for a default set of
...@@ -318,8 +319,8 @@ class Instrument: ...@@ -318,8 +319,8 @@ class Instrument:
else: else:
self.clock_freqquaddrifts = ForEachSC(clock_freqquaddrifts) self.clock_freqquaddrifts = ForEachSC(clock_freqquaddrifts)
# TCB synchronization # MOC time correlation
self.sync_asds = ForEachSC(sync_asds) self.moc_time_correlation_asds = ForEachSC(moc_time_correlation_asds)
# Clock-noise inversion # Clock-noise inversion
self.clockinv_tolerance = float(clockinv_tolerance) self.clockinv_tolerance = float(clockinv_tolerance)
...@@ -940,7 +941,7 @@ class Instrument: ...@@ -940,7 +941,7 @@ class Instrument:
logger.debug("Computing MOC time correlations") logger.debug("Computing MOC time correlations")
physics_to_telemetry = lambda _, x: x[::self.physics_upsampling * self.telemetry_downsampling] physics_to_telemetry = lambda _, x: x[::self.physics_upsampling * self.telemetry_downsampling]
self.moc_time_correlations = self.tcb_sync_noises \ self.moc_time_correlations = self.moc_time_correlation_noises \
+ self.the_wrt_tcb_withinitial.transformed(physics_to_telemetry) + self.the_wrt_tcb_withinitial.transformed(physics_to_telemetry)
## TDIR tone ## TDIR tone
...@@ -1546,10 +1547,13 @@ class Instrument: ...@@ -1546,10 +1547,13 @@ class Instrument:
noises.dws(self.physics_fs, self.physics_size, self.dws_asds[mosa]) noises.dws(self.physics_fs, self.physics_size, self.dws_asds[mosa])
) )
## TCB synchronization noise ## MOC time correlation noise
self.tcb_sync_noises = ForEachSC(lambda sc: self.moc_time_correlation_noises = ForEachSC(lambda sc:
noises.tcb_sync(self.telemetry_fs, self.telemetry_size, self.sync_asds[sc]) noises.moc_time_correlation(
self.telemetry_fs,
self.telemetry_size,
self.moc_time_correlation_asds[sc])
) )
## Angular jitters ## Angular jitters
...@@ -1902,8 +1906,8 @@ class Instrument: ...@@ -1902,8 +1906,8 @@ class Instrument:
self.oms_rfi_carrier_noises.write(hdf5, 'oms_rfi_carrier_noises') self.oms_rfi_carrier_noises.write(hdf5, 'oms_rfi_carrier_noises')
self.oms_rfi_usb_noises.write(hdf5, 'oms_rfi_usb_noises') self.oms_rfi_usb_noises.write(hdf5, 'oms_rfi_usb_noises')
logger.debug("Writing TCB synchronization noise to '%s'", output) logger.debug("Writing MOC time correlation noise to '%s'", output)
self.tcb_sync_noises.write(hdf5, 'tcb_sync_noises') self.moc_time_correlation_noises.write(hdf5, 'moc_time_correlation_noises')
logger.debug("Writing spacecraft angular jitter to '%s'", output) logger.debug("Writing spacecraft angular jitter to '%s'", output)
self.sc_jitter_phis.write(hdf5, 'sc_jitter_phis') self.sc_jitter_phis.write(hdf5, 'sc_jitter_phis')
......
...@@ -321,19 +321,20 @@ def dws(fs, size, asd): ...@@ -321,19 +321,20 @@ def dws(fs, size, asd):
logger.debug("Generating DWS measurement (fs=%s Hz, size=%s, asd=%s rad/sqrt(Hz))", fs, size, asd) logger.debug("Generating DWS measurement (fs=%s Hz, size=%s, asd=%s rad/sqrt(Hz))", fs, size, asd)
return violet(fs, size, 2 * pi * asd) return violet(fs, size, 2 * pi * asd)
def tcb_sync(fs, size, asd): def moc_time_correlation(fs, size, asd):
"""TCB synchronization noise. """MOC time correlation noise.
High-level noise model for the uncertainty we have in estimating High-level noise model for the uncertainty we have in computing the MOC
the TCB timer deviations, i.e., the equivalent TCB times for the time correlation (or time couples), i.e., the equivalent TCB times for the
equally-sampled TPS timestamps. equally-sampled TPS timestamps.
Assumed to be a white noise in timing, Assumed to be a white noise in timing,
S_tcbsnc(f) [s] = asd^2. S_moc(f) [s] = asd^2.
Args: Args:
asd: amplitude spectral density [s/sqrt(Hz)] asd: amplitude spectral density [s/sqrt(Hz)]
""" """
logger.debug("Generating TCB synchronization noise (fs=%s Hz, size=%s, asd=%s s/sqrt(Hz))", fs, size, asd) logger.debug("Generating MOC time correlation noise (fs=%s Hz, size=%s, "
"asd=%s s/sqrt(Hz))", fs, size, asd)
return white(fs, size, asd) return white(fs, size, asd)
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