Signal Processing Fundamentals