PHS3000 Rubidium hyperfine spectroscopy

This documents the monashspa.PHS3000.rubidium_spectroscopy library that you will import into code used in the PHS3000 unit when performing experiment 1.6 Rubidium hyperfine spectroscopy.

monashspa.PHS3000.rubidium_spectroscopy.extract_frequency(michelson_data, MHz_per_fringe, num_dc_terms_to_remove=1)[source]

Returns a frequency calibration determined from Michelson interferometer data

Performs a Hilbert transform (minus the DC term) on the Michelson interferometer data and scales the resultant frequency array by the distance (in MHz) between constructive interference fringes.

Parameters:
  • michelson_data – A 1D numpy array containing the oscilloscope data from the michelson interferometer
  • MHz_per_fringe – The distance (in MHz) between constructive interference fringes in the michelson_data calculated from the path length difference of the Michelson interferometer arms.
Keyword Arguments:
 

num_dc_terms_to_remove – The number of low frequency components to remove after performing the Fourier transform. The default is 1 (remove the DC term only). Higher integers remove low order frequency components

Returns:

A 1D numpy array (with the same length as michelson_data) containing a frequency calibration (in MHz) for the saturated absorption spectra. Use this array as the x-axis for plotting and fitting.

monashspa.PHS3000.rubidium_spectroscopy.read_rigol_csv(filepath)[source]

Reads the csv file saved from the Rigol digital storage oscilloscope.

Parameters:filepath – A string containing the path to the csv file
Returns:A tuple (X, time, CH1, CH2) where each element is a 1D numpy array containing an array of incrementing integers, an array of time points (x-axis of the oscilloscope), and the y-values for channels 1 and 2 respectively.