Digital Signal Processing: A Practical Guide for Engineers and Scientists