graduate student

Python's FFT

Research Note ~ Deciphering Python’s FFT

In Python, the forward Discrete Fourier Transform (DFT) for a time signal $a(m)$ using both numpy and scipy is represented as

\[A(k) = \sum_{m=0}^{n-1} a(m) \exp \left(-2\pi i \frac{mk}{n}\right)\]

and the inverse DFT is

\[a(m) = \frac{1}{n} \sum_{k=0}^{n-1} A(k) \exp \left( 2\pi i \frac{mk}{n}\right).\]

The forward DFT is analagous to

\[A(k) = \sum_{m=0}^{n-1} a(m) \exp (-i \omega n).\]
  • \(a(m)\) corresponds to the input sequence
  • \(n\) is the number of samples in the time domain
  • \(k\) is the number of cycles
  • \(m\) is the current index/sample
  • \(\frac{k}{n}\) corresponds to the frequency of the signal (\(k\) cycles per \(n\) samples)
  • Relationship between angular frequency and temporal frequency: \(\omega = 2 \pi f\)