This module will introduce the student to a toolkit of techniques for signal processing for use in photonics. Many of the topics students will study in Photonics will rely on an understanding of how optical signals are acquired and processed – the connection is clear within optical communications, but signal processing is also important in other areas such as optical sensors and image processing. Recently, advances in machine learning, and in particular techniques using neural networks, has taken signal processing to a new level, and has found applications across all of science and engineering.
Modern digital signal processing relies on computational techniques, and so this module will teach the basics of Python, language of choice for much scientific computing and almost all machine learning applications. As well as lecture-based teaching, the students will be introduced to practical techniques of signal processing via exercises in computer labs, aimed at equipping the student with skills necessary for their future work in photonics, in particular their final MSc project.
In part 1 of the module, students will be introduced to the theory and practice of digital signal processing, with a focus on key applications for optical communications.
In part 2 of the module, the mathematical and programmatic techniques required for creating, training and testing neural networks will be covered, with a particular focus on the practical implementation of convolutional neural networks for solving real-world photonics challenges.