МЯГКИЙ ДЕКОДЕР ПОСЛЕДОВАТЕЛЬНОГО ТУРБОКОДА
SERIAL TURBO CODE SOFT DECODER

Изобретение относится к технике связи и может использоваться при проектировании новых и модернизации существующих систем передачи дискретной информации.
Известны устройства восстановления стираний и исправления ошибок, использующие индексы мягких решений (индекс достоверности символов, градации надежности символов) для повышения достоверности приема информации (см. Р.Морелос-Сарагоса. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применения. М., Техносфера, 2005, с. 103, … ,105; а также устройства по патентам РФ на изобретения №№2166235; 2209519; 2209520; 2256294; 2344556).
В патентах №2256294 и №2344556 описаны методы итеративных преобразований индексов мягких решений кодовых комбинаций двоичных блоковых кодов, которые обеспечивают исправление одиночных ошибок за счет последовательного повышения индексов мягких решений в системе проверочных соотношений кодов. Недостатком метода является его ограниченная возможность по исправлению нескольких ошибок.
Кроме того, известны методы декодирования недвоичных кодов Рида-Соломона (PC) (см. В.К.Конопелько, В.А.Липницкий. Теория норм синдромов и перестановочное декодирование помехоустойчивых кодов. Изд. 3-е. - М., Едиториал УРСС, 2012. - С. 9-15; а также В.Г.Карташевский, Д.В.Мишин. Итерационное декодирование турбо-кодов в канале с памятью // 3-я Международная конференция и выставка «Цифровая обработка сигналов и ее применение». - М., 2000. - С. 65-68).
Наиболее близким устройством такого же назначения является декодер, алгоритм работы которого описан в работе В.К.Конопелько, В.А.Липницкий (см. В.К.Конопелько, В.А.Липницкий. Теория норм синдромов и перестановочное декодирование помехоустойчивых кодов. Изд. 3-е. - М., Едиториал УРСС, 2012), содержащий блок приема, выход которого подключен к блоку внутреннего кода, первый выход которого подключен к буферу внешнего кода, один выход которого подключен к первому входу блока синдромов, второй вход которого подключен к одному выходу блока стираний, а его другой выход подключен к блоку локаторов стираний, первый выход которого через блок производной подключен ко второму входу блока исправления стираний, первый вход которого подключен к первому выходу блока произведений, тогда как первый и второй входы этого блока соответственно подключены к выходу блока синдромов и второму выходу блока локаторов стираний, при этом другой выход буфера внешнего кода подключен к первому входу выходного блока, а второй и третий входы этого блока подключены соответственно к выходу блока исправления стираний и к третьему выходу блока стираний, при этом второй выход блока внутреннего кода подключен к входу блока стираний.
К недостаткам работы аналогов, в том числе и прототипа предлагаемого декодера, следует отнести неполное использование введенной во внутренний и внешний коды избыточности из-за применения жестких алгоритмов обработки данных. Это приводит к тому, что блок внутреннего кода при жестком декодировании комбинации этого кода допускает ошибочное декодирование недвоичных символов внешнего кода, что требует от декодера внешнего кода исправления не только стираний, но и ошибок. Это повышает сложность декодера при вычислении недвоичных разрядов внешнего кода, поскольку часть введенной во внешний код избыточности необходимо использовать для вычисления локаторов возможных ошибок.
Технический результат - повышение достоверности приема информации. Для достижения технического результата в мягкий декодер последовательного турбокода, содержащий блок приема и блок внутреннего кода, первый выход которого подключен к буферу внешнего кода, один выход которого подключен к первому входу блока синдромов, второй вход которого подключен к одному выходу блока стираний, а его другой выход подключен к блоку локаторов стираний, первый выход которого через блок производной подключен ко второму входу блока исправления стираний, первый вход которого подключен к выходу блока произведений, тогда как первый и второй входы этого блока соответственно подключены к выходу блока синдромов и второму выходу блока локатора стираний, при этом другой выход буфера внешнего кода подключен к первому входу выходного блока, а второй и третий входы этого блока подключены соответственно к выходу блока исправления стираний и к третьему выходу блока стираний, дополнительно введены: блок индексов, блок статистических решений, блок итераций и блок приоритетов, при этом выход блока приема через блок индексов подключен к блоку статистических решений, первый выход которого подключен к одному входу блока итераций, выход которого подключен к блоку внутреннего кода, второй выход которого подключен к другому входу блока итераций, при этом третий выход блока внутреннего кода подключен к первому входу блока приоритетов, а его второй вход подключен ко второму выходу блока статистических решений, при этом выход блока приоритетов подключен к блоку стираний.
На фиг.1 приведена схема предложенного мягкого декодера последовательного турбокода, содержащая блок приема 1, блок индексов 2, блок статистических решений 3, блок итераций 4, блок внутреннего кода 5, блок приоритетов 6, блок стираний 7, блок локаторов стираний 8, блок производной 9, буфер внешнего кода 10, блок синдромов 11, блок произведений 12, блок исправления стираний 13 и выходной блок 14. Выход блока приема 1 через блок индексов 2 подключен к блоку статистических решений 3, первый выход которого подключен к одному входу блока итераций 4, а второй выход блока статистических решений 3 подключен ко второму входу блока приоритетов 6, при этом выход блока итераций 4 подключен к входу блока внутреннего кода 5, первый выход которого подключен к буферу внешнего кода 10, а второй и третий выходы блока внутреннего кода 5 соответственно подключены к другому входу блока итераций 4 и к первому входу блока приоритетов 6, а выход этого блока 6 подключен к входу блока стираний 7, один выход которого подключен ко второму входу блока синдромов 11, другой выход блока стираний 7 подключен к блоку локаторов стираний 8, а третий выход блока стираний 7 подключен к третьему входу выходного блока 14, при этом первый вход блока синдромов 11 подключен к одному выходу буфера внешнего кода 10, другой выход которого подключен к первому входу выходного блока 14, при этом выход блока синдромов 11 подключен к первому входу блока произведений 12, а его второй вход подключен ко второму выходу блока локаторов стираний 8, первый выход которого через блок производной 9 подключен ко второму входу блока исправления стираний 13, тогда как его первый вход подключен к выходу блока произведений 12, а выход блока исправления стираний 13 подключен ко второму входу выходного блока 14, выход которого является общим выходом декодера.
3
Работу декодера рассмотрим на примере использования в качестве внутреннего кода - кода с проверкой четности, а в качестве внешнего кода - код PC (7, 3, 5), построенного над полем GF(2).
Пусть порождающий полином кода PC g(x) определен как
2
3
4
g(х)=(х-α)(х-α)(х-α)(х-α).
3
4
3
3
2
0
3
2
6
4
n-k
4
2
5
6
6
4
kc
inf
inf
inf
Используя таблицу сложения элементов в поле GF(2), получают значение g(x) в явном виде: g(x)-x+хα+хα+хα+α. Пусть с выхода источника информации на вход кодера поступили символы вида V=ααα. Для кодирования вектора V кодом PC повышают его степень на величину х, получая V(x)=хα+хα+хα. Обычно эта процедура выполняется на передаче с использованием сдвигового регистра с обратным связями, соответствующими значению g(x) (см. Б.Скляр. Цифровая связь. М., СП-Б., Киев: Вильяме, 2003, с. 474), при этом на выходе кодера внешнего кода образуется вектор с q-ми символами V вида:
kc
q
2
4
2
5
3
5
4
2
5
6
6
4
V(x)=α+хα+хα+хα+хα+хα+хα.
Или в двоичном представлении:
kc
2
2
3
4
5
6
V(x)=(100)+х(110)+х(111)+х(111)+х(100)+х(101)+х(110) и после применения внутреннего кодера с проверкой четности в канал связи будет направлен вектор:
tk
V=(1001)(1100)(1111)(1111)(1001)(1010)(1100), при этом передатчик логические единицы передает с энергией Е, а логические нули с энергией -Е.
<mrow><mo>−</mo><msqrt><mi>E</mi></msqrt></mrow>
<mrow><msqrt><mi>E</mi></msqrt></mrow>
После прохождения канала связи блок приема 1 мягкого декодера последовательного турбокода принимает двоичные символы, которые в зависимости от уровня помех в канале связи оказываются в большей или меньшей степени искаженными. Работа блока приема 1 организуется по принципу стирающего канала связи с симметричным интервалом стирания p, где 0≤p≤1 и представляет долю расстояния в системе условных плотностей вероятностей в гауссовском канале связи между математическими ожиданиями
и
, соответствующих приему информационных нулей и единиц (см. Дж.Прокис. Цифровая связь. М.: Радио и связь, 2000, с. 217). В целях повышения достоверности индексов мягких решений параметр p выбирают достаточно большим, например, p=0,9. Зафиксированный в блоке приема 1 сигнал |z| и соответствующее ему жесткое решение 0 или 1 передаются в блок индексов 2.
max
Блок индексов 2 предназначен для формирования целочисленных индексов мягких решений (ИМР). Если 0,9≤|z|≤3σ (здесь σ - среднее квадратическое отклонение), то к жесткому решению добавляется ИМР максимального значения, принятого в данном приемнике, например, λ=7. Для всех других значений 0≤|z|≤0,9 целочисленные показатели ИМР получают по правилу:
<mrow><msub><mi>λ</mi><mi>i</mi></msub><mo>=</mo><mrow><mo>|</mo><mrow><mrow><mo>⌊</mo><mrow><mfrac><mrow><msub><mi>λ</mi><mrow><mi>max</mi></mrow></msub></mrow><mrow><mi>ρ</mi><msqrt><mi>E</mi></msqrt></mrow></mfrac><mo>×</mo><mi>z</mi></mrow><mo>⌋</mo></mrow></mrow><mo>|</mo></mrow><mo>,</mo></mrow>
i
max
i
где символ • означает округление значения λ до целочисленной величины в сторону уменьшения (расчет на наихудший случай). При известных р, λ и Е значения λ(z) представляют легко вычисляемую линейную зависимость. На выходе блока индексов жесткие решения заменяются на значения «минус» для нулей и значения «плюс» для единиц. Таким образом, на выходе этого блока может появиться кортеж данных вида …-5; +6; -7; -7; … Эти данные поступают на вход блока статистических решений 3.
max
i
<mrow><mi>σ</mi><mrow><mo>(</mo><mi>λ</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mrow><mn>1</mn><mo>/</mo><mi>n</mi><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mrow><msup><mrow><mrow><mo>(</mo><mrow><mrow><mo>|</mo><mrow><mi>M</mi><mrow><mo>(</mo><mi>λ</mi><mo>)</mo></mrow></mrow><mo>|</mo></mrow><mo>−</mo><mrow><mo>|</mo><mrow><msub><mi>λ</mi><mi>i</mi></msub></mrow><mo>|</mo></mrow></mrow><mo>)</mo></mrow></mrow><mn>2</mn></msup></mrow></mstyle></mrow>
Блок статистических решений 3 осуществляет оценку параметров q-х комбинаций внутреннего кода, используя данные из блока индексов 2. Пусть выбраны λ=7, Е=2 и p=0,9. Тогда λ≅|5,5×z|. Для получения статистической оценки на длине кодового вектора внутреннего кода определяется среднее значение кортежа ИМР |M(λ)| и оценивается разброс показателей ИМР в виде
, где n - длина кодового вектора внутреннего кода. Указанные параметры из блока статистических решений 3 через второй выход этого блока поступают на второй вход блока приоритетов 6. При этом жесткие решения комбинации внутреннего кода вместе с их ИМР через первый выход блока статистических решений 3 поступают на один вход блока итераций 4.
Блок итераций 4, получив кодовый вектор внутреннего кода, направляет его на вход блока внутреннего кода 5, где осуществляется декодирование вектора по заданным для этого кода проверочным соотношениям. Если проверочные соотношения выполняются, то вырабатывается сигнал (+рс), который через третий выход этого блока поступает на первый вход блока приоритетов 6. Если проверочные соотношения не выполняются, то вырабатывается сигнал (-рс) и осуществляется попытка восстановления кодового вектора за счет итеративных преобразований. Для этого данные о векторе через второй выход блока внутреннего кода 5 направляются на другой вход блока итераций 4.
ki
p
ki
p
ki
p
ki
p
1-m
Блок итераций 4 обрабатывает подобные данные по правилу: L(λ)+L(λ)≈(-1)×sign[L(λ)]×sign[L(λ)]×min(|L(λ)|,|L(λ)|), здесь функция sign(•) возвращает знак своего аргумента; L(λ) - ИМР символа, участвующего в формировании проверочного бита; L(λ) - ИМР проверочного символа; m - число исключенных из анализа положительных ИМР, входящих в корректируемый вектор (см. патент РФ №2256294). После выполнения итеративных преобразований кодовый вектор возвращается в блок внутреннего кода 5.
Блок приоритетов 6 работает согласно целевой функции, имеющей вид:
<mrow><mi>Q</mi><mrow><mo>{</mo><mrow><mi>W</mi><mo>;</mo><mi>M</mi><mrow><mo>(</mo><mi>λ</mi><mo>)</mo></mrow><mo>;</mo><mi>σ</mi><mrow><mo>(</mo><mi>λ</mi><mo>)</mo></mrow></mrow><mo>}</mo></mrow><mo>⇒</mo><munder><mrow><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mo stretchy="false">(</mo><mi>W</mi><mo stretchy="false">)</mo></mrow><mrow><mi>W</mi><mo>→</mo><mrow><mo>(</mo><mrow><mo>+</mo><mi>p</mi><mi>c</mi></mrow><mo>)</mo></mrow></mrow></munder><mo>;</mo><mo>|</mo><munder><mrow><mi>M</mi><mrow><mo>(</mo><mi>λ</mi><mo>)</mo></mrow></mrow><mrow><mi>max</mi></mrow></munder><mo>;</mo><munder><mrow><mi>σ</mi><mrow><mo>(</mo><mi>λ</mi><mo>)</mo></mrow></mrow><mrow><mi>min</mi></mrow></munder><mo>,</mo></mrow>
где W - знак выполнения проверочных соотношений.
i
j
i
j
В соответствии с Q{•} блок приоритетов 6 на первом шаге обработки комбинации выполняет оценку проверочных соотношений (выполнение четности в четности в рассматриваемом примере), на втором шаге обработки данных оценивает среднее значение принятых ИМР символов и в последнюю очередь определяет степень разброса зафиксированных приемником индексов. Максимальное значение |M(λ)| соответствует высокой достоверности принятых символов, но может быть получено множество одинаковых значений |M(λ)| при различной совокупности оценок, поэтому необходимо дополнительно оценивать параметр σ(λ). Если возникает ситуация неопределенности, когда |M(λ)|=|M(λ)| при t≠j, то приоритетной для последующей обработки данных является комбинация, у которой σ(λ)<σ(λ).
Пример расчета приоритета для первого символа кодовой комбинации кода PC приведен в таблице.
Символы V<sub>tk</sub> с проверкой четности
Представление символов с влиянием помех
Z
λ<sub>i</sub>=λ<sub>i</sub>
W
М(λ)
G(λ)
Приоритет
α<sup>2</sup>→1001
+1,41-0,20-1,41+0,80-1,41-0,54+1,41+0,42
+1,21-0,61-1,95+1,83
6,7=63,3=32,0=71,8=7
+
5,75
3,58
Высокий
Выполнение расчета функции Q{•} для второго символа α<sup>4</sup> кода PC
Символы V<sub>tk </sub>с проверкой четности
Представление символов с влиянием помех
Z
λ<sub>i</sub>=λ<sub>i</sub>
W
М(λ)
G(λ)
Приоритет
α<sup>4</sup>→1100
+1,41-0,48+1,41+0,16-1,41+1,75-1,41-0,49
+0,93+1,57+0,34-1,90
5,1=51,6=71,9=21,9=7
-
5,50
3,66
Низкий
Комбинация внутреннего кода в виде последовательности +5 +7 +2 - 7 направляется в блок итераций 4, где выполняются следующие действия: из комбинации удаляется символ +7, который считается принятым надежно. В этом случае значение m=1. Оставшиеся символы +5 +3 - 7 преобразуются по шагам итераций:
Шаг 1
[+2+0]+(-7)=-2, поскольку 2<7;
[+5+0]+(-7)=-5, поскольку 5<7.
Шаг 2
[+2 -5]+(-7)=+3, поскольку 3<7;
[+5 -2]+(-7)=-3, поскольку 3<7.
Шаг 3
[+2 -3]+(-7)=+1, поскольку 1<7;
[+5+3]+(-7)=-7, поскольку 8>7.
5
4
После шага 3 итеративных преобразований возможна коррекция символов исходной последовательности: (+5+1=+6); (+3-7=-4); -7. После восстановления вычеркнутого символа будет получено +6+7 -4-7. Следовательно, первоначально принятый символ кода РС α преобразуется в символ α. Полученное значение второго символа используется как индикатор правильности восстановления кодового вектора кода РС. Для выполнения последующей процедуры декодирования комбинации кода РС в целом целесообразно приоритет восстановленной комбинации с «низкого» поменять на «сомнительный».
Расчет значений Q{•} других значений кодового вектора кода РС
Символы V<sub>tk </sub>с проверкой четности
Представление символов с влиянием помех
Z
λ<sub>i</sub>=λ<sub>i</sub>
W
М(λ)
G(λ)
Приоритет
α<sup>5</sup>→111
+1,41-2,92+1,41+1,72+1,41-0,90+1,41-0,24
-1,51+3,31+0,51+1,17
1,5=73,3=72,8=26,4=6
-
5,50
5,67
Низкий
α<sup>5</sup>→1111
+1,41+0,34+1,41-0,88+1,41-1,07+1,41+0,47
+1,75+0,53+0,34+1,88
1,7=72,9=21,9=11,9=7
+
4,25
10,25
Сомнитель-ный
α<sup>2</sup>→1001
+1,41+1,46-1,41-0,67-1,41+0,61+1,41+1,15
+2,87-2,08-0,80+2,56
2,9=72,1=72,0=42,6=7
+
6,25
2,25
Высокий
α<sup>6</sup>→1010
+1,41-0,19-1,41-0,90+1,41-0,70-1,41-0,36
+1,22-2,31+0,71-1,77
6,7=62,3=73,9=31,8=7
+
5,75
3,58
Высокий
α<sup>4</sup>→1100
+1,41+0,05+1,41+0,56-1,41+1,28-1,41-1,18
+1,46+1,97-0,13-2,59
1,4=72,0=70,7=02,6=7
+
3,58
12,25
Сомнитель-ный
Данные из блока внутреннего кода 5 в виде символов кода РС накапливаются в буфере внешнего кода 10, а из блока приоритетов 6 поступают в блок стираний 7.
min
min
1
2
3
4,
2
2
6
Блок стираний 7 формирует данные, выделяя в отдельные группы символы кода РС с «высоким» и «низким» приоритетом. Символы с «сомнительным» приоритетом могут дополнять группу символов с «низким» приоритетом в зависимости от исправляющей способности кода. Определив число S ненадежных символов кода PC, блок 7 стирает их при условии, что S=d -1. При d=5 декодер кода PC способен восстановить четыре стирания. Кодовый вектор кода PC принимает вид αSSSααS и это значение передается в блок синдромов 11.
Блок синдромов 11 учитывает значения стираний в сочетании с их позициями. Работа блока представляется таблицей.
Расстановка символов кодового кода PC вектора по позициям
Номер позиции
0
1
2
3
4
5
6
Символы и стирания кодового вектора
α<sup>2</sup>
S<sub>1</sub>
S<sub>2</sub>
S<sub>3</sub>
α<sup>2</sup>
α<sup>6</sup>
S<sub>4</sub>
На основании этих данных в блоке 11 рассчитываются синдромы для позиций 1; 2; 3; 6. Следует иметь в виду, что независимо от номера стертой позиции значения синдромов стертых позиций (при наличии четырех стираний) вычисляются всегда для j=0; j=1; j=2; j=3.
Множитель 0+1=1
S<sub>j=0</sub>=α<sup>2</sup>α<sup>0</sup>+α<sup>2</sup>α<sup>4</sup>+α<sup>6</sup>α<sup>5</sup>=α<sup>2</sup>+α<sup>6</sup>+α<sup>4</sup>=α<sup>5</sup>;
Множитель 1+1=2
S<sub>j=1</sub>=α<sup>2</sup>α<sup>0</sup>+α<sup>2</sup>α<sup>8</sup>+α<sup>6</sup>α<sup>10</sup>=α<sup>2</sup>+α<sup>3</sup>+α<sup>2</sup>=α<sup>3</sup>;
Множитель 2+1=3
S<sub>j=2</sub>=α<sup>2</sup>α<sup>0</sup>+α<sup>2</sup>α<sup>12</sup>+α<sup>6</sup>α<sup>15</sup>=α<sup>2</sup>+α<sup>0</sup>+α<sup>0</sup>=α<sup>2</sup>;
Множитель 3+1-4
S<sub>j=3</sub>=α<sup>2</sup>α<sup>0</sup>+α<sup>2</sup>α<sup>16</sup>+α<sup>6</sup>α<sup>20</sup>=α<sup>2</sup>+α<sup>4</sup>+α<sup>5</sup>=α<sup>6</sup>.
Итогом работы блока 11 является полином синдромов
5
3
2
2
3
6
S(x)=α+хα+хα+хα.
Одновременно с этим по известным стертым позициям, полученным из блока стираний 7, в блоке локаторов стираний 8 определяется полином локаторов стираний
2
3
6
2
2
3
6
3
2
9
4
2
3
4
2
2
2
2
3
2
6
0
4
5
2
6
3
2
4
5
L(x)=(1+хα)(1+хα)(1+хα)(1+хα)=(1+хα+хα+хα)(1+хα+хα+хα)=(1+хα+хα)(1+хα+хα)=1+х(α+α+α)+х(α+α)+хα=1+хα+хα+хα.
2
6
3
2
4
5
Или в окончательном виде L(x)=1+xα+хα+хα. Данные из блока синдромов 11 и блока локаторов стираний 8 объединяются в блоке произведений 12. При выполнении этой процедуры все значения х со степенями, равными и старше величины n-k, в расчет не принимаются. Таким образом в блоке 12 образуется последовательность вида:
3
2
2
3
6
2
6
3
2
4
5
5
3
2
2
3
6
2
4
3
2
3
0
5
3
2
1
6
2
2
3
5
2
2
.
S(x)×L(x)=(α+xα+хα+хα)(1+хα+хα+хα)=α+хα+хα+хα+хα+хα+хα=α+хα+хα  Одновременно с работой блока 12 для реализации алгоритма Форни (решение ключевого уравнения Форни) по данным из блока локаторов стираний 8 в блоке производной 9 определяется производная от значений L(x). Будет получен полином вида L'(х)=0+2хα+3хα+4хα=хα.
Данные из блока произведений 12 и блока производной 9 объединяются в блоке исправления стираний 13, в котором выполняются действия для каждой стертой позиции с учетом их номера:
<mrow><msub><mi>Y</mi><mn>1</mn></msub><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>5</mn></msup><mo>+</mo><mfrac><mrow><msup><mi>α</mi><mn>3</mn></msup></mrow><mi>α</mi></mfrac><mo>+</mo><mfrac><mrow><msup><mi>α</mi><mn>1</mn></msup></mrow><mrow><msup><mi>α</mi><mn>2</mn></msup></mrow></mfrac></mrow><mrow><mfrac><mrow><msup><mi>α</mi><mn>2</mn></msup></mrow><mrow><msup><mi>α</mi><mn>2</mn></msup></mrow></mfrac></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>5</mn></msup><mo>+</mo><msup><mi>α</mi><mn>2</mn></msup><mo>+</mo><msup><mi>α</mi><mn>6</mn></msup></mrow><mrow><msup><mi>α</mi><mn>0</mn></msup></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>4</mn></msup></mrow><mn>1</mn></mfrac><mo>=</mo><msup><mi>α</mi><mn>4</mn></msup><mo>.</mo></mrow>
<mrow><msub><mi>Y</mi><mn>2</mn></msub><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>5</mn></msup><mo>+</mo><mfrac><mrow><msup><mi>α</mi><mn>3</mn></msup></mrow><mrow><msup><mi>α</mi><mn>2</mn></msup></mrow></mfrac><mo>+</mo><mfrac><mrow><msup><mi>α</mi><mn>1</mn></msup></mrow><mrow><msup><mi>α</mi><mn>4</mn></msup></mrow></mfrac></mrow><mrow><mfrac><mrow><msup><mi>α</mi><mn>2</mn></msup></mrow><mrow><msup><mi>α</mi><mn>4</mn></msup></mrow></mfrac></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>5</mn></msup><mo>+</mo><msup><mi>α</mi><mn>1</mn></msup><mo>+</mo><msup><mi>α</mi><mn>4</mn></msup></mrow><mrow><msup><mi>α</mi><mn>5</mn></msup></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>3</mn></msup></mrow><mrow><msup><mi>α</mi><mn>5</mn></msup></mrow></mfrac><mo>=</mo><msup><mi>α</mi><mn>5</mn></msup><mo>.</mo></mrow>
<mrow><msub><mi>Y</mi><mn>3</mn></msub><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>5</mn></msup><mo>+</mo><mfrac><mrow><msup><mi>α</mi><mn>3</mn></msup></mrow><mrow><msup><mi>α</mi><mn>3</mn></msup></mrow></mfrac><mo>+</mo><mfrac><mrow><msup><mi>α</mi><mn>1</mn></msup></mrow><mrow><msup><mi>α</mi><mn>6</mn></msup></mrow></mfrac></mrow><mrow><mfrac><mrow><msup><mi>α</mi><mn>2</mn></msup></mrow><mrow><msup><mi>α</mi><mn>6</mn></msup></mrow></mfrac></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>5</mn></msup><mo>+</mo><msup><mi>α</mi><mn>0</mn></msup><mo>+</mo><msup><mi>α</mi><mn>2</mn></msup></mrow><mrow><msup><mi>α</mi><mn>3</mn></msup></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>3</mn></msup></mrow><mrow><msup><mi>α</mi><mn>5</mn></msup></mrow></mfrac><mo>=</mo><msup><mi>α</mi><mn>5</mn></msup><mo>.</mo></mrow>
<mrow><msub><mi>Y</mi><mn>6</mn></msub><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>5</mn></msup><mo>+</mo><mfrac><mrow><msup><mi>α</mi><mn>3</mn></msup></mrow><mrow><msup><mi>α</mi><mn>6</mn></msup></mrow></mfrac><mo>+</mo><mfrac><mrow><msup><mi>α</mi><mn>1</mn></msup></mrow><mrow><msup><mi>α</mi><mrow><mn>12</mn></mrow></msup></mrow></mfrac></mrow><mrow><mfrac><mrow><msup><mi>α</mi><mn>2</mn></msup></mrow><mrow><msup><mi>α</mi><mrow><mn>12</mn></mrow></msup></mrow></mfrac></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>5</mn></msup><mo>+</mo><msup><mi>α</mi><mn>4</mn></msup><mo>+</mo><msup><mi>α</mi><mn>3</mn></msup></mrow><mrow><msup><mi>α</mi><mn>4</mn></msup></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>α</mi><mn>1</mn></msup></mrow><mrow><msup><mi>α</mi><mn>4</mn></msup></mrow></mfrac><mo>=</mo><msup><mi>α</mi><mn>4</mn></msup><mo>.</mo></mrow>
1
4
В выходном блоке 14 вторая позиция кода PC, полученная с использованием алгоритма Форни, сравнивается с позицией, полученной за счет итеративных преобразований и сохранившей свое новое значение в буфере внешнего кода 10. Они совпадают: Y=α, что указывает на правильность выполненных действий по восстановлению стираний.
Алгоритм работы предложенного декодера исключает применение процедуры целенаправленного подбора полинома локаторов стираний, носит детерминированный характер, исключает поиск обратных матриц и может быть реализован на основе современной базы микропроцессоров.