ML-assisted detection for nonlinear fiber-optic channels using Support Vector Machines and Random Forest classifiers to optimize decision regions for mQAM constellations.
This is the simulation and analysis code for the MSc thesis:
Machine Learning Enabled Nonlinear Phase Noise Mitigation for Coherent Optical Systems
A coherent optical fiber link is simulated in VPItransmissionMaker. The received constellation data (exported as .txt files) is then processed in Python/Jupyter to train and evaluate ML classifiers that replace traditional hard-decision boundaries — improving symbol error rate under both linear and nonlinear noise conditions.
Two main scenarios are studied:
Baseline with no fiber nonlinearity — isolates the effect of OSNR, laser linewidth, and ADC resolution on classification performance.
OSNR-Resolution/SVM/— SVM classifiers for 4/16/64/256-QAMLO Noise/— local oscillator phase noise analysis
Full fiber link with nonlinear phase noise from the Kerr effect.
Zero Dispersion Fiber/— Random Forest classifiers for zero-dispersion fiberDispersion Compensated Fiber/— dispersion compensated fiber scenarioNonlinearVoronoi.ipynb— Voronoi tessellation visualization of decision regions
Simulation results (~27,000 .txt constellation files and ~6,000 .png plots) are committed directly in the repository. The repo is large (~6 GB total); a shallow clone is recommended:
git clone --depth 1 https://github.com/ChiefGuti/optical-fiber-ml-classifier.git- Python 3, Jupyter Notebook
- scikit-learn (SVM, Random Forest)
- numpy, matplotlib
- VPItransmissionMaker (optical link simulation — not included)