diff --git a/lib/bs412.c b/lib/bs412.c index b4d8fbf..422b472 100644 --- a/lib/bs412.c +++ b/lib/bs412.c @@ -5,7 +5,7 @@ float dbr_to_deviation(float dbr) { } float deviation_to_dbr(float deviation) { - return 20*log10f(deviation/19000.0f); + return 20 * log10f((deviation + 1e-6f) / 19000.0f); } void init_modulation_power_measure(MPXPowerMeasurement* mpx, int sample_rate) { @@ -14,7 +14,7 @@ void init_modulation_power_measure(MPXPowerMeasurement* mpx, int sample_rate) { mpx->sample_rate = sample_rate; } -float measure_mpx(MPXPowerMeasurement* mpx, int deviation) { +float measure_mpx(MPXPowerMeasurement* mpx, float deviation) { mpx->sample += deviation; float avg_deviation = (float)mpx->sample / mpx->i; diff --git a/lib/bs412.h b/lib/bs412.h index 047b629..eab4b63 100644 --- a/lib/bs412.h +++ b/lib/bs412.h @@ -12,4 +12,4 @@ float dbr_to_deviation(float dbr); float deviation_to_dbr(float deviation); void init_modulation_power_measure(MPXPowerMeasurement *mpx, int sample_rate); -float measure_mpx(MPXPowerMeasurement *mpx, int deviation); \ No newline at end of file +float measure_mpx(MPXPowerMeasurement *mpx, float deviation); \ No newline at end of file