JS8Call-Improved master
Loading...
Searching...
No Matches
ldpc_feedback.h File Reference

LDPC erasure threshold configuration and feedback helpers. More...

#include <QDebug>
#include <QLoggingCategory>
#include <QtGlobal>
#include <algorithm>
#include <array>
#include <cmath>
#include <cstdint>
#include <cstdlib>
#include <optional>
Include dependency graph for ldpc_feedback.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  js8
 JS8 namespace for Kalman filter-based trackers.

Functions

 Q_DECLARE_LOGGING_CATEGORY (decoder_js8)
float js8::llrErasureThreshold ()
 Read configured LLR erasure threshold.
bool js8::ldpcFeedbackEnabled ()
 Whether LDPC feedback is enabled.
int js8::ldpcFeedbackMaxPasses ()
 Maximum LDPC feedback passes to attempt.
template<std::size_t N>
void js8::refineLlrsWithLdpcFeedback (std::array< float, N > const &llrIn, std::array< int8_t, N > const &cw, float erasureThreshold, std::array< float, N > &llrOut, int &confidentCount, int &uncertainCount)
 Refine LLRs using a decoded LDPC codeword as feedback.

Variables

constexpr float js8::LLR_ERASURE_THRESHOLD_DEFAULT = 0.25f
 LDPC erasure threshold config and feedback refinement helpers.
constexpr float js8::LLR_FEEDBACK_CONFIDENT_MIN = 3.0f
constexpr float js8::LLR_FEEDBACK_UNCERTAIN_MAX = 1.0f
constexpr float js8::LLR_FEEDBACK_CONFIDENT_BOOST = 1.2f
constexpr float js8::LLR_FEEDBACK_UNCERTAIN_SHRINK = 0.5f
constexpr float js8::LLR_FEEDBACK_MAX_MAG = 6.0f
constexpr int js8::LDPC_FEEDBACK_MAX_PASSES_DEFAULT = 8

Detailed Description

LDPC erasure threshold configuration and feedback helpers.

This header exposes configuration points (environment-variable overrides) and a small helper that refines log-likelihood ratios (LLRs) using a candidate decoded codeword. The refinement routine is intended to be run between LDPC decoder passes: it boosts LLR magnitudes for bits that match the decoded codeword confidently and shrinks or erases uncertain bits so that subsequent LDPC passes can converge more easily.