QAMPy#

QAMPy is a dsp chain for simulation and equalisation of signals from optical communication transmissions. It is written in Python, but has been designed for high performance and most performance critical functions are written with pythran to run at speed of compiled c or c++ code.

QAMPy can equalise BPSK, QPSK and higher-order QAM signals as well as simulate signal impairments.

Equalisation#

For signal equalisation it contains:

  • CMA and modified CMA equalisation algorithms

  • Radius directed equalisers

  • several decision directed equaliser implementations

  • phase recovery using blind phase search (BPS) and ViterbiViterbi algorithms

  • frequency offset compensation

  • a complete set of pilot-based equalisation routines, including frame synchronization, frequency offset estimation, adaptive equalisation and phase recovery

  • additional data-aided and real-valued adaptive equaliser routines

Impairments#

It can simulate the following impairments:

  • frequency offset

  • SNR

  • PMD

  • phase noise

  • transceiver impairments such as modulator nonlinearity, DAC frequency response and limited ENOB

Signal Quality Metrics#

QAMpy is designed to make working with QAM signals easy and includes calculations for several performance metrics:

  • Symbol Error Rate (SER)

  • Bit Error Rate (BER)

  • Error Vector Magnitude (EVM)

  • Generalized Mututal Information (GMI)