|
JS8Call-Improved master
|
Compute per-tone/symbol noise medians and whiten LLRs for a JS8 frame. More...
#include <whitening_processor.h>
Classes | |
| struct | Result |
| Result of a whitening/LRR normalization pass. More... | |
Static Public Member Functions | |
| static Result | process (std::array< std::array< float, ND >, NROWS > const &s1, std::array< int, ND > const &symbolWinners, float erasureThreshold, bool debug) |
| Compute normalized LLR arrays for a single candidate frame. | |
Compute per-tone/symbol noise medians and whiten LLRs for a JS8 frame.
Given symbol magnitudes (sans Costas) and winners, produces normalized LLR0/LLR1, optionally applying noise-based whitening and erasure. Fully templated on matrix dimensions, so it stays header-only; used inside the JS8 decoder per candidate.
|
inlinestatic |
Compute normalized LLR arrays for a single candidate frame.
The template parameters describe the matrix dimensions used by the decoder: NROWS is the number of tones (rows), ND is the number of symbols (columns) and N is a helper parameter used by the decoder (kept for API parity). The input s1 is an array of NROWS rows, each containing ND magnitudes (per-symbol). For each symbol column the routine computes three LLR entries (placed into contiguous slots of llr0/llr1) and optionally applies noise whitening and erasure.
| s1 | Per-tone arrays of symbol magnitudes; index as s1[row][col]. |
| symbolWinners | For each symbol column, the index [0..NROWS-1] identifying the winning tone. |
| erasureThreshold | When > 0.0, magnitudes below this threshold (after whitening) are erased (set to zero). |
| debug | When true, emits extra debug logging about noise metrics. |