3.8.2 Mirror modulation
Finesse offers two different types of modulators: the modulator component shown in the example above, and the fsig command, which can be used to apply a signal modulation to existing optical components. The main difference is that fsig is meant to be used for transfer function computations. Consequently Finesse discards all nonlinear terms, which means that the sideband amplitude is proportional to the signal amplitude and harmonics are not created (Fig. 23, generated here).
import finesse
from finesse.analysis.actions import Xaxis
import numpy as np
import matplotlib.pyplot as plt
finesse.init_plotting()
base = finesse.Model()
base.parse(
"""
l l1 # laser with P=1W at default frequency
s s1 l1.p1 bs1.p1 L=1 # space of 1m length
bs bs1 # beam splitter as 'turning mirror', normal incidence
fsig(40k) # set signal frequency to 40kHz
sgen sig1 bs1.mech.z # signal modulation applied to beam splitter
# Amplitude detectors looking at lower and upper sidebands, and upper first harmonic
ad upper bs1.p2.o f=40k
ad lower bs1.p2.o f=-40k
#ad harmonic bs1.p2.o f=80k # CAUSES ERROR MESSAGE
"""
)
out = base.run(Xaxis(base.sig1.amplitude, 'lin', 1, 10, 100))
plt.figure(figsize=(8, 4))
plt.plot(out.x1, np.abs(out['upper']), label='upper')
plt.plot(out.x1, np.abs(out['lower']), ls='--', label='lower')
plt.xlabel('signal amplitude (bs1.mech.z)')
plt.ylabel(r'amplitude [$\sqrt{\mathrm{W}}$]')
plt.show()