Digital Design of Signal Processing Systems: A Practical Approach