mirror of
				https://gitlab.science.ru.nl/mthesis-edeboone/m-thesis-introduction.git
				synced 2025-10-31 03:46:44 +01:00 
			
		
		
		
	This is not required to be known when finding the phase as lib.find_beacon_in_traces already accounts for it.
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			934 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			934 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| 
 | |
| """
 | |
| Test the functions in lib concerning
 | |
| beacon generation and phase measuring
 | |
| work correctly together.
 | |
| """
 | |
| 
 | |
| 
 | |
| import matplotlib.pyplot as plt
 | |
| import numpy as np
 | |
| 
 | |
| import lib
 | |
| 
 | |
| seed = 12345
 | |
| dt = 1 # ns
 | |
| frequency = 45e-3 # GHz
 | |
| N = 5e2
 | |
| 
 | |
| t = np.arange(0, 10*int(1e3), dt, dtype=float)
 | |
| rng = np.random.default_rng(seed)
 | |
| 
 | |
| phase_res = np.zeros(int(N))
 | |
| 
 | |
| # Vary both the base time and the phase
 | |
| for i in range(int(N)):
 | |
|     t_extra = (2*rng.uniform(size=1) - 1) *1e3
 | |
|     t += t_extra
 | |
| 
 | |
|     phase = lib.phase_mod(np.pi*(2*rng.uniform(size=1) -1)) # rad
 | |
|     beacon = lib.sine_beacon(frequency, t, t0=0, phase=phase)
 | |
| 
 | |
|     measured = lib.find_beacon_in_traces([beacon], t, frequency, frequency_fit=False)
 | |
| 
 | |
|     t -= t_extra
 | |
|     phase_res[i] = lib.phase_mod(measured[1][0] - phase)
 | |
| 
 | |
| fig, ax = plt.subplots()
 | |
| ax.set_xlabel("$\\varphi_{meas} - \\varphi_{true}$ [rad]")
 | |
| ax.set_ylabel("#")
 | |
| ax.hist(phase_res, bins='sqrt')
 | |
| plt.show()
 |