From 7de69fbdc2d540f7ca88878aac23506d7dff4db5 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Fri, 22 Mar 2013 22:36:24 +0000 Subject: [PATCH] added error counting to golay git-svn-id: https://svn.code.sf.net/p/freetel/code@1222 01035d8c-6547-0410-b346-abe4f91aad63 --- codec2-dev/src/golay23.c | 15 +++++++++++++++ codec2-dev/src/golay23.h | 1 + 2 files changed, 16 insertions(+) diff --git a/codec2-dev/src/golay23.c b/codec2-dev/src/golay23.c index e325786a..84d4c281 100644 --- a/codec2-dev/src/golay23.c +++ b/codec2-dev/src/golay23.c @@ -267,6 +267,21 @@ int golay23_decode(int received_codeword) { return received_codeword ^= decoding_table[get_syndrome(received_codeword)]; } +int golay23_count_errors(int recd_codeword, int corrected_codeword) +{ + int errors = 0; + int diff, i; + + diff = recd_codeword ^ corrected_codeword; + for(i=0; i<23; i++) { + if (diff & 0x1) + errors++; + diff >>= 1; + } + + return errors; +} + #ifdef GOLAY23_UNITTEST static int golay23_test(int error_pattern) { diff --git a/codec2-dev/src/golay23.h b/codec2-dev/src/golay23.h index 8ea6f80e..a916d29f 100644 --- a/codec2-dev/src/golay23.h +++ b/codec2-dev/src/golay23.h @@ -35,6 +35,7 @@ extern "C" { void golay23_init(void); int golay23_encode(int data); int golay23_decode(int received_codeword); +int golay23_count_errors(int recd_codeword, int corrected_codeword); #ifdef __cplusplus } -- 2.25.1