Module for making nice plots of complex DFT vectors
Basic usage:
from numpy.fft import fft, fftshift
N = 20 #Total number of bins
k1 = 2.0 #First component
k2 = 6.0 #Second component
x = np.arange(N)
s = np.cos(x*2*k1*np.pi/N) + np.sin(x*2*k2*np.pi/N)
KS = fftshift(fft(s))
stem2D(KS,fs=150,label_active=True,mode='RI',fancy=True)
...which produces the following figure:
![](https://private-user-images.githubusercontent.com/24900496/389736122-7c8a0547-0c82-461f-a616-8931edf8048f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc1ODEsIm5iZiI6MTczOTA2NzI4MSwicGF0aCI6Ii8yNDkwMDQ5Ni8zODk3MzYxMjItN2M4YTA1NDctMGM4Mi00NjFmLWE2MTYtODkzMWVkZjgwNDhmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTQ0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc2MTM2YjMzMTQ4MDI1OGFhZjI1MTVlMjVjNzAyZGEyNTVhNTU2NmU5ZTcyMzdhMzhkZDA0MGI3ZTMyZjBhMjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QL2D8ixa2H5CS-AEvtpTy1iGcHJTfxCKxRptTUOUft8)
The cosine components show up in bins +/- 2 and fall in the real (vertical) plane. The sine components show up in bins +/- 6, and fall on the imaginary (flat) plane; i.e., looking in/out of the page. The spectrum is hermetian-symmetric, as expected for a purely real input signal.