diff --git a/lib/bs412.c b/lib/bs412.c index 830963e..100757d 100644 --- a/lib/bs412.c +++ b/lib/bs412.c @@ -11,8 +11,12 @@ float measure_mpx(MPXPowerMeasurement* mpx, int deviation) { mpx->i++; float modulation_power = mpx->sample/mpx->i; if (mpx->i >= mpx->sample_rate) { - mpx->sample = 0.0f; + mpx->sample = modulation_power; mpx->i = 0; } return modulation_power; +} + +float dbr_to_deviation(float dbr) { + return 19000.0f * powf(10.0f, dbr / 10.0f); } \ No newline at end of file diff --git a/lib/bs412.h b/lib/bs412.h index 6338bbe..2167f55 100644 --- a/lib/bs412.h +++ b/lib/bs412.h @@ -11,3 +11,5 @@ typedef struct void init_modulation_power_measure(MPXPowerMeasurement *mpx, int sample_rate); float measure_mpx(MPXPowerMeasurement *mpx, int deviation); + +float dbr_to_deviation(float dbr);