Zitat von
Teekeks:
schau dir power() an.
ps: dein Beispiel ist aber auch sinnig ^^
[edit]zuspät
[/edit]
Hmm hier der ganze code
Denke aber nicht das du damit was anfangen kannst oder doch ?
Ist aus einem Vis Plugin was ich mal in Vb geschrieben habe.
Delphi-Quellcode:
Procedure XFFT(FR:
array of Single; FI:
array of Single; Sign: Integer);
//' Smooth The Wave Data.
var
Q, J, M, l, le, le1,
ip : Integer;
tr, ti, s, ur, ur1, ui, wr, wi : Single;
begin
J := 1;
For Q := 1
To 255
do
begin
If Q < J
Then
begin
s := FR[Q];
FR[Q] := FR[J];
FR[J] := s;
s := FI[Q];
FI[Q] := FI[J];
FI[J] := s;
end;
M := 128;
While M < J
do
begin
J := J - M;
M := M
div 2;
end;
J := J + M;
end;
For l := 1
To 8
do
begin
le := 2 ^ l;
//>>>>> problem
le1 := le
div 2;
ur := 1;
ui := 0;
wr := Cos(PI / le1);
wi := Sign * Sin(PI / le1);
For J := 1
To le1
do
begin
Q := J;
While Q <= 256
do
begin
ip := Q + le1;
tr := FR[
ip] * ur - FI[
ip] * ui;
ti := FR[
ip] * ui + FI[
ip] * ur;
FR[
ip] := FR[Q] - tr;
FI[
ip] := FI[Q] - ti;
FR[Q] := FR[Q] + tr;
FI[Q] := FI[Q] + ti;
Q := Q + le;
end;
ur1 := ur * wr - ui * wi;
ui := ur * wi + ui * wr;
ur := ur1;
end;
end;
For Q := 1
To 256
do
begin
FR[Q] := FR[Q] * DivN;
FI[Q] := FI[Q] * DivN;
end;
end;
EDIT:
Jetzt meldet er wieder
Zitat:
le := Power(2, l);
[Pascal Error] uDraw.pas(287): E2010 Incompatible types: 'Integer' and 'Single'
gruss Emil