## RobProb v1.1.3

Please take a look at the RobProb source code and documentation.

RobProb provides C++ data types for both normal- and logarithmic-domain probabilities and probability ratios, which are handy for implementing Soft-In Soft-Out (SISO) decoders. More specifically, there are data types for logarithmic domain L-values and Logarithmic Likelihood Ratios (LLRs), along with their normal-domain equivalents. These data types are capable of representing infinite values (which are associated with absolute confidences) without the need for clipping at some arbitrary large value. Furthermore, this code provides IT++ vectors of these data types to store frames of LLRs, for example. Conversion functions both to and from the double and vec data types are provided to retain compatibility with existing code.

The RobProb code provides Jacobian and addition operators for use in the logarithmic domain, with approximate, lookup-table-aided and exact versions of the Jacobian operator available for use in the MaxLogMAP, LogMAP and MAP algorithims respectively, for example. The corresponding addition and multiplication operators are provided for use in the normal domain, although it should be noted that behind the scenes, all calculations are performed in the logarithmic domain to avoid the precision problems that are often associated with working in the normal domain. Furthermore, the number of Add-Compare-Select (ACS) operations performed when using these operators is automatically counted, allowing the assessment of your decoder’s computational complexity.

Functions are provided for use with EXtrinsic Information Transfer (EXIT) charts, providing the ability to generate a priori information with a particular mutual information and to measure extrinsic mutual information. The mathematic method of measuring extrinsic mutual information can be employed in both the binary and non-binary case with arbitrary source entropy. Additionally, a historgram method for measuring the extrinsic mutual information in the binary case is provided. The number of histrogram bins and their sizes are determined automatically in the RobProb code, making the use of the histogram method simple. For decoders that are not truely A Posteriori Probability (APP) decoders, such as if the MaxLogMAP or LogMAP algorithm is chosen over the MAP algorithm, the histogram method of measuring extrinsic mutual information can be more accurate than the mathematic method.

Copyright © 2008 Robert G. Maunder. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

February 2nd, 2016 at 11:24 am

Dear Rob

Have a good time, I have question about non-coherent SISO receiver (such as serially concatenated CPM) for gamma calculation! i dont know how i can modeled P(y(t)|In)??

can you help me please.

best wishes for you.

February 2nd, 2016 at 9:53 pm

Hi Hamed,

Is there a particular reference that you are looking at? It is not clear to me what you mean by CPM, gamma and P(y(t)|In).

Take care, Rob.

December 28th, 2016 at 2:48 pm

Dear Rob:

I can understand the llr, I know they are Likelihood Ratios.

I have question about the plr, and also the plr_frame, p_values,what’s that mean?

best wishes for you.

January 4th, 2017 at 9:08 am

Hi Edward,

As you know, llr = ln(P0/P1).

With this in mind, the others that you have mentioned are defined as

plr = P0/P1

p_values = [P0, P1] - it is a vector of two probabilities

plr_frame = [plr1, plr2, plr3, …] - it is a vector of plrs

Take care, Rob.