Getting the amplitude and phase of harmonics in C I have a periodic series of 360 values. How can I use the fftw c libraries to get the amplitude and phase of the first, second, third and fourth harmonic?

If I do this for N=360

fftw_plan_r2r_1d(N,input_array,output_array,FFTW_R2HC,FFTW_ESTIMATE);


I can get the 360-point Discrete Fourier Transform (DFT) where output_array is complex Hermitian in half-complex format.

Where k$^{th}$ component of output_array is the real part and (N-k)$^{th}$ component of output_array is the imaginary part.

So if I want the amplitude or magnitude(??) of the first harmonic should I do this?

ampl_1sth=sqrt(output_array[1]*output_array[1]+output_array[N-1]*output_array[N-1])


Is that correct? then the amplitude of the second harmonic will be the same but with output_array[2] and output_array[N-2] and so on right?

And then how can I get the phase of the first, second, third and fourth harmonic with the info from the DFT?

For a reference to fftw see here www.fftw.org/fftw3.pdf

Thank you.
You just need to know how to compute magnitude and phase of a complex number $z=z_R+iz_I$:

$$|z|=\sqrt{z_R^2+z_I^2}\\
\arg\{z\}=\left\{\begin{array}{ll}0,&amp;z_R=z_I=0\\
\pi/2&amp;z_R=0,\; z_I&gt;0\\
-\pi/2&amp;z_R=0,\; z_I&lt;0\\
\arctan\left(\frac{z_I}{z_R}\right),&amp;z_R&gt;0\\
\arctan\left(\frac{z_I}{z_R}\right)+\pi,&amp;z_R&lt;0,\;z_I\ge0\\
\arctan\left(\frac{z_I}{z_R}\right)-\pi,&amp;z_R&lt;0,\;z_I&lt;0\\
\end{array}\right.
$$

Luckily, the computation of the phase $\arg\{z\}$ is simplified by the existence of the function atan2 in most programming languages. Watch out, you need to use it like this:

$$\text{phase = }\text{atan2}(z_I,z_R)$$