Цитата(GeGeL @ Apr 11 2015, 20:16)

Запутался с вычислением LLR.
Демодулирую двухбитный символ: бит 0 кодирует сдвиг (форму), бит 1 - полярность символа. Коррелирую с двумя паттернами (по форме), получаю r0 и r1 (-1 ... +1). Как корректно вычислить LLR отдельно для битов 0 и 1 перед подачей на мягкий BCH?
Судя по коду eCall-модема, для бита 0 r0, r1 просто суммируются, а для бита 1 от r0, r1 вычисляется якобиан логарифм. Подскажите, пожалуйста, на сколько это корректно в описанном случае?
Глянул краем глаза в код eCall (http://www.etsi.org/deliver/etsi_ts/126200_126299/126268/12.00.00_60/ts_126268v120000p0.zip):
То, что там называется JacLog, является вычислением логарифма от суммы экспонент, известным как MAX*:
ln(exp(x) + exp(y)) = max(x,y) + ln(1+exp(-abs(x-y)))
Для второго слагаемого используется table lookup.
Для каждого из 3х бит, которые требуется демодулировать (функция SymbolDemod), считается логарифм от отношения двух сумм вероятностей. Первая сумма - сумма апостериорных вероятностей тех символов, где этот бит равен 1, вторая - сумма ап. вероятностей тех символов, где этот бит равен 0. Это из-за того, что вероятность передачи единицы равна сумме вероятностей передачи всех символов, у которых данный бит 1. Аналогично с 0.
Вычисления происходят в логарифмической области - считают сразу логарифм от суммы, при это используют тот факт, что
ln(P1+P2 + P3) = ln(exp(ln(P1+P2)) +P3), что позволяет применять формулу для суммы экспонент рекурсивно.
Ну и да, аппостериорная вероятность символа в канале с AWGN равна K*exp(r/B) - здесь r - корреляция символа и принятой последовательности. K, B - некие константы, одинаковые для всех символов при фикс. уровне шума в канале. В коде 1/B связана с FEC_VAR, ln(K) связан с FEC_MEAN.