Calculating the Norm of Each Sample of the DFT Trasform Given a discrete signal $ \left\{ x[n] \right\}_{n=0}^{N-1} $ and its Discrete Fourier Transform $ X[k] = DFT \left\{ x[n] \right\}[k] $.  

I'd like to effectively compute the norm of each sample of the DFT, namely  $ \left | X[k] \right | ^ {2} ,  k \in \left\{ 0, N-1 \right\}$ as opposed to the norm of the DFT series (Which equals the norm of the original series).

Could that be calculated without using complex multiplications (Since it's real)?
Namely, I'd like to not have to go through the calculation of the DFT and then calculate the norm of each sample.
What if $ x[n] $ is also a symmetric signal (Auto correlation for that matter), I assume then using the Cosine part makes it possible?

Thank You.
The simple answer: yes this can be done in various different ways:


Calculate the $a_{k}$ and $b_{k}$ coefficients of the regular
Fourier Series (http://en.wikipedia.org/wiki/Fourier_series) and then $a_{k}^{2}+b_{k}^{2}$ is the norm at frequency k. This is equivalent of splitting the original DFT equation into it's real and imaginary parts
Calculate the auto-correlation of $c_{xx}[n]$ of $x[n]$. Then calculate only the cosine coefficients $a_{k}$ of the Fourier Series of $c_{xx}[n]$. $a_{k}$ is the norm at frequency k.


However, each of this methods is computationally much less efficient than simply doing the DFT and then taking the magnitude squared. Using the DFT (with complex math) is by far the most efficient way of doing this. If you worried about computationally efficiency, you can shave about 1/3 to 1/2 of the computation time by using the fact that your input signal is real. The DFT of a real function can be calculated by using DFT of a complex signal of half the length. That requires a bit if extra math, which I'll skip here.