6.7.3 Quantum-noise limited interferometer sensitivity
This example shows the quantum-noise limited sensitivity of an advanced detectors. See Appendix B for the optical layout of the detector and Sect. 8.12 for more details about the interferometer operation. The model is loosely based on the Advanced LIGO design file and thus we expect to see the peak sensitivity around \(100\) Hz at a sensitivity of about \(10^{−23}/\sqrt{\text{Hz}}\). We can see the both the qnoised and qshot detectors agree at high frequencies, where the sensitivity is purely limited by shot noise. At low frequencies the two traces differ because only qnoised takes into account the radiation pressure effects (Fig. 48, generated here).
The Finesse input file for this example is more complex than for other examples because it contains a more complex interferometer setup and uses relatively advanced concepts such as setting mechanical transfer function. See Appendix A for more information on Finesse and where to find the documentation, such as the syntax reference, required to follow this example.
import finesse
finesse.init_plotting()
base = finesse.Model()
base.parse(
"""
###########################################################################
### Variables
###########################################################################
var Larm 3995
var Mtm 40
var itmT 0.014
var lmichx 4.5
var lmichy 4.45
###########################################################################
### Input optics
###########################################################################
l L0 125
s l_in L0.p1 prm.p1
# Power recycling mirror
m prm T=0.03 L=37.5u phi=90
s prc prm.p2 bs.p1 L=53
# Central beamsplitter
bs bs T=0.5 L=0 alpha=45
###########################################################################
### X arm
###########################################################################
s lx bs.p3 itmx.p1 L=lmichx
m itmx T=itmT L=37.5u phi=90
s LX itmx.p2 etmx.p1 L=Larm
m etmx T=5u L=37.5u phi=89.999875
pendulum itmx_sus itmx.mech mass=Mtm fz=1 Qz=1M
pendulum etmx_sus etmx.mech mass=Mtm fz=1 Qz=1M
###########################################################################
### Y arm
###########################################################################
s ly bs.p2 itmy.p1 L=lmichy
m itmy T=itmT L=37.5u phi=0
s LY itmy.p2 etmy.p1 L=Larm
m etmy T=5u L=37.5u phi=0.000125
pendulum itmy_sus itmy.mech mass=Mtm fz=1 Qz=1M
pendulum etmy_sus etmy.mech mass=Mtm fz=1 Qz=1M
###########################################################################
### Output and squeezing
###########################################################################
s src bs.p4 srm.p1 L=50.525
m srm T=0.2 L=37.5u phi=-90
# A squeezed source could be injected into the dark port
sq sq1 db=0 angle=90
s lsqz sq1.p1 srm.p2
# Differentially modulate the arm lengths
fsig(1)
sgen darmx LX.h
sgen darmy LY.h phase=180
# Output the full quantum noise limited sensitivity
qnoised NSR_with_RP srm.p2.o nsr=True
# Output just the shot noise limited sensitivity
qshot NSR_without_RP srm.p2.o nsr=True
# We could also display the quantum noise and the signal
# separately by uncommenting these two lines.
# qnoised noise srm.p2.o
# pd1 signal srm.p2.o f=fsig
"""
)
out = base.run("xaxis(darmx.f, log, 5, 5k, 100)")
out.plot(log=True, separate=False);
/usr/local/lib/python3.13/site-packages/matplotlib/cbook.py:1719: ComplexWarning: Casting complex values to real discards the imaginary part
return math.isfinite(val)
/usr/local/lib/python3.13/site-packages/matplotlib/cbook.py:1355: ComplexWarning: Casting complex values to real discards the imaginary part
return np.asarray(x, float)