Free-Space Optics (FSO) meets Machine Learning (ML) — a project exploring the impact of turbulence on Optical Vortex (OAM) modes and leveraging computational techniques to analyze and mitigate distortions in FSO communication systems.
Free-Space Optical (FSO) communication is a wireless technology that uses laser beams to transmit data through the atmosphere. However, atmospheric turbulence introduces phase distortions, affecting signal integrity — especially for Orbital Angular Momentum (OAM) modes. This project simulates turbulence effects, applies attenuation models, and visualizes OAM fields to study their resilience in turbulent environments.
- OAM Field Simulation – Generates helical wavefronts with topological charge
l. - Kolmogorov Turbulence Modeling – Simulates phase distortions due to atmospheric turbulence.
- Attenuation Effects – Applies a Gaussian radial attenuation to model beam propagation losses.
- Field Visualization – Plots phase and intensity distributions for analysis.
- Customizable Parameters – Allows user-defined OAM charge, grid size, turbulence strength, and attenuation factors.
Ensure you have Python installed, then install the dependencies:
pip install numpy matplotlibIf you’re using an Apple Mac with an M1/M2/M3 chip and want to utilize the Metal GPU backend:
pip install jax jaxlib –no-cache-dirFor CUDA (NVIDIA GPU) acceleration, install JAX with CUDA support (ensure CUDA and cuDNN are properly set up):
pip install jax jaxlib -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.htmlFor CPU-only usage:
pip install jax jaxlibIf you have an NVIDIA GPU with CUDA installed, install CuPy for GPU-accelerated computations:
For CUDA 12 (Latest)
pip install cupy-cuda12xFor CUDA 11
pip install cupy-cuda11xRun this code to clone the repository
git clone https://github.com/Aravind-Sathesh/FSO-x-ML.git
cd FSO-x-MLRun the main script and enter the required parameters when prompted:
python main.pyThe script will:
- Generate an OAM field with a given topological charge.
- Apply Gaussian attenuation based on the chosen factor.
- Introduce Kolmogorov or Von Karmen turbulence to simulate atmospheric distortions.
- Display phase and intensity distributions of the field.
Plots will be saved automatically.
- Sruti Guduru – Developer
- Aravind Sathesh – Developer