The forward error correction of Olivia and Contestia (as in fldigi): each character of a block of bitsPerSymbol() characters is a Walsh-Hadamard code word of 64 (Contestia: 32) bits, which is scrambled and spread diagonally over the 64 (32) symbols of the block.
More...
#include <Olivia.h>
|
| void | begin (int bits_per_symbol, bool is_contestia) |
| bool | isSkipped (uint8_t ch) const |
| void | encodeBlock (const uint8_t *chars, uint8_t *symbols) |
| | Encodes bits characters into block_len symbols (binary, not Gray coded).
|
| uint8_t | decodeChar (const int8_t *soft, int b, float &peak, float &noise) |
| int | blockLen () const |
|
| template<class T> |
| static void | fhtTransform (T *data, int len) |
| | fast Hadamard transform (fldigi FHT)
|
| template<class T> |
| static void | ifht (T *data, int len) |
| | inverse fast Hadamard transform (fldigi IFHT)
|
The forward error correction of Olivia and Contestia (as in fldigi): each character of a block of bitsPerSymbol() characters is a Walsh-Hadamard code word of 64 (Contestia: 32) bits, which is scrambled and spread diagonally over the 64 (32) symbols of the block.
- Copyright
- GPLv3
◆ begin()
| void tinymodem::OliviaCodec::begin |
( |
int | bits_per_symbol, |
|
|
bool | is_contestia ) |
|
inline |
◆ binaryCode()
| uint8_t tinymodem::OliviaCodec::binaryCode |
( |
uint8_t | gray | ) |
|
|
inlinestatic |
◆ blockLen()
| int tinymodem::OliviaCodec::blockLen |
( |
| ) |
const |
|
inline |
◆ decodeChar() [1/2]
| uint8_t tinymodem::OliviaCodec::decodeChar |
( |
const int8_t * | soft, |
|
|
int | b, |
|
|
float & | peak, |
|
|
float & | noise ) |
|
inline |
Decodes the character b from the soft bits of a block: soft[t * bits + k] is bit k of symbol t (positive = 0). Provides the correlation peak and the energy of the other correlations.
◆ decodeChar() [2/2]
| uint8_t tinymodem::OliviaCodec::decodeChar |
( |
uint8_t | ch | ) |
const |
|
inlineprotected |
◆ encodeBlock()
| void tinymodem::OliviaCodec::encodeBlock |
( |
const uint8_t * | chars, |
|
|
uint8_t * | symbols ) |
|
inline |
Encodes bits characters into block_len symbols (binary, not Gray coded).
◆ encodeChar()
| uint8_t tinymodem::OliviaCodec::encodeChar |
( |
uint8_t | ch | ) |
const |
|
inlineprotected |
◆ fhtTransform()
template<class T>
| void tinymodem::OliviaCodec::fhtTransform |
( |
T * | data, |
|
|
int | len ) |
|
inlinestaticprotected |
fast Hadamard transform (fldigi FHT)
◆ grayCode()
| uint8_t tinymodem::OliviaCodec::grayCode |
( |
uint8_t | binary | ) |
|
|
inlinestatic |
◆ ifht()
template<class T>
| void tinymodem::OliviaCodec::ifht |
( |
T * | data, |
|
|
int | len ) |
|
inlinestaticprotected |
inverse fast Hadamard transform (fldigi IFHT)
◆ isSkipped()
| bool tinymodem::OliviaCodec::isSkipped |
( |
uint8_t | ch | ) |
const |
|
inline |
true if the character is not transmitted (Contestia: '\r', which is replaced by '
')
◆ scramblingCode()
| uint64_t tinymodem::OliviaCodec::scramblingCode |
( |
| ) |
const |
|
inlineprotected |
◆ shift()
| int tinymodem::OliviaCodec::shift |
( |
| ) |
const |
|
inlineprotected |
◆ bits
| int tinymodem::OliviaCodec::bits = 5 |
|
protected |
◆ block_len
| int tinymodem::OliviaCodec::block_len = 64 |
|
protected |
◆ contestia
| bool tinymodem::OliviaCodec::contestia = false |
|
protected |
The documentation for this class was generated from the following file: