GNU Radio Manual and C++ API Reference  3.7.9.2
The Free & Open Software Radio Ecosystem
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
maxstar.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2015 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * GNU Radio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3, or (at your option)
10  * any later version.
11  *
12  * GNU Radio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Radio; see the file COPYING. If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street,
20  * Boston, MA 02110-1301, USA.
21  */
22 
23 /* File maxstar.h
24 
25  Description: Performs the max* operations (Jacobian logarithm) defined as:
26  max*( x, y ) = max( x,y) + log( 1 + exp( - |x-y| ) )
27 
28  There are several versions of this function, max_starX, where "X":
29  X = 0 For linear approximation to log-MAP
30  = 1 For max-log-MAP algorithm (i.e. max*(x,y) = max(x,y) )
31  = 2 For Constant-log-MAP algorithm
32  = 3 For log-MAP, correction factor from small nonuniform table and interpolation
33  = 4 For log-MAP, correction factor uses C function calls
34 
35  Calling syntax:
36  output = max_starX( delta1, delta2 )
37 
38  Where:
39  output = The result of max*(x,y)
40 
41  delta1 = T] he first argument (i.e. x) of max*(x,y)
42  delta2 = The second argument (i.e. y) of max*(x,y)
43 
44  Functions max_star0, max_star1, max_star2, max_star3, and max_star4
45  are part of the Iterative Solutions Coded Modulation Library
46  The Iterative Solutions Coded Modulation Library is free software;
47  you can redistribute it and/or modify it under the terms of
48  the GNU Lesser General Public License as published by the
49  Free Software Foundation; either version 2.1 of the License,
50  or (at your option) any later version.
51 
52 */
53 
54 #ifndef INCLUDED_FECAPI_MAXSTAR_H
55 #define INCLUDED_FECAPI_MAXSTAR_H
56 
57 /* values for the jacobian logarithm table (DecoderType=4) */
58 #define BOUNDARY0 0
59 #define BOUNDARY1 0.4200
60 #define BOUNDARY2 0.8500
61 #define BOUNDARY3 1.3100
62 #define BOUNDARY4 1.8300
63 #define BOUNDARY5 2.4100
64 #define BOUNDARY6 3.1300
65 #define BOUNDARY7 4.0800
66 #define BOUNDARY8 5.6000
67 
68 #define SLOPE0 -0.44788139700522
69 #define SLOPE1 -0.34691145436176
70 #define SLOPE2 -0.25432579542705
71 #define SLOPE3 -0.17326680196715
72 #define SLOPE4 -0.10822110027877
73 #define SLOPE5 -0.06002650498009
74 #define SLOPE6 -0.02739265095522
75 #define SLOPE7 -0.00860202759280
76 
77 #define VALUE0 0.68954718055995
78 #define VALUE1 0.50153699381775
79 #define VALUE2 0.35256506844219
80 #define VALUE3 0.23567520254575
81 #define VALUE4 0.14607646552283
82 #define VALUE5 0.08360822736113
83 #define VALUE6 0.04088914377547
84 #define VALUE7 0.01516612536801
85 
86 /* values for the constant log-MAP algorithm (DecoderType=3) */
87 #define CVALUE 0.5
88 #define TVALUE 1.5
89 
90 /* values for the linear approximation (DecoderType=1) */
91 #define TTHRESH 2.508
92 #define AVALUE -0.236
93 #define BVALUE 0.592
94 
95 /* Values for linear approximation (DecoderType=5) */
96 #define AJIAN -0.24904163195436
97 #define TJIAN 2.50681740420944
98 
99 #endif