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

Implement OMS noises

parent 08c0998c
No related branches found
No related tags found
1 merge request!31Resolve "Add a first model for measurement/readout noise"
......@@ -204,3 +204,29 @@ def testmass(fs, size, asd=2.4E-15, fknee=0.4E-3):
fs, size, asd, fknee)
return red(fs, size, asd / (2 * pi * c)) \
+ infrared(fs, size, asd * fknee / (2 * pi * c))
def oms(fs, size, asd, fknee):
"""Generate optical metrology system (OMS) noise allocation [ffs].
The power spectral density in displacement is given by
S_bl(f) [m] = asd^2 [ 1 + (fknee / f)^4 ].
Multiplying by (2π f / c)^2 to express it as fractional frequency deviations,
S_bl(f) [ffd] = (2π asd / c)^2 [ f^2 + (fknee^4 / f^2) ]
= (2π asd / c)^2 f^2 + (2π asd fknee^2 / c)^2 f^(-2)
Note that the level of this noise depends on the interferometer and the type of beatnote.
Warning: this corresponds to the overall allocation for the OMS noise from the Performance
Model. It is a collection of different noises, some of which are duplicates of standalone
noises we already implement in the simulation (e.g., backlink noise).
Because this is a optical pathlength noise expressed as fractional frequency deviation, it should
be multiplied by the beam frequency to obtain the beam frequency fluctuations.
"""
logger.debug("Generating OMS noise (fs=%s Hz, size=%s, asd=%s m/sqrt(Hz), fknee=%s Hz)",
fs, size, asd, fknee)
return violet(fs, size, 2 * pi * asd / c) \
+ red(fs, size, 2 * pi * asd * fknee**2 / c)
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