Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Помехоустойчивое кодирование. Учебно-методическое пособие по практическим занятиям и самостоятельной работе

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
101
где minsum – операция минимальной суммы аппроксимации [14]
( , ) sign( ) sign( ) min( , )f a b a b a b=
,
где sign – оператор получения знака числа, min – минимальное значение пары чисел.
Второй этап - пересчет значений для правого потомка по кодовому
древу, представлен на рисунке 1.13:
g(L
1:N/2
, L
1+N/2:N
, û
1:N/2
)
N/2 бита
û
1:N/2
N/2 значения
Рисунок 7 – Принятие решения для правого потомка в старшем поколении
Второй этап – принятие решения для правого потомка в старшем
поколении можно описать следующим образом:
g(a
1:M,b1:M
,û
1:N/2
) = [g(a1,b1,û1), g(a2,b2,û2), …, g(aM,bM,û
N/2
)], (1.6)
где û – жесткое решение, полученное от LLR, пересчитанных в левой ветви.
Значение û
может быть получено по знаку LLR: LLR>0 соответствует
значению бита 0 и наоборот, LLR<0 соответствует значению бита 1.
Расчёт каждой условной суммы между двумя LLR и оцененного бита в
предыдущей метрике выполняется с помощью функции
( , , ) (1 2 )g a b c b c a= + −
, (1.7)
где a – значение LLR левой ветви, b – значение LLR правой ветви.
Таким образом, если значения бита û в левой ветви 0, то а и b
складываются, а если значение û = 1, то из b вычитается a.
Следующим этапом является процедура восстановления кодового слова,
представленная на рисунке 8. Выполняется во всех итерациях, кроме последней. Этот этап эквивалентен полярной трансформации - кодированию.
102
N/2 бита в каждой
метрике
û
1
û
2
[û
1
+û
2
û
2
]
N битов
Рисунок 8 – Восстановление кодового слова
В следующей итерации эти же этапы повторяются для следующей ветви
в порядке обхода графа (порядок будет указан далее).
Приведем пример декодирования кодового слова для K=2, N=2 без
избыточности и добавления шумов (пример базовой полярной
трансформации). Пусть m = [0 1]. Поскольку избыточность не добавляется, то u=m. Тогда кодовое слово d = [u1+u2 u2] = [1 1]. Без добавления шумов LLR на входе приемника будет [-4 -4].
Тогда этап 1 алгоритма SC даст:
( 4, 4) ( 4) ( 4) min( 4 , 4) 1 ( 1) 4 4f sign sign− − = − − − − = −  − =
.
Жесткая оценка этого результата дает û
1
= 0.
Этап 2 выполняется следующим образом:
( , , ) ( 4, 4,0) (1 2 ) 4 (1 0) ( 4) 8g a b c g b c a= − − = + − = − + −  − = −
.
Жесткая оценка û
2
= 1. На этом декодирование завершается.
В случае, если эта итерация не последняя, выполнится последующее
восстановление кодового слова.
Рассмотрим пример алгоритма декодирования SC с добавлением избыточности и внесением искажений в канал связи. Пусть сообщение msg = [1 0 1], тогда u = [0 1 0 1] (первый бит заморожен), кодовое слово d = [0 0 1 1] модулируется (BPSK) и проходит через канал. В канале возникли искажения и после демодулятора были сформированы следующие значения LLR для каждого бита: LLR1 = 2.75, LLR2 = 3.5, LLR3 = - 3.3, LLR4 = -4.12, тогда r = [2.75
103
3.5 -3.3 -4.12]. Последовательность шагов алгоритма оценивания приведена на
рисунке 1.15.
Номер над каждым ребром дерева означает номер шага. На рисунке
приняты следующие обозначения: r – значения LLR поступающие на декодер, Ll – оценка LLR в левой ветви, Lr – оценка LLR в правой ветви, L1, L2, L3, L4 – оценки LLR, f – функция минимальной суммы, g – функция условной суммы,
û
1
, û2, û3, û
4
– жесткие решения декодированных бит.
r = [r
1
r
2
r
3
r4]
L
l
= [f(r
1
,r
3
), f(r
2
,r
4
)]
f(L
1
,L
2
)
g(L
1
,L
2
,û
1
)
u
1
u
2
u
3
u
4
L
r
= [g(r
1
,r
3
,û
1
+û
2
), g(r
2
,r
4
,û
2
)]
f(L
3
,L
4
)
g(L
3
,L
4
,û
3
)
û
3
û
4
û
1
û
2
1
2 3
4
5 6
Рисунок 9 – Алгоритм декодирования методом SC
Проведем декодирование при заданных параметрах. Первым этапом
проводим принятие решения по левому потомку в первой ветви (шаг 1):
Ll = [(sign(r1)∙sign(r3)∙min(|r1|,|r3|)), (sign(r2)∙sign(r4)∙min(|r2|,|r4|))] =
= [(sign(2.75)∙sign(-3.3)∙min(|2.75|,|-3.3|)), (sign(3.5)∙sign(-4.12)∙min(|3.5|,|-
-4.12|))] = [-2.75 -3.5]
После оценки первого потомка, проводится принятие решения о
следующих двух потомках, так же начинаем расчёт с левой метрики (шаг 2):
f = sign(L1)∙sign(L2)∙min(|L1|,|L2|) = sign(-2.75)∙sign(-3.5)∙min(|-2.75|,|-3.5|)=
= 2.75
На этом этапе можно сформировать жесткое решение для первого
декодированного бита û
1
= 0.
104
Далее по полученному результату в левой метрике, проводится оценка
правой (шаг 3):
g = L2 + (1 – 2∙û1)∙L1 = -3.5 + (1 – 2∙0)∙-2.75 = -6.25
Полученное значение имеет отрицательный знак, следовательно, оценка
û
2
= 1.
Пройдя левый путь и получив два декодированных бита приступаем к
обходу правой ветви (шаг 4).
Lr = [(r3 + (1-2∙(û1+ û2))∙r1), (r4 + (1-2∙ û2)∙r2)] =
= [(-3.3 + (1-2∙(0+1))∙(2.75)), (-4.12 + (1-2∙1)∙3.5)] = [-6.05 -7.62]
Проводим оценку для левого потомка (шаг 5):
f = sign(L3)∙sign(L4)∙min(|L3|,|L4|) = sign(-6.05)∙sign(-7.62)∙min(|-6.05|,|-
7.62|) = 6.05
Полученный результат имеет положительное значение, следовательно,
û
3
= 0.
Декодировав третий бит, можно провести оценку последнего потомка
(шаг 6).
g = L4 + (1-2∙ û3)∙L3 = -7.62 + (1-2∙0)∙(-6.05) = -13.67
Результат оценки имеет отрицательное значение, из этого следует, что
û
4
= 1.
Результатом декодирования принятого сообщения является
последовательность û = [0 1 0 1]. Последовательность совпадает с переданной, таким образом ошибок нет.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]