next up previous contents
Nächste Seite: 9.9 Unit KoherU Aufwärts: 9. Programmlisting Vorherige Seite: 9.7 Unit FFTU   Inhalt

9.8 Unit XFFT


{-------------------------------------------------------------------}

{ Eindimensionale Fast Fourier Transformation mit Coprozessor }
unit XFFT;

{$N+,E+}

{ Achtung : die Unit XFFT benoetigt waehrend der Kompilation die
            Datei FASM.OBJ ! }

{-------------------------------------------------------------------}

interface

uses
  Glob;      { Globale Deklarationen }

{-------------------------------------------------------------------}

procedure CoSiTab(n : integer); { Muss vor dem ersten Aufruf von
                                  FFTAsm aufgerufen werden ! }
procedure FFTAsm(var xr, xi : Realarray; n, nu : integer;
          hin : boolean);

{-------------------------------------------------------------------}

implementation

var
  CosTab : array [0..nmax - 1] of single;
  SinTab : array [0..nmax - 1] of single;

{-------------------------------------------------------------------}

procedure CoSiTab(n : integer);

var
  i : integer;
  s : single;

begin
  s := 2 * Pi / n;
  for i := 0 to n - 1 do
  begin
    SinTab[i] := sin(s * i);
    CosTab[i] := cos(s * i);
  end;
end; { CoSiTab }

{-------------------------------------------------------------------}

procedure FFTAsm(var xr, xi : Realarray; n, nu : integer;
          hin : boolean); external;

{$L FASM}

{-------------------------------------------------------------------}

end. { XFFT }

{-------------------------------------------------------------------}

next up previous contents
Nächste Seite: 9.9 Unit KoherU Aufwärts: 9. Programmlisting Vorherige Seite: 9.7 Unit FFTU   Inhalt
Udo Becker
2000-01-02