Optoelectronics and Photonics Principles and Practice