f4exb / dsdcc

Digital Speech Decoder (DSD) rewritten as a C++ library
286 stars 60 forks source link

Golay(24,12) decodong error #41

Closed com1313 closed 3 years ago

com1313 commented 3 years ago

Hello! I founded, thay golay(24,12) doesn't correct errors, if error occur in the integrity bits. Example 1: 12 data bits / 12 integrity bits. Add 3 error in data[0], data[1], data[2] -> correcct all 3 errors. Example 2: 12 data bits / 12 integrity bits. Add 3 error in data[0], data[1], integrity[0] -> doesn't correcct.

f4exb commented 3 years ago

It looks like there is an issue with the syndrome look up table because it covers only bit flips occurring in the message part. The issue possibly extends to codes based on the same algorithm.

f4exb commented 3 years ago

Other codes affected:

All codes in fec.cpp are based on syndrome LUT and are affected.

f4exb commented 3 years ago

YSF, DMR and dPMR are affected and could benefit from the fix.

f4exb commented 3 years ago

Implemented in v1.9.1