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()
../_images/203ec42586ce644fc36027e9cec078756a97e4bd6fd51facb161510df52d52f6.svg