# Re: Time domain to frequency domain with FFT from GSL

**URL:** <https://www.ruby-forum.com/t/re-time-domain-to-frequency-domain-with-fft-from-gsl/95488>\
**Category:** Ruby\
**Created:** [June 3, 2006, 5:56am UTC](https://www.ruby-forum.com/t/re-time-domain-to-frequency-domain-with-fft-from-gsl/95488 "2006-06-03T05:56:02Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 3, 2006, 5:56am UTC](https://www.ruby-forum.com/t/re-time-domain-to-frequency-domain-with-fft-from-gsl/95488/1 "2006-06-03T05:56:02Z")

</div>

> The items after N/2 are the “negative frequencies”

It is not the case for real FFTs, the negative  
frequency components are not stored in the  
returned array.

Time domain data of length N are represented by  
N Fourier components with N/2 positive and N/2  
negative frequencies. The negative components are  
“mirror image” of the positives, just complex-  
conjugate, as Adam said. In many cases only the  
positive frequency components are used in analyses.  
If the input vector with N elements are  
complex-valued, it is 2N long, and the FFTed data  
contains N Fourier components. Since each of  
the components is complex and represented by two  
values (real, imag), the length required to store  
the FFTed data are 2N, (N/2)\*2 for positive  
frequencies and (N/2)\*2 for negatives.  
If the input vector is of N real, we have only  
N length field (many of C FFT routines store the  
results in-plane) and thus only the positive  
frequency components of N/2 complex values are  
stored in the results.
