GNU Radio Manual and C++ API Reference 3.8.5.0
The Free & Open Software Radio Ecosystem
 
Loading...
Searching...
No Matches
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
33 interpolation = 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