sorry but i am back again with this topic... first i want to thank you all for some nice links and your help... my main problem is to read/understand and convert this crypted-looked math symbols. (sadly my best friend and me cant read them like following graphic

)
However, until now we did not managed to code an own FFT nor to understand how does it work, because readable basic sources like VB-Sources are using silly variable-names where we dont know what they stand for and whats going on in the procedure.
I have to thanks JIM, who showed me a C/CPP source for DFT, i tried to convert to PB but we still have even problems with this DFT source. here is what i have (DFT instead needed (fast and small FFT) ^^
Type : fourier transform
References : Posted by Andy Mucho
Code :
AnalyseWaveform(float *waveform, int framesize)
{
float aa[MaxPartials];
float bb[MaxPartials];
for(int i=0;i<partials;i++)
{
aa[i]=0;
bb[i]=0;
}
int hfs=framesize/2;
float pd=pi/hfs;
for (i=0;i<framesize;i++)
{
float w=waveform[i];
int im = i-hfs;
for(int h=0;h<partials;h++)
{
float th=(pd*(h+1))*im;
aa[h]+=w*cos(th);
bb[h]+=w*sin(th);
}
}
for (int h=0;h<partials;h++)
amp[h]= sqrt(aa[h]*aa[h]+bb[h]*bb[h])/hfs;
}
Type : fourier transform
References : Posted by Andy Mucho
PB conversion: Mr.Vain / Secretly!
Code :
Procedure AnalyseWaveform( *waveform.f, framesize.l )
aa.f ( MaxPartials )
bb.f ( MaxPartials )
For i = 0 To partials
aa(i) = 0
bb(i) = 0
Next
hfs.l = framesize/2
pd.f = #Pi/hfs
For i = 0 to framzesize
w.f = waveform( i )
im.l = i-hfs
For h = 0 To partials
th.f = (pd*(h+1))*im
aa( h ) = aa( h ) + w*Cos( th )
bb( h ) = aa( h ) + w*Sin( th )
Next
Next
For h = 0 to partials
amp( h ) = Sqr( aa(h)*aa(h)+bb(h)*bb(h) ) /hfs
Next
EndProcedure
I hope i converted the source correctly to PB. Now lets have a look to the sources and try to explain following *confusing* things, we dont understand pls ^^
a)
There is the variable named MaxPartials, but what is it for and what value does it must have?
aa.f ( MaxPartials )
bb.f ( MaxPartials )
b)
Why does we must fill aa(i) and bb(i) with 0? If they will be initialized the first time, they will be always 0. Seems to me, its useless code that can be removed...?
For i = 0 To partials
aa(i) = 0
bb(i) = 0
Next
c)
What does the procedure should return, as it can only return one value each call...
Does someone have an own or know a very fast and very small FFT *.lib? Credits will be given! Thanks!