Convex Optimization for Signal Processing and Communications (From Fundamentals to Applications)