| jabcode
    | 
LDPC encoder and decoder. More...
#include <stdlib.h>#include <math.h>#include "jabcode.h"#include "ldpc.h"#include <string.h>#include <stdio.h>#include "detector.h"#include "pseudo_random.h"| Functions | |
| jab_int32 * | createMatrixA (jab_int32 wc, jab_int32 wr, jab_int32 capacity) | 
| Create matrix A for message data.  More... | |
| jab_int32 | GaussJordan (jab_int32 *matrixA, jab_int32 wc, jab_int32 wr, jab_int32 capacity, jab_int32 *matrix_rank, jab_boolean encode) | 
| Gauss Jordan elimination algorithm.  More... | |
| jab_int32 * | createMetadataMatrixA (jab_int32 wc, jab_int32 capacity) | 
| Create the error correction matrix for the metadata.  More... | |
| jab_int32 * | createGeneratorMatrix (jab_int32 *matrixA, jab_int32 capacity, jab_int32 Pn) | 
| Create the generator matrix to encode messages.  More... | |
| jab_data * | encodeLDPC (jab_data *data, jab_int32 *coderate_params) | 
| LDPC encoding.  More... | |
| jab_int32 | decodeMessage (jab_byte *data, jab_int32 *matrix, jab_int32 length, jab_int32 height, jab_int32 max_iter, jab_boolean *is_correct, jab_int32 start_pos) | 
| Iterative hard decision error correction decoder.  More... | |
| jab_int32 | decodeLDPChd (jab_byte *data, jab_int32 length, jab_int32 wc, jab_int32 wr) | 
| LDPC decoding to perform hard decision.  More... | |
| jab_int32 | decodeMessageILL (jab_float *enc, jab_int32 *matrix, jab_int32 length, jab_int32 checkbits, jab_int32 height, jab_int32 max_iter, jab_boolean *is_correct, jab_int32 start_pos, jab_byte *dec) | 
| LDPC Iterative Log Likelihood decoding algorithm for binary codes.  More... | |
| jab_int32 | decodeMessageBP (jab_float *enc, jab_int32 *matrix, jab_int32 length, jab_int32 checkbits, jab_int32 height, jab_int32 max_iter, jab_boolean *is_correct, jab_int32 start_pos, jab_byte *dec) | 
| LDPC Iterative belief propagation decoding algorithm for binary codes.  More... | |
| jab_int32 | decodeLDPC (jab_float *enc, jab_int32 length, jab_int32 wc, jab_int32 wr, jab_byte *dec) | 
| LDPC decoding to performe soft decision.  More... | |
LDPC encoder and decoder.
libjabcode - JABCode Encoding/Decoding Library
Copyright 2016 by Fraunhofer SIT. All rights reserved. See LICENSE file for full terms of use and distribution.
Contact: Huajian Liu liu@sit.fraunhofer.de Waldemar Berchtold waldemar.berchtold@sit.fraunhofer.de
| jab_int32* createGeneratorMatrix | ( | jab_int32 * | matrixA, | 
| jab_int32 | capacity, | ||
| jab_int32 | Pn | ||
| ) | 
Create the generator matrix to encode messages.
| matrixA | the error correction matrix | 
| capacity | the number of columns of the matrix | 
| Pn | the number of net message bits | 
| jab_int32* createMatrixA | ( | jab_int32 | wc, | 
| jab_int32 | wr, | ||
| jab_int32 | capacity | ||
| ) | 
Create matrix A for message data.
| wc | the number of '1's in a column | 
| wr | the number of '1's in a row | 
| capacity | the number of columns of the matrix | 
| jab_int32* createMetadataMatrixA | ( | jab_int32 | wc, | 
| jab_int32 | capacity | ||
| ) | 
Create the error correction matrix for the metadata.
| wc | the number of '1's in a column | 
| capacity | the number of columns of the matrix | 
| jab_int32 decodeLDPC | ( | jab_float * | enc, | 
| jab_int32 | length, | ||
| jab_int32 | wc, | ||
| jab_int32 | wr, | ||
| jab_byte * | dec | ||
| ) | 
LDPC decoding to performe soft decision.
| enc | the probability value for each bit position | 
| length | the encoded data length | 
| wc | the number of '1's in each column | 
| wr | the number of '1's in each row | 
| dec | the decoded data | 
| jab_int32 decodeLDPChd | ( | jab_byte * | data, | 
| jab_int32 | length, | ||
| jab_int32 | wc, | ||
| jab_int32 | wr | ||
| ) | 
LDPC decoding to perform hard decision.
| data | the encoded data | 
| length | the encoded data length | 
| wc | the number of '1's in a column | 
| wr | the number of '1's in a row | 
| jab_int32 decodeMessage | ( | jab_byte * | data, | 
| jab_int32 * | matrix, | ||
| jab_int32 | length, | ||
| jab_int32 | height, | ||
| jab_int32 | max_iter, | ||
| jab_boolean * | is_correct, | ||
| jab_int32 | start_pos | ||
| ) | 
Iterative hard decision error correction decoder.
| data | the received data | 
| matrix | the parity check matrix | 
| length | the encoded data length | 
| height | the number of check bits | 
| max_iter | the maximal number of iterations | 
| is_correct | indicating if decodedMessage function could correct all errors | 
| start_pos | indicating the position to start reading in data array | 
| jab_int32 decodeMessageBP | ( | jab_float * | enc, | 
| jab_int32 * | matrix, | ||
| jab_int32 | length, | ||
| jab_int32 | checkbits, | ||
| jab_int32 | height, | ||
| jab_int32 | max_iter, | ||
| jab_boolean * | is_correct, | ||
| jab_int32 | start_pos, | ||
| jab_byte * | dec | ||
| ) | 
LDPC Iterative belief propagation decoding algorithm for binary codes.
| enc | the received reliability value for each bit | 
| matrix | the decoding matrixreliability value for each bit | 
| length | the encoded data length | 
| checkbits | the rank of the matrix | 
| height | the number of check bits | 
| max_iter | the maximal number of iterations | 
| is_correct | indicating if decodedMessage function could correct all errors | 
| start_pos | indicating the position to start reading in enc array | 
| dec | is the tentative decision after each decoding iteration | 
| jab_int32 decodeMessageILL | ( | jab_float * | enc, | 
| jab_int32 * | matrix, | ||
| jab_int32 | length, | ||
| jab_int32 | checkbits, | ||
| jab_int32 | height, | ||
| jab_int32 | max_iter, | ||
| jab_boolean * | is_correct, | ||
| jab_int32 | start_pos, | ||
| jab_byte * | dec | ||
| ) | 
LDPC Iterative Log Likelihood decoding algorithm for binary codes.
| enc | the received reliability value for each bit | 
| matrix | the error correction decoding matrix | 
| length | the encoded data length | 
| checkbits | the rank of the matrix | 
| height | the number of check bits | 
| max_iter | the maximal number of iterations | 
| is_correct | indicating if decodedMessage function could correct all errors | 
| start_pos | indicating the position to start reading in enc array | 
| dec | is the tentative decision after each decoding iteration | 
LDPC encoding.
| data | the data to be encoded | 
| coderate_params | the two code rate parameter wc and wr indicating how many '1' in a column (Wc) and how many '1' in a row of the parity check matrix | 
| jab_int32 GaussJordan | ( | jab_int32 * | matrixA, | 
| jab_int32 | wc, | ||
| jab_int32 | wr, | ||
| jab_int32 | capacity, | ||
| jab_int32 * | matrix_rank, | ||
| jab_boolean | encode | ||
| ) | 
Gauss Jordan elimination algorithm.
| matrixA | the matrix | 
| wc | the number of '1's in a column | 
| wr | the number of '1's in a row | 
| capacity | the number of columns of the matrix | 
| matrix_rank | the rank of the matrix | 
| encode | specifies if function is called by the encoder or decoder |