From 47dae3c2302f6a992d9de952808f0be10923dd3a Mon Sep 17 00:00:00 2001 From: Wojciech Kaczmarski Date: Sun, 14 Jan 2024 18:05:07 +0100 Subject: [PATCH] added soft bit (de)randomizer too --- SP5WWP/include/m17/m17.h | 1 + SP5WWP/lib/phy/randomize.c | 16 ++++++++++++++++ SP5WWP/m17-decoder/m17-decoder-sym.c | 6 +----- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/SP5WWP/include/m17/m17.h b/SP5WWP/include/m17/m17.h index ab99e75..3a4a189 100644 --- a/SP5WWP/include/m17/m17.h +++ b/SP5WWP/include/m17/m17.h @@ -103,6 +103,7 @@ void soft_XOR(uint16_t* out, const uint16_t* a, const uint16_t* b, const uint8_t extern const uint8_t rand_seq[46]; void randomize_bits(uint8_t inp[SYM_PER_PLD*2]); +void randomize_soft_bits(uint16_t inp[SYM_PER_PLD*2]); // M17 C library - lib/phy/slice.c void slice_symbols(uint16_t out[2*SYM_PER_PLD], const float inp[SYM_PER_PLD]); diff --git a/SP5WWP/lib/phy/randomize.c b/SP5WWP/lib/phy/randomize.c index 708c027..e46a0d3 100644 --- a/SP5WWP/lib/phy/randomize.c +++ b/SP5WWP/lib/phy/randomize.c @@ -31,3 +31,19 @@ void randomize_bits(uint8_t inp[SYM_PER_PLD*2]) } } } + +/** + * @brief Randomize type-4 unpacked bits. + * + * @param inp Input 368 soft type-4 bits. + */ +void randomize_soft_bits(uint16_t inp[SYM_PER_PLD*2]) +{ + for(uint16_t i=0; i>(7-(i%8)))&1) //flip bit if '1' + { + inp[i]=soft_bit_NOT(inp[i]); + } + } +} diff --git a/SP5WWP/m17-decoder/m17-decoder-sym.c b/SP5WWP/m17-decoder/m17-decoder-sym.c index 327b0d4..683e149 100644 --- a/SP5WWP/m17-decoder/m17-decoder-sym.c +++ b/SP5WWP/m17-decoder/m17-decoder-sym.c @@ -82,11 +82,7 @@ int main(void) slice_symbols(soft_bit, pld); //derandomize - for(uint16_t i=0; i>(7-(i%8)))&1) //soft NOT. flip soft bit if "1" - soft_bit[i]=soft_bit_NOT(soft_bit[i]); - } + randomize_soft_bits(soft_bit); //deinterleave reorder_soft_bits(d_soft_bit, soft_bit);