decode_fullaplist updated. the decoding threshold is now adjusted in function of the number of codewords passed

This commit is contained in:
Nico Palermo/IV3NWV 2020-12-01 03:26:00 +01:00
parent cbfb6dd250
commit 5a3dd69331
2 changed files with 8 additions and 8 deletions

View File

@ -681,8 +681,7 @@ int q65_decode_fullaplist(q65_codec_ds *codec,
int k;
int nK, nN, nM;
float llh;
float maxllh = Q65_LLH_THRESHOLD-1; // set to a value less than the threshold
float llh, maxllh, llh_threshold;
int maxcw = -1; // index of the most likely codeword
const int *pCw;
@ -693,6 +692,12 @@ int q65_decode_fullaplist(q65_codec_ds *codec,
nN = q65_get_codeword_length(codec);
nM = q65_get_alphabet_size(codec);
// we adjust the llh threshold in order to mantain the
// same false decode rate independently from the size
// of the list
llh_threshold = Q65_LLH_THRESHOLD + logf(1.0f*nCodewords/3);
maxllh = llh_threshold; // at least one llh should be larger than the threshold
// compute codewords log likelihoods and find max
pCw = pCodewords; // start from the first codeword
for (k=0;k<nCodewords;k++) {
@ -719,9 +724,6 @@ int q65_decode_fullaplist(q65_codec_ds *codec,
}
// helper functions -------------------------------------------------------------
int _q65_get_message_length(const qracode *pCode)
@ -874,5 +876,3 @@ static void _q65_crc12(int *y, int *x, int sz)
y[0] = sr&0x3F;
y[1] = (sr>>6);
}

View File

@ -34,7 +34,7 @@
// Verify loglikelihood after successful decoding
#define Q65_CHECKLLH
// Max codeword list size in q65_decode_fullaplist
#define Q65_FULLAPLIST_SIZE 64
#define Q65_FULLAPLIST_SIZE 256
// maximum number of weights for the fast-fading metric evaluation
#define Q65_FASTFADING_MAXWEIGTHS 65