nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
convcoding.hpp
Go to the documentation of this file.
1
3// toolboxes/comm/include/nk/comm/coding/convcoding.hpp
4//
5// Convolutional coding — Error Correction Codes section of the
6// Communications Toolbox: poly2trellis (and, as they land, istrellis /
7// convenc / vitdec).
8
9#pragma once
10
11#include <memory_resource>
12#include <nk/value/value.hpp>
13
14namespace nk::comm {
15
18
19
48Value poly2trellis(const Value &constraintLength, const Value &codeGenerator,
49 std::pmr::memory_resource *mr = nullptr);
50
67Value convenc(const Value &msg, const Value &trellis,
68 std::pmr::memory_resource *mr = nullptr);
69
97Value vitdec(const Value &code, const Value &trellis, long long tblen,
98 const std::string &opmode = "trunc",
99 const std::string &dectype = "hard",
100 std::pmr::memory_resource *mr = nullptr);
101
115Value istrellis(const Value &S, std::pmr::memory_resource *mr = nullptr);
116
117
119} // namespace nk::comm
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value vitdec(const Value &code, const Value &trellis, long long tblen, const std::string &opmode="trunc", const std::string &dectype="hard", std::pmr::memory_resource *mr=nullptr)
Viterbi-decode a convolutional code (msg = vitdec(code, trellis, tblen, opmode, dectype)).
Value convenc(const Value &msg, const Value &trellis, std::pmr::memory_resource *mr=nullptr)
Convolutionally encode a bit stream (code = convenc(msg, trellis)).
Value poly2trellis(const Value &constraintLength, const Value &codeGenerator, std::pmr::memory_resource *mr=nullptr)
Convolutional-code trellis from polynomial generators (trellis = poly2trellis(ConstraintLength,...
Value istrellis(const Value &S, std::pmr::memory_resource *mr=nullptr)
Validate a trellis structure (tf = istrellis(S)).