Hallo, in meinem Programm führe ich eine FFT-Analyse durch. Das Ergebnis wird logarithmisch skaliert. Ich erhalte als Ergebnis in manchen Fällen einen 0-Peak als Ergebnis in meiner FFT. Das ist ja durchaus möglich - da fuer diese Frequenz nicht unbedingt ein Peak vorhanden sein muss ! ! Nun meine Frage - da der log von 0 ja nicht definiert ist - möchte ich aber an dieser Stelle nicht einfach meine ganze FFT "wegschmeisen" - wie wird da allg. verfahren ? Gibt es eine gängige Lösung für ? ? Gruss
:
Verschoben durch Admin
Der Logarithmus geht bei +0 gegen -unendlich. Das kannst du bei Float direkt so darstellen (-INFINITY in C, oder einfach log(0)), oder bei Integer indem du die niedrigste darstellbare Zahl zurückgibst (z.B. -32768 bei 16 Bit).
Gibt's auch an logarithmischen Lautstärkereglern. Da steht einfach "minus unendlich" - die Frage ist nur, wie du das in deiner Software darstellst. Das hängt von der Software ab :P
ja - sowas habe ich mir auch gedacht - also einfach das "minimum" ausgeben. dies ist also - ein bekanntes problem :)
Ein kleiner, wenn auch nicht ganz sauberer, Trick wäre, eine kleine positive Zahl dazu zu zählen, bevor der log gemacht wird. Dadurch landet man dann automatisch bei einer "grossen" negativen Zahl nach dem log und die minus Unendlich (die aus der Null resultieren würde) ist abgefangen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.