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@s Waldemar Berchtold it.f raunh ofer .dewalde mar. berch told @sit. frau nhofe r.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 |