Real-time Digital Signal Processing for Optical Communication