GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
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  * SPDX-License-Identifier: GPL-3.0-or-later
8  *
9  */
10 
11 /* File maxstar.h
12 
13  Description: Performs the max* operations (Jacobian logarithm) defined as:
14  max*( x, y ) = max( x,y) + log( 1 + exp( - |x-y| ) )
15 
16  There are several versions of this function, max_starX, where "X":
17  X = 0 For linear approximation to log-MAP
18  = 1 For max-log-MAP algorithm (i.e. max*(x,y) = max(x,y) )
19  = 2 For Constant-log-MAP algorithm
20  = 3 For log-MAP, correction factor from small nonuniform table and
21  interpolation = 4 For log-MAP, correction factor uses C function calls
22 
23  Calling syntax:
24  output = max_starX( delta1, delta2 )
25 
26  Where:
27  output = The result of max*(x,y)
28 
29  delta1 = T] he first argument (i.e. x) of max*(x,y)
30  delta2 = The second argument (i.e. y) of max*(x,y)
31 
32  Functions max_star0, max_star1, max_star2, max_star3, and max_star4
33  are part of the Iterative Solutions Coded Modulation Library
34  The Iterative Solutions Coded Modulation Library is free software;
35  you can redistribute it and/or modify it under the terms of
36  the GNU Lesser General Public License as published by the
37  Free Software Foundation; either version 2.1 of the License,
38  or (at your option) any later version.
39 
40 */
41 
42 #ifndef INCLUDED_FECAPI_MAXSTAR_H
43 #define INCLUDED_FECAPI_MAXSTAR_H
44 
45 /* values for the jacobian logarithm table (DecoderType=4) */
46 #define BOUNDARY0 0
47 #define BOUNDARY1 0.4200
48 #define BOUNDARY2 0.8500
49 #define BOUNDARY3 1.3100
50 #define BOUNDARY4 1.8300
51 #define BOUNDARY5 2.4100
52 #define BOUNDARY6 3.1300
53 #define BOUNDARY7 4.0800
54 #define BOUNDARY8 5.6000
55 
56 #define SLOPE0 -0.44788139700522
57 #define SLOPE1 -0.34691145436176
58 #define SLOPE2 -0.25432579542705
59 #define SLOPE3 -0.17326680196715
60 #define SLOPE4 -0.10822110027877
61 #define SLOPE5 -0.06002650498009
62 #define SLOPE6 -0.02739265095522
63 #define SLOPE7 -0.00860202759280
64 
65 #define VALUE0 0.68954718055995
66 #define VALUE1 0.50153699381775
67 #define VALUE2 0.35256506844219
68 #define VALUE3 0.23567520254575
69 #define VALUE4 0.14607646552283
70 #define VALUE5 0.08360822736113
71 #define VALUE6 0.04088914377547
72 #define VALUE7 0.01516612536801
73 
74 /* values for the constant log-MAP algorithm (DecoderType=3) */
75 #define CVALUE 0.5
76 #define TVALUE 1.5
77 
78 /* values for the linear approximation (DecoderType=1) */
79 #define TTHRESH 2.508
80 #define AVALUE -0.236
81 #define BVALUE 0.592
82 
83 /* Values for linear approximation (DecoderType=5) */
84 #define AJIAN -0.24904163195436
85 #define TJIAN 2.50681740420944
86 
87 #endif