Thema: Delphi Problem bei FFT

Einzelnen Beitrag anzeigen

SunBlack

Registriert seit: 18. Mär 2008
8 Beiträge
 
Turbo Delphi für Win32
 
#31

Re: Problem bei FFT

  Alt 19. Mär 2008, 09:54
Zitat von sirius:
Eine komplexe Zahl besteht immer aus Betrag und Phasenwinkel. Den Betrag bekommst du ja hier aus dem Pythagoras. Den Winkel aus dem Tangens (Arcustangens).
Das drt Betrag die Amplitude ist, habe ich hier schon rausgelesen . Mir gehts eher um etwas anderes. Und zwar zeichnet man ja komplexe Zahlen eigentlich immer ro, dass der reele Teil die x-Achse ist und der imaginäre die y-Achse. Wie könnte man die beiden Ahcsen beschriften jetzt inhaltlich beschriften?


Aber sagt mal, bin ich blind oder ist da nicht nen Fehler im Algo drin?

Delphi-Quellcode:
function GetFrequency(Data: array of Single; SampleRate, SampleIndex,
    Samples: Integer): Integer;
var I, [color=#ff007f]n[/color], max: Integer;
    a: array of Single;
begin
  max:=0;
  if length(Data)-SampleIndex<Samples then
    raise EAccessViolation.Create('Sound index or length out of bounds.');
  setlength(a, Samples);
  for I:=0 to Samples-1 do
    a[I]:=Data[SampleIndex+I];
  dft(a);
  for I:=0 to ([color=#ff007f]n[/color] shr 1)-1 do if a[I]>a[max] then
  begin
    max:=I;
  end;
  Result:=trunc(SampleRate/Samples*max);
end;
Aber n wird nirgens gesetzt.
  Mit Zitat antworten Zitat