]> git.gag.com Git - debian/gnuradio/commitdiff
fix for ticket:243
authoreb <eb@221aa14e-8319-0410-a670-987f0aec2ac5>
Sat, 23 Aug 2008 18:46:04 +0000 (18:46 +0000)
committereb <eb@221aa14e-8319-0410-a670-987f0aec2ac5>
Sat, 23 Aug 2008 18:46:04 +0000 (18:46 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9381 221aa14e-8319-0410-a670-987f0aec2ac5

gnuradio-core/src/lib/viterbi/metrics.c

index 2dd4279aaacd264a82ebb491f5c73db0f4f8db60..9f958cab7682bc7fe704e5083b347b50c98343ec 100644 (file)
 #define        normal(x)       (0.5 + 0.5*erf((x)/M_SQRT2))
 
 /* Logarithm base 2 */ 
-double log2(double);           /* declaration seems to be missing from some math.h's */
-#if !defined(HAVE_LOG2)
-#define log2(x) (log(x)*M_LOG2E)
-#endif
+#define gr_log2(x) (log(x)*M_LOG2E)
 
 /* Generate log-likelihood metrics for 8-bit soft quantized channel
  * assuming AWGN and BPSK
@@ -80,8 +77,8 @@ gen_met(int mettab[2][256],   /* Metric table, [sent sym][rx symbol] */
   
   /* Prob of this value occurring for a 0-bit */       /* P(s|0) */
   p0 = normal(((0-OFFSET+0.5)/amp + 1)/noise);
-  metrics[0][0] = log2(2*p0/(p1+p0)) - bias;
-  metrics[1][0] = log2(2*p1/(p1+p0)) - bias;
+  metrics[0][0] = gr_log2(2*p0/(p1+p0)) - bias;
+  metrics[1][0] = gr_log2(2*p1/(p1+p0)) - bias;
   
   for(s=1;s<255;s++){
     /* P(s|1), prob of receiving s given 1 transmitted */
@@ -95,8 +92,8 @@ gen_met(int mettab[2][256],   /* Metric table, [sent sym][rx symbol] */
 #ifdef notdef
     printf("P(%d|1) = %lg, P(%d|0) = %lg\n",s,p1,s,p0);
 #endif
-    metrics[0][s] = log2(2*p0/(p1+p0)) - bias;
-    metrics[1][s] = log2(2*p1/(p1+p0)) - bias;
+    metrics[0][s] = gr_log2(2*p0/(p1+p0)) - bias;
+    metrics[1][s] = gr_log2(2*p1/(p1+p0)) - bias;
   }
   /* 255 is also a special value */
   /* P(s|1) */
@@ -104,8 +101,8 @@ gen_met(int mettab[2][256], /* Metric table, [sent sym][rx symbol] */
   /* P(s|0) */
   p0 = 1 - normal(((255-OFFSET-0.5)/amp + 1)/noise);
   
-  metrics[0][255] = log2(2*p0/(p1+p0)) - bias;
-  metrics[1][255] = log2(2*p1/(p1+p0)) - bias;
+  metrics[0][255] = gr_log2(2*p0/(p1+p0)) - bias;
+  metrics[1][255] = gr_log2(2*p1/(p1+p0)) - bias;
 #ifdef notdef
   /* The probability of a raw symbol error is the probability
    * that a 1-bit would be received as a sample with value