Changeset 9381
- Timestamp:
- 08/23/08 12:46:04
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gnuradio/trunk/gnuradio-core/src/lib/viterbi/metrics.c
r8324 r9381 47 47 48 48 /* Logarithm base 2 */ 49 double log2(double); /* declaration seems to be missing from some math.h's */ 50 #if !defined(HAVE_LOG2) 51 #define log2(x) (log(x)*M_LOG2E) 52 #endif 49 #define gr_log2(x) (log(x)*M_LOG2E) 53 50 54 51 /* Generate log-likelihood metrics for 8-bit soft quantized channel … … 81 78 /* Prob of this value occurring for a 0-bit */ /* P(s|0) */ 82 79 p0 = normal(((0-OFFSET+0.5)/amp + 1)/noise); 83 metrics[0][0] = log2(2*p0/(p1+p0)) - bias;84 metrics[1][0] = log2(2*p1/(p1+p0)) - bias;80 metrics[0][0] = gr_log2(2*p0/(p1+p0)) - bias; 81 metrics[1][0] = gr_log2(2*p1/(p1+p0)) - bias; 85 82 86 83 for(s=1;s<255;s++){ … … 96 93 printf("P(%d|1) = %lg, P(%d|0) = %lg\n",s,p1,s,p0); 97 94 #endif 98 metrics[0][s] = log2(2*p0/(p1+p0)) - bias;99 metrics[1][s] = log2(2*p1/(p1+p0)) - bias;95 metrics[0][s] = gr_log2(2*p0/(p1+p0)) - bias; 96 metrics[1][s] = gr_log2(2*p1/(p1+p0)) - bias; 100 97 } 101 98 /* 255 is also a special value */ … … 105 102 p0 = 1 - normal(((255-OFFSET-0.5)/amp + 1)/noise); 106 103 107 metrics[0][255] = log2(2*p0/(p1+p0)) - bias;108 metrics[1][255] = log2(2*p1/(p1+p0)) - bias;104 metrics[0][255] = gr_log2(2*p0/(p1+p0)) - bias; 105 metrics[1][255] = gr_log2(2*p1/(p1+p0)) - bias; 109 106 #ifdef notdef 110 107 /* The probability of a raw symbol error is the probability
