diff_neg = +(phase_neg - phase_previous_neg + np.pi)%(2*np.pi)-np.pi diff = diff_pos + diff_neg/2 data = np.roll(data, -1, axis=0) temperature = temperature + 0.015 * diff / (2*np.pi) data[-1] = temperature string = str(time.time())+','+str(temperature)+'\n' f.write(string) print(string) phase_previous_pos = phase_pos phase_previous_neg = phase_neg f.close() driver.stop_laser() driver.close() plt.show() # Plot temperature temperature_data = np.genfromtxt('temperature.csv', delimiter=',') n_pts = len(temperature_data[:,0]) time = temperature_data[:,0]-temperature_data[0,0] T = time[-1] f_fft = np.arange(n_pts/2 + 1) / T temperature = temperature_data[:,1]
driver.start_laser() # Set laser current current = 30 # mA driver.set_laser_current(current) # Modulation on DAC amp_mod = 0.2 freq_mod = 1e6 driver.dac[1, :] = amp_mod*np.sin(2 * np.pi * freq_mod * driver.sampling.t) driver.set_dac() # Signal on ADC driver.get_adc() signal = driver.adc[0, :] # Plot plt.plot(driver.sampling.t, signal) plt.show() # Plot psd_signal = np.abs(np.fft.fft(signal)) ** 2 plt.semilogy(1e-6 * np.fft.fftshift(driver.sampling.f_fft), np.fft.fftshift(psd_signal)) plt.xlabel('Frequency (MHz)') plt.show() # Disable laser driver.stop_laser() driver.close()