Understanding why (at least) 2 points of the FFT of a real signal are real I am aware that the FFT of a real signal is Hermitian, i.e. $\text{FFT}(f)[i] = \text{FFT}(f)[-i]^*$, where $\text{FFT}(f)[i]$ is the i-th component of the FFT of $f$.
The logical consequence of this is that $\text{FFT}(f)[0]$ is real. Another way of seeing this is that the coefficient with index 0 is the &quot;DC&quot; component, or the &quot;mean&quot;, and that this is of course real for a real signal.
Another consequence of course is that one needs to know only &quot;half&quot; the FFT to know it in full (i.e., it should be enough to know the coefficients number $0..N/2$, where N is the number of samples).
I was looking for a &quot;real FFT&quot; algorithm for my microcontroller and found the &quot;official&quot; ARM FFT. Of course they do it effectively, using an output of size N real numbers rather than N complex numbers, and outputing &quot;only half the complex FFT&quot; instead of the full (redundantly hermitian) FFT. This saves 50% space.
However I was surprised to see (in the discussion here https://github.com/ARM-software/CMSIS_5/issues/1091 ) that the FFT of the real signal actually has 2 purely real output values (at least, this is how they pack the output): the coefficient of index 0 (as expected) and also the coefficient of index N/2. I do not understand why the coefficient of index N/2 is real. Any hint why?
Details from the discussion there: &quot;Except the first complex number that contains the two real numbers
X[0] and X[N/2] all the data is complex. In other words, the first complex sample
contains two real values packed.&quot;

As pointed out in comments, what I am interested in is actually some DFT properties. So that should be something like ($l$ and $k$ the DFT and function indexes, [] the &quot;index slicing&quot;):
$ DFT(f)[l] = \frac{1}{N} \sum_{k=0}^{N-1} f[k] e^{i 2 \pi k l / N}$
First, &quot;why (at least) 2 points of the FFT is real&quot; is incorrect.  It is why one or two points of the FFT is real.
Each point of a discrete Fourier transform (which the FFT is just an algorithm to compute quickly) is the complex coefficient for its corresponding frequency.  In other words, the DFT starts with the assertion that the signal in question can be fully described by
$$x_k = \sum_N a_k e^{\frac{2\pi}{N}k} \tag 1$$
For $x_k \in \mathbb R$, (1) just carries the constraint that $a_k = (a_{N - k})^*$, where $x^*$ is complex conjugation.
From this, we can show that $a_0$ (and $a_{N/2}$ for $N$ even) are constrained to be real:
Start with the rule I mentioned that in order for $x_k$ to be real, $a_k = (a_{N - k})^*$.  Another property of the DFT is that it's only uniquely defined over an interval $N$ points long, and then it repeats.  So $a_{k + N} = a_k$.  This means that for $k=0$, $a_{N - k} = a_{N} = a_0$.  Applying the conjugate property, this means that $a_0 = a_0^*$ -- so $a_0$ must be real.
For $N$ even, $a_{N/2} = a_{N - N/2}$.  So, again, $a_{N/2} = a_{N/2}^*$, so $a_{N/2}$ must be real.
So -- one (or two, in the case of an even number of points) arguments must be real.