overflow issues with SNR calcs
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 16 Jun 2015 06:03:22 +0000 (06:03 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 16 Jun 2015 06:03:22 +0000 (06:03 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2196 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/src/cohpsk.c

index 65ed6f537fcace7a8ef20b9e2b08c3ec57bc6b46..a8ec0c227eaecde979a7e9b2b1a31e44a4df91b4 100644 (file)
@@ -1108,7 +1108,8 @@ void cohpsk_get_demod_stats(struct COHPSK *coh, struct MODEM_STATS *stats)
 
     stats->Nc = COHPSK_NC*ND;
     assert(stats->Nc <= MODEM_STATS_NC_MAX);
-    stats->snr_est = 20*log10(coh->sig_rms/(coh->noise_rms+1E-6));
+    stats->snr_est = 20*log10((coh->sig_rms+1E-6)/(coh->noise_rms+1E-6)) - 10*log10(3000.0/700.0);
+    //fprintf(stderr, "sig_rms: %f noise_rms: %f snr_est: %f\n", coh->sig_rms, coh->noise_rms, stats->snr_est);
     stats->sync = coh->sync;
     stats->foff = coh->f_est;
     stats->rx_timing = coh->rx_timing;