Cheatsheet β Fourier Quick References
Core identitiesβ
Euler's formulaβ
Polar / phasorβ
Continuous Fourier Transform (engineering convention)β
Forwardβ
Inverseβ
Discrete Fourier Transform (N-point, engineering / FFT convention)β
Forwardβ
Inverseβ
Frequency of bin (sample rate ):β
Bins with correspond to negative frequencies at .
Useful properties (quick)
Conjugate symmetry (real input)β
Parseval / energy conservation (DFT)β
(depends on chosen normalization β check convention)
Linearityβ
Time shift:β
Frequency shift (modulation):β
Practical tips & gotchas
- DFT implicitly assumes periodicity of the finite sequence β circular convolution.
- Use zero-padding to reduce wrap-around / increase frequency resolution.
- Use windowing (Hann, Hamming, Blackman) to reduce spectral leakage for non-periodic segments.
- Zero-padding: increases bin count (interpolates spectrum) but does not add new information.
- fftshift / ifftshift: center the zero-frequency bin for visualization.
- Normalization conventions vary:
- Engineering/FFT: forward has no , inverse has (this cheatsheet's default).
- Other conventions: symmetric on both transforms, or on forward. Always check library docs.
- Nyquist / sampling theorem:
- To avoid aliasing: (sample at least twice the highest signal frequency).
- If undersampled, high-frequency content folds into lower frequencies (aliasing).
Quick NumPy / SciPy commands (examples)
- 1-D FFT / inverse (NumPy / SciPy follow engineering convention)
X = np.fft.fft(x)x_rec = np.fft.ifft(X)(ifxreal,x_rec.realequals original within numerical error)
- Zero-pad to length M:
x_padded = np.pad(x, (0, M-len(x)))thennp.fft.fft(x_padded)
- Shift for plotting:
Xc = np.fft.fftshift(np.fft.fft(x))- Frequency axis:
freqs = np.fft.fftshift(np.fft.fftfreq(N, d=1/f_s))
- Real-input optimized transforms:
X = np.fft.rfft(x)and inversex = np.fft.irfft(X, n=N)
- 2-D FFT (images):
F = np.fft.fft2(image)Fshift = np.fft.fftshift(F)image_rec = np.fft.ifft2(F)
Quick visual checklist
- Before taking FFT: detrend / remove DC if needed.
- Use window when analyzing short, non-periodic segments.
- Use zero-padding for smoother spectral plots (visual refinement).
- For filters: remember multiplication in frequency = convolution in time (and vice versa). For linear convolution via DFT, pad signals to length β₯ N1+N2β1.
Minimal cheat summary (one-liners)
- FT kernel: (analysis), inverse uses opposite sign.
- DFT maps time samples β bins with phase factor .
- Nyquist: .
np.fft.fft,np.fft.ifft,np.fft.fftshiftare your go-to tools.