Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#5

Re: Das hoch zeichen

  Alt 22. Apr 2009, 18:33
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
  Mit Zitat antworten Zitat