Discrete-Time Signal Processing by Alan V. Oppenheim & John R. Buck