Articles in the blog category
In my previous blog post, I discussed how to use Cython to get a more than hundredfold speed improvement on training an adaptive equaliser for optical communications experiments and simulations. The downside to that gain was that the optimised Cython-code was quite unwieldy and contained a lot of boilerplate. Something I was trying to avoid by using Python. Thus making the code much easier to use and adjust for our students.
Optical communication has evolved tremendously from the systems based on intensity modulation from just 20 years ago. A modern system will use any number of techniques largely adopted from wireless communications, such as coherent (QAM) modulation and pulse shaping, to boost the spectral efficiency and throughput of the transmission.
Digital signal processing (DSP) has become a crucial component of these systems to compensate for the impairments which these signals inevitably experience upon propagation, and understanding of the required signal processing is extremely important for running state-of-the-art experiments. While real systems employ custom designed ASICs to cope with the high symbol rates which easily exceed 40 Gbaud, in research and development people largely use offline processing where data is captured using an ultra-fast real-time oscilloscope, such as this