Source: https://sigproc.mit.edu/_static/spring21/lectures/rec01a_scribbles.pdf