Hallo zusammen,
ich habe folgendes Problem:
Es werden 2 Messsignale aufgezeichnet und ausgewertet. Unter anderem findet eine FFT statt. Diese funktioniert auch. Nun will ich eine Berechnung machen, bei der ich die Genauigkeit der Übertragungsfunktion bis 20Hz prüfe.
Hierfür habe ich ein neues Array (GenauF) definiert. In Abhängigkeit von i hat es unterschiedlich viele Werte. So weit so gut, doch leider kommt bei der Berechnung immer die Fehlermeldung "Im Project ist eine
Exception der Klasse EOverflow aufgetreten. Meldung 'Gleitkommaüberlauf'".
Kann mir jemand weiterhelfen?
Außerdem möchte ich gerne die GenauF[i] miteinander summieren. Gibt es dafür einen speziellen Befehl?
Vielen Dank im voraus...
Delphi-Quellcode:
var
DATAFFTai0, //Wert erste Kurve
DATAFFTai1, //Wert zweite Kurve
GenauF: array[0..32768] of double;
i: Integer;
fl: double;
fn: double;
NormValue: string;
begin
fl := UmrFaktorFFT;
UmrFaktorFFT := tA/Zoombereich;
fn := 19.531;
i := 1;
while (i * UmrFaktorFFT < 20) do //Prüfung nur bis 20Hz
begin
GenauF[i] := (1-(1/(fn - fl))*fl*abs(1-(DATAFFTai0[i+1]/DATAFFTai1[i+1])))*100;
//DATAFFTai[i+1] da DATAFFTai[1]=0 wegen Offset
inc(i,1);
end;
//NormValue = Summe der GenauF[i] in Abbhängigkeit von i*UmrFaktor < 20
if UmrFaktorFFT > 20 then
begin
showmessage('Zoombreich zu klein gewählt!' +#13+
'Keine Berechnung bis 20Hz möglich!')
end;
end;