# Frequency spectrum with fft of a real valued array...?

Holger postbox.holger at gmx.net
Thu Jan 11 17:11:27 CET 2007

```
Dear all,

I need to do a FFT on an array of 20k real values. Origin of the sampled
data is a sinus wave with light harmonics.
The goal is an frequency spectrum with the magnitudes of the first 50.
harmonics.

test_arr = src_data_dict[ channel ][0:19599]
target_data_dict[ channel ] = FFT.fft(test_arr,n=50,axis=-1)

This results in an array of complex values but with unexpected big
coefficients...
(much higher than the original signal magnitudes)
How do I get the absolute magnitudes of the harmonics, which are much
lower than the
resulting absolute values of the coefficients?

The result should be like this:

1.harmonic (50 Hz)		1,0
2.harmonic (100 Hz)	0,01
3.harmonic (100 Hz)	0,08
4.harmonic (100 Hz)	0,0035
etc.

at the moment I get a resulting array like:

CH1
(1729.80103418+0j)
(366.689810532+19.5196963754j)
(370.688444025+32.162562652j)
(372.122246668+46.9545880507j)
(379.273599053+59.0724599622j)
(369.889589421+75.9247281559j)
(381.070551892+99.07345873j)
(378.800462354+106.761629308j)
(375.014128346+131.34177586j)
(389.110601354+149.320740829j)
(389.23247472+158.909042086j)
(398.875237165+197.86980788j)
(397.927158223+196.858459101j)
(402.455325066+234.651276425j)
(411.599088579+256.32156894j)
(414.469935576+254.512014918j)
(417.198515262+291.400509132j)
(426.745545674+320.769421334j)
(433.987466212+321.929780157j)
(446.124386798+350.810581686j)
(455.876025379+383.099789898j)
(458.083277747+405.592129477j)
(470.908512117+433.929598454j)
(482.083855098+468.256188814j)

What does it mean to me? How do I get to the wanted frequenca spectrum???
..

btw The maximum magnitudes of the original data are app. 70 peak