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.