NFDMLAB: Simulating Nonlinear Frequency Division Multiplexing in Python

NFDMLab is an open source software environment that simulates fiber-optic data transmissions using nonlinear Fourier transforms. The goals and architecture of NFDMLab are described in the accompanying software paper:

M. Brehler, C. Mahnke, S. Chimmalgi and S. Wahls, “NFDMLab: Simulating Nonlinear Frequency Division Multiplexing in Python,” Optical Networking and Communication Conference & Exhibition (OFC), paper M3Z.13, Mar. 2019.

First Steps

To get a first impression of NFDMLab, please check out the Videos.

To get started, follow the Installation instructions and read the Getting Started document. Later, you might want to work through the Code documentation.

Reporting Bugs and Getting Help

Please use the issue tracker to report any problems with NFDMLab. Emails might be ignored.


If you wrote a new example, component, fixed a bug or improved the documentation, and would like to see it included in NFDMLab, please get in touch!


NFDMLab is provided under the terms of the GNU General Public License, version 2.


  • This project has received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 716669).
  • Fiber-topic transmissions are simulated using a slightly modified port of SSPROP.
  • Alexander Geisler has contributed a Raman gain profile.

Indices and tables