From d8fb14226f798c9daf948d374a982583cd4ee202 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 6 Apr 2016 16:13:00 +0200 Subject: Add ubit <-> sbit convertors Move functions for conversion between soft and unpacked bits to main library as they are generally useful. --- src/bits.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/bits.c') diff --git a/src/bits.c b/src/bits.c index a0a9d9e8..48314af4 100644 --- a/src/bits.c +++ b/src/bits.c @@ -61,6 +61,30 @@ int osmo_ubit2pbit(pbit_t *out, const ubit_t *in, unsigned int num_bits) return outptr - out; } +/*! \brief convert unpacked bits to soft bits + * \param[out] out output buffer of soft bits + * \param[in] in input buffer of unpacked bits + * \param[in] num_bits number of bits + */ +void osmo_ubit2sbit(sbit_t *out, const ubit_t *in, unsigned int num_bits) +{ + unsigned int i; + for (i = 0; i < num_bits; i++) + out[i] = in[i] ? -127 : 127; +} + +/*! \brief convert soft bits to unpacked bits + * \param[out] out output buffer of unpacked bits + * \param[in] in input buffer of soft bits + * \param[in] num_bits number of bits + */ +void osmo_sbit2ubit(ubit_t *out, const sbit_t *in, unsigned int num_bits) +{ + unsigned int i; + for (i = 0; i < num_bits; i++) + out[i] = in[i] < 0; +} + /*! \brief convert packed bits to unpacked bits, return length in bytes * \param[out] out output buffer of unpacked bits * \param[in] in input buffer of packed bits -- cgit v1.2.3