Soft bits in large constellations I am working on a soft iterative receiver for an M-ary modulation.
Since my constellations, M=2⁷ — M=2¹², are rather big, the log likelihood ratios also become large.
Is there a way to compress these values to a smaller range, e.g. from [-100, 100] to [-10,10]?
Momentarily, I am rescaling the values to fit them in my desired range. However, the actual confidence levels don't make sense then anymore.
== Edit ==
To calculate the soft-outputs of my decoder, I first convert the soft-inputs into probabilities by,
$$
P = \frac{e^{LLR_{in}}}{1 + e^{LLR_{in}}}
$$
As can be seen from this equation, large LLRs will be approximately 1. However if this happens, my decoder takes wrong decisions and calculates wrong soft-outputs. Therefore I am searching for a way to deacrease the magnitudes of the input LLRs.
The MATLAB rescale() function isn't the optimal solution, since it does introduce errors with the iterations.
It depends on your decoder; for example, in message-passing decoders, most commonly, a prefactor doesn't affect the results at all, so you can scale to your heart's delight.
It's also common to just clip – whether a bit has a LLR of -100 or -90 doesn't really matter, does it.

However, the actual confidence levels don't make sense then anymore.

Well, you'd have to transform them, too. Notice that scaling LLRs makes sense in a Gaussian noise setting, as LLR involves taking the logarithm of a $ e^{-a|x-x_i|^2}$ function, so you're left with something rather sensible (scaling the LLR just scales $a$, which is common to all samples and constellation points). I don't know how your noise looks or how you arrive at confidence levels, but try to apply the logarithm to a ratio of confidences and see whether scaling the LLR preserves sensibility.