Published October 15, 2025
| Version v1
Software
Open
Optimisation Algorithms for Electronic Polarisation Control in Quantum Key Distribution
Authors/Creators
Description
Optimisation Algorithms for Electronic Polarisation Control - Simulation and Experimental Implementation
Electronic Polarisation Controllers (EPCs) are used with a polarisation reference signal to align the measurement apparatus for Quantum Key Distribution (QKD) implementations that use polarisation encoding. EPCs typically have 3 or 4 voltage inputs, with each voltage input applying some operation that changes the polarisation, however these operations are complex and difficult to characterise (see Fig.20 from [Vega. G. el al. "Polarisation Synchronisation for
Space Quantum Key Distribution", 2024]). As such, these devices and their inputs are treated as black boxes, and optimisation algorithms are used. The project compares different optimisation algorithms for this purpose, and then proposes a scheme to continuously control the state of polarisation over an extended timeframe.
The associated paper for this work can be found here: \*Paper DOI Here\*
Dependencies
- NumPy
- Keyboard
Optinally for 'not_used_exp_pol_drift_plot.py' in the 'results_processing_exp' folder you will need:
- Mayavi
- TVTK
Project Structure
Each of the algorithms has a folder with the prefix 'algo_' containing the experimental implementation, and a simulated animation on the Poincare Sphere.
All of the algorithms with the exception of Adaptive Gradient Descent have headless simulated implementations.
The 'continuous_control' folder contains both the dataset generation code, and the code to generate the plots of the data.
The 'control_code_simulation' folder contains the code that implements the simulated EPC, polarimeter, channel, etc. .
The 'polarisation_drift' folder contains the code that collects experimental data, and performs a simulated animation to illustrate the simulated noise.
The 'results_processing_sim' and 'results_processing_exp' folders contain the code to produce plots for results obtained through simulation and experiment respectively.
The 'simulation_comparison' folder contains the code that performs the comparison of the simulated implementations of the optimisation algorithms.
'res_comp_bar_plots.py' is used to produce the bar plots for the paper.
Important note:
Whilst there is the 'control_code_simulation' folder, there is no 'control_code_experiment' folder given as a part of this project as this code is private to the research group.
Instead there is a 'Device Control Function Documentation.txt' file which outlines the function signatures and provides documentation for the EPC and Polarimeter control code.