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.