|
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 |