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)