Source: https://engineering.purdue.edu/wcchew/ece604f19/Lecture%20Notes/Lect1.pdf