# Beginner - use FFT to display spectrum/equalizer

At first, I want to say that I'm totally beginner in DSP and I don't have enough math education to understand Fast-Fourier transformation.

I'm a programmer and I want to archieve something like this:

My example file is in 8kHz, 16-bit samples, but currently, I'm trying to do with my own raw data - one sin(x) function. I know that I need to pass N samples to FFT function, but how interpret result? As I see, FFT need some input data (N samples) and gives N output data.

How I can know where is frequency and scale it - for example - to 5 scopes like 0 - 200Hz, 200 - 400Hz etc.

Or maybe I don't understand FFT correctly? I think that I can pass some samples and get information "how much" is each frequency.

Technically, I'm using FFTW3 library.

Having said the standard disclaimer, if you perform an FFT on $N$ real data points, you will get back $N/2$ unique complex points. The basic algorithm though will assume your $N$ real points are $N$ complex points with zero imaginary parts. Many routines will thus return $N$ complex points, but the second half will be (in the case of real input) hermitian symmetric (that is, point $N/2+i$ will be the complex conjugate of point $N/2-j$).
So, start by recognizing that your result is complex numbers, not real, and you will need to at least plot the "square" ($xx^*$) or each point. If you have the real and imaginary points returned as $X_r$ and $X_i$, then you want to plot $X_r^2+X_i^2$.
So you are probably pretty close. You will want to consider a few other things: windowing your input data, and averaging your output data. To do the first, you need to perform the transform on weighted data, rather than your direct data. See http://en.wikipedia.org/wiki/Window_function for more info. You will simply hand the FFT function data of the form $W_k {x_k}$ instead of just the $x_k$ (where $k$ is the index number). This will be particularly important if you use a fractional frequency in your sin function (try it, you'll see).