
Дискретка / Расчетное задание
.pdfРасчетное задание
Синдромный декодер для двоичных групповых кодов и его характеристики.
Цель работы
Получение вероятностных характеристик двоичного группового кода, заданного порождающей матрицей при выбранном варианте реализации синдромного декодера с обнаружением и исправлением ошибок.
Характеристиками являются:
-вероятность правильного приема (отсутствия искажений)
-вероятность неправильного приема (искажения), разделяемая на вероятность неправильного приема при попытке исправить обнаруженную ошибку и на вероятность необнаруженной ошибки
-вероятность потери сообщения из-за неисправимой ошибки
Характеристики должны быть получены как зависимости соответствующих вероятностей от вероятности искажения одного двоичного разряда в канале в виде формул и в виде графиков этих зависимостей для указанного диапазона значений этой вероятности. Графики желательно представить в логарифмическом масштабе, так как диапазоны изменений вероятностей могут включать несколько десятичных порядков.
Основные обозначения, определения и зависимости
Двоичный групповой код, отображающий k-разрядные информационные векторы в n-разрядные кодовые слова, задается своей порождающей матрицей M размером k строк на n столбцов так, чтобы выполнялось условие
y=f(x)=y M
y |
|
= |
k |
x & M |
|
, j = 1..n |
|
|
|
||||
|
j |
|
i= 1 |
i |
i, j |
|
Для систематических кодов, когда информационные символы без изменений присутствуют в кодовом векторе на первых k позициях (yi=xi, i≤ k) матрица M разделяется на блоки из единичной квадратной матрицы слева (блок Ek) и матрицы для вычисления проверочных символов (блок G размером k строк и n-k столбцов):
M = |
[Ek |
|
G] |
|
|
|
|
1 |
0 |
. 0 |
G1,1 |
. G1,n− k |
|
M = |
|
0 |
1 |
. 0 |
G2,1 |
|
|
. G2,n− k |
|||||
|
. |
. . . . |
. . |
|||
|
|
0 |
0 |
. 1 |
Gk ,1 |
|
|
|
. Gk ,n− k |

Блок G может содержать любые двоичные символы, код в любом случае за счет единичного блока в начале будет систематическим двоичным групповым кодом и различным x будут соответствовать разные y.
Для построения синдромного декодера необходимо составить проверочную матрицу H размером n строк и n-k столбцов, содержащую блок G и единичный блок под ним:
|
G |
H = |
|
|
En− k |
Тогда вычисление вектора синдрома s заключается в "умножении" принятого вектора ỹ из n компонент на эту матрицу
s= |
~ |
|
|
|
|
|
y H |
|
|
|
|||
s |
|
= |
n |
~ |
|
, j = 1..n − k |
|
|
y & H |
|
|||
|
j |
|
i= 1 |
i |
i, j |
|
Вектор синдрома обладает следующими свойствами:
-он равен 0 тогда и только тогда, когда принятый вектор является допустимым кодовым словом
-два вектора принадлежат одному смежному классу по подгруппе допустимых кодовых векторов тогда и только тогда, когда их синдромы
|
|
|
|
|
Отбрасывание |
|
|
Исправление |
|
|||||||
|
|
|
|
|
проверочных |
|
|
|
|
ошибок |
|
|||||
|
|
|
|
|
разрядов |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Вычисление |
|
|
|
|
Выбор |
|
|
|
|
|
|
||||
|
синдрома |
|
|
|
|
оценки |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
ошибки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
Решение об отказе от |
|
|
|||||
|
|
|
|
|
|
|
|
|
исправления |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При этом для систематического кода необходимо хранить в таблице только первые k компонент вектора оценки ошибки.
Решение об отказе от исправления принимается исходя из оценки вероятности искажения информации, если в системе допускается отказ от приема. Предлагается следующий вариант принятия решения:
Если в смежном классе принятого вектора имеется единственное слово наименьшего веса (вес - число единичных разрядов), то это слово (лидер класса) принимается в качестве оценки ошибки и происходит ее исправление. Иначе фиксируется обнаруженная неисправимая ошибка и происходит отказ от исправления.
Возможны и другие варианты. При желании можно сравнить характеристики декодера при различных вариантах принятия решения.
Получение характеристик декодера
Так как перебор всех векторов ỹ покрывает все смежные классы, возможно получение распределения весов векторов классов по следующему алгоритму: 1. Строится таблица числа векторов каждого веса в каждом классе (в ней 2n-k
строк и n+1 столбец). Изначально она содержит все 0.
2.Подготавливается массив для хранения лидеров классов (2n-k слов по n разрядов) и массив для хранения минимального веса слов классов (2n-k целых чисел).
3.Перебираются все возможные значения вектора ỹ (их 2n).~
4.Для каждого вектора ỹ вычисляется вектор синдрома s y H и вес
~ |
∑ 1. |
вектора ỹ: w(y) = |
yi = 1
5.Элемент таблицы весов на строке s и столбце w(ỹ) увеличивается на 1.
6.Если вес вектора меньше текущего минимального веса в классе, то происходит обновление минимального веса класса и значения лидера.
Следующий псевдокод иллюстрирует эту процедуру
for s:=0 to 2n-k-1 do begin minw[s]:=n+1;
for wy:=0 to n do wt[s,wy]:=0;
end;
for y:=0 to 2n-1 do begin s:=y·H; wy:=w(y); Inc(wt[s,wy]);
if wy<minw[s] then begin minw[s]:=wy; Leader[s]:=y;
end;
end;
По окончании этой процедуры в таблице отыскиваются строки, у которых в самом меньшем по номеру (весу) столбце с ненулевым значением это значение равно 1. В этом случае соответствующий класс имеет лидера.
Теперь следует подсчитать вероятности различных исходов.
Вероятность появления комбинации ошибок определяется числом разрядов с искажениями:
P{e}=pw(e)(1-p)n-w(e)
Вероятность того, что комбинация ошибок попадет в некоторое множество, равна сумме вероятностей для всех комбинаций множества.
P{e Q} = ∑ P{e} = ∑n |
N (Q, w) p w (1− p)n− w |
|
e Q |
w= |
0 |
где N(Q,w) - число слов веса w в множестве Q.
Поэтому чтобы вычислить вероятность различных исходов необходимо определить, какие исходы возможны в работе декодера на каких множествах конфигураций ошибок.
К не обнаружимым ошибкам приводят только ненулевые допустимые слова. Правильно исправляются только ошибки, совпадающие с лидерами классов. Классам, не имеющих лидеров, соответствуют не исправляемые ошибки.
Остальные слова образуют множество комбинаций, приводящих к неверно исправляемым ошибкам.
Так как все вместе эти области образуют полное множество возможных исходов, достаточно найти вероятности попадания комбинации ошибок в каждую область кроме какой-либо одной. Последнюю вероятность можно найти как дополнение до 1 суммы остальных вероятностей если при этом не возникнет ошибок округления. Во всяком случае следует проверить, что сумма всех найденных вероятностей равна 1.
Программа работы
Индивидуальное задание
Следует получить характеристики кода с 5 информационными символами и 4 проверочными символами (всего 9 двоичных разрядов в кодовом векторе).
k=5 n=9
Код систематический. Задается только блок G матрицы M.
При этом строки блока G не должны содержать наборов из всех 0 и не должны совпадать со строками единичной матрицы 4x4. Также все строки должны быть различны. Это гарантирует, что
-среди допустимых кодовых слов нет слова веса 1
-все слова веса 1 являются лидерами различных классов (таких классов 9) (Объясните, почему).
Таким образом, из 16 видов строк блока G остается 11:
1100, 1010, 1001, 0110, 0101, 0011, 1110, 1101, 1011, 0111, 1111.
Так как в блоке 5 строк и все должны быть разными, существует C115 5!
вариантов (некоторые из них дают эквивалентные коды по множеству допустимых слов).
Необходимо найти
-Число векторов всех возможных весов в каждом из классов (таблицу 16 строк по 10 столбцов, столбцы нумеровать от 0 до 9, строки двоичными значениями синдромов).
-Вид лидеров классов в виде двоичной строки для тех классов, где лидер есть (возможно, в виде дополнительного столбца к таблице весов).
-Формулы зависимостей вероятности различных исходов декодирования от вероятности искажения одного двоичного разряда при передаче кодового вектора по каналу.
Необходимо построить
-Схему устройства кодирования и схему вычисления синдрома в виде рисунка или формул для отдельных двоичных разрядов с использованием только бинарных элементов "ИСКЛЮЧАЮЩЕЕ ИЛИ"
-Таблицу для выдачи воздействия на схему исправления ошибок и выдачи сигнала отказа от декодирования (16 строк по 6 двоичных разрядов: 5 разрядов для схемы исправления ошибок и один разряд для сигнала отказа).
-Графики зависимостей вероятностей различных исходов декодирования от
вероятности искажения одного двоичного разряда при передаче кодового вектора по каналу при значениях аргумента p=10-3, 2·10-3, 5·10-3, 10-2, 2·10-2, 5·10-2, 10-1.