optcom-trees: forest-based nonlinear equalisers
Python · scikit-learn · XGBoost · research code · GitHub (master branch)
Neural-network equalisers can compensate nonlinear distortion in fibre links, but they are heavy for real-time hardware. Tree ensembles are a cheap alternative: at inference time they are just a set of comparisons, which maps naturally onto an FPGA. This code base is where I built and benchmarked them on simulated transmission data.
- Random forest, gradient boosting and XGBoost regressors (and classifiers), trained on simulated received symbols.
- Features built from each symbol’s m neighbouring symbols, with the target being the nonlinear shift of the received constellation point.
- Works on data simulated with hpcom, with evaluation across launch powers, feature-importance analysis and custom loss experiments.
Related work: Gradient boosting for nonlinear equalisation (CLEO/Europe 2023), the Forest Equalization poster (TOP 2023) and my PhD thesis.
