40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  PSL  Not logged in ELOG logo
Message ID: 2355     Entry time: Thu Jun 6 18:14:17 2019
Author: anchal 
Type: DailyProgress 
Category: BEAT 
Subject: Moku Lab Frequency Noise Analysis 

I spent some time understanding moku and even though it has some flaws (like no scriptable channel for recording data), it seems like using the Phasemeter instrument in mokulab will get rid of all of our PLL problems.

Measurement details:

  • I connected a low noise Wenzel Crystal Oscillator of frequency 24.483 MHz in the input port of mokulab.
  • Using its phase meter app which has a maximum tracking bandwidth of 10kHz, we can directly record time series data of frequency and phase at a maximum acquisition rate of 125kHz.
  • If we set acquisition rate lower than 500 Hz, we can also see a real time frequency noise ASD through the iPad. This is good for day to day checking.
  • Mokulab records data so fast as its FPGA fills up the RAM directly. I was able to record 100s of data without reaching the limit of RAM memory.
  • Then, one has to transfer the data to from RAM to SDCard or Dropbox or iPad. Since I have a laptop with SDcard reader, I'm just using that.
  • The files are in binary format and we need to use their executable software to convert it into .csv or .mat. This software is not compiled for linux so we need to use our laptops for this step too.
  • This generates a very large file. I have written a python code which uses scipy.signal.welch to calculate PSD of the frequency data. I need comments on if this is a good function to use. The code is int he attached .zip file.
  • This code, mokuReadFreqNoise.py also uses this psd calculation multiple times to have 90 datapoints in each frequency space decade. For higher frequencies, the scipy.signal.welch function uses the time series in segments and averages as well.
  • I also used the data from CTN:2286 of our present marconi in PLL when instead of beatnote, the same crystal oscillator was at the measurement end.


  • I'm unable to find datasheet of the model number of the crystal oscillator we have but all of them have less than -165 dBc/Hz Phase Noise at 1 kHz offset from the carrier. 
  • I'm not very sure how to translate that into frequency jitter noise.
  • But assuming (and mostly this assumption is very good) that this OCXO is much better than the synthesized frequencies of Moku or Marconi, what I am measuring in these experiments is actually frequency noise of the devices themselves.
  • And anyway, both measurements were taken essentially in the same way. The comparison shows that Moku Lab is doing much better in measuring frequency noise. So if we can keep the frequency drift of BN less than 10kHz/100s which is not too difficult and has been achieved with our modern day not so good temperature control.
  • When using external reference 10 MHz Rb clock, the noise in Moku is way lower than our expected coating brownian noise. So if the rest of the experiment works, moku would not give us problems of any noise floor in measurements.

Since it doesn't hurt:

Code and Data

Attachment 1: MokuFrequencyNoiseAnalysis.zip  443 kB  Uploaded Thu Jun 6 19:46:39 2019
Attachment 2: MokuFrequencyNoiseAnalysis.pdf  95 kB  Uploaded Thu Jun 6 19:47:07 2019  | Hide | Hide all
MokuFrequencyNoiseAnalysis.pdf MokuFrequencyNoiseAnalysis.pdf
ELOG V3.1.3-