I am using
numpy to do FFTs of real-valued data. And I don't understand why the Nyquist frequency is always real (or has zero phase).
A = rfft(data) then
A[-1] is always a real value, and not complex. Is this the correct value for that frequency? Or is this a computational artifact that can be fixed?
The explanation given in the documentation is:
A[-1]contains the term representing both positive and negative Nyquist frequency (+fs/2 and -fs/2), and must also be purely real.
Is there a way to extract only the positive frequency and get rid of the degeneracy in the imaginary component caused by the Hermitian nature of the real FFT?