Danke dir erstmal wie immer
Ich habe es so gemacht.. mit einer anderen FFT die funktioniert sorry.
Delphi-Quellcode:
procedure TSpectrum.FFT(
var Dat:
array of TComplex);
var
tp:
array of TComplex;
i: integer;
sr: Extended;
begin
SetLength(
tp, FFFTSize);
for i := 0
to FFFTSize - 1
do
begin
tp[i].re := Dat[i].re;
tp[i].im := Dat[i].im;
end;
ForwardFFT(Dat,
tp, FFFTSize);
if FView = 0
then
sr := (4096 * FGain) / FFFTSize
else
sr := 1 / FFFTSize;
for i := 0
to (FFFTSize
div 2) - 1
do
begin
Dat[i].re :=
tp[i].re * sr;
Dat[i].im :=
tp[i].im * sr;
end;
end;
Zitat:
Und falls du View nicht in FFT einbaust, dann musst du für View=0 die Spektren mit dem Faktor scale (Code unten) skalieren:
View ist nötig weil ich hier den Effekt umschalte zwischen Ring und Sector. Ohne funktioniert Rings nicht.
Ich kann deine FFT gerne nochmal gegentesten mit deiner Änderung.
gruss