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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODc3ODIsIm5iZiI6MTczOTE4NzQ4MiwicGF0aCI6Ii8yNDkwMDQ5Ni8zODk3MzYxMjItN2M4YTA1NDctMGM4Mi00NjFmLWE2MTYtODkzMWVkZjgwNDhmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDExMzgwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU0Mjc3NDEwYTNjYzE2OWI3ZmRiMWU4MmQwMGY5NjlmMmIyNjlmMjVjMmNlMGJmZmYxZWU5MGI5MmE5ZmJhOTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Fle0AB8nl9MGOWatA8ZITnjJzZGW-ubMROojU8MDLn8)
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.