Forum: Digitale Signalverarbeitung / DSP / Machine Learning Logarithmus von 0


von max .. (vbc2011)


Lesenswert?

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
von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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).

von A. S. (rava)


Lesenswert?

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

von max .. (vbc2011)


Lesenswert?

ja - sowas habe ich mir auch gedacht - also einfach das "minimum" 
ausgeben. dies ist also - ein bekanntes problem :)

von ruediba (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.