Digital Communications: Fundamentals and Applications