Dither locking – generating an error signal

NOTE: The dither command is classed as an experimental feature in Finesse v2

A quick example for generating an error signal by dithering the mirror. For this we need to use the `dither` command.

dither component_name f m order phase

Where f and m are the dither frequency and modulation index. The first simple example shows the a laser beam reflected from a dithered mirror and observing the fundamental, with the 1st and 2nd order sidebands.

import pykat
pykat.init_pykat_plotting()

kat = pykat.finesse.kat()
kat.parse("""
 l l1 1 0 n1
 s s2 1 1 n1 n4
 m mN 1 0 0 n4 n5
 # 2nd order 50kHz displacement dither with 1e-9 modulation index
 dither mN 50k 1n 2 0 
 ad ap0 0 n4
 ad ap10 50k n4
 ad am20 100k n4
 vary the dither amplitude
 xaxis mN dither_m lin 0 1e-6 1000
 """)
out = kat.run()
out.plot(

The above plot shoes the amplitude of the first two orders generated by the mirror dither.

You should note that Pykat returns a warning:


Parsing `dither mN 10M 1n 2 0` into pykat object not implemented yet, added as extra line.

This means that there is no interface in Pykat to interact with the dither command and change its parameters. If you want to change this line you first have to remove it, then reparse it:

kat.removeLine("dither m1 100k 1n 2 0")

The line has to be exactly the same text as the line previously added.

It’s fairly straight forward to just dither a mirror in a cavity and use a demodulating photodiode detector at the same frequency to observe the error signal (Make sure to optimise the demodulation phase)

kat = pykat.finesse.kat()
kat.parse("""
l l1 1 0 n0
m m1 0.99 0.01 0 n0 n1
s s1 10 n1 n2
m m2 1 0 0 n2 n3

dither m2 200k 1n 2 0
pd1 REFL 200k 100 n0
xaxis m1 phi lin -10 10 1000
""")
out = kat.run()
out.plot()

Leave a Reply