Source: https://www.cpp.edu/~zaliyazici/ece307/Fourier%20Transform.pdf