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

Дискретка / Расчетное задание

.pdf
Скачиваний:
24
Добавлен:
23.05.2015
Размер:
165.17 Кб
Скачать

Расчетное задание

Синдромный декодер для двоичных групповых кодов и его характеристики.

Цель работы

Получение вероятностных характеристик двоичного группового кода, заданного порождающей матрицей при выбранном варианте реализации синдромного декодера с обнаружением и исправлением ошибок.

Характеристиками являются:

-вероятность правильного приема (отсутствия искажений)

-вероятность неправильного приема (искажения), разделяемая на вероятность неправильного приема при попытке исправить обнаруженную ошибку и на вероятность необнаруженной ошибки

-вероятность потери сообщения из-за неисправимой ошибки

Характеристики должны быть получены как зависимости соответствующих вероятностей от вероятности искажения одного двоичного разряда в канале в виде формул и в виде графиков этих зависимостей для указанного диапазона значений этой вероятности. Графики желательно представить в логарифмическом масштабе, так как диапазоны изменений вероятностей могут включать несколько десятичных порядков.

Основные обозначения, определения и зависимости

Двоичный групповой код, отображающий 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, ik) матрица M разделяется на блоки из единичной квадратной матрицы слева (блок Ek) и матрицы для вычисления проверочных символов (блок G размером k строк и n-k столбцов):

M =

[Ek

 

G]

 

 

 

1

0

. 0

G1,1

. G1,nk

M =

 

0

1

. 0

G2,1

 

 

. G2,nk

 

.

. . . .

. .

 

 

0

0

. 1

Gk ,1

 

 

 

. Gk ,nk

значениях вектора .
Синдромный декодер строится как таблица соответствия между синдромом и вариантом исправления ошибки по следующей схеме:
синдрома покрываются зависимостью
при всех возможных 2n
равны.
Так как число различных смежных классов в группе из 2n элементов по
подгруппе из 2k элементов равно 2n-k, то все 2n-k возможных значений вектора
= ~ s y H

Блок G может содержать любые двоичные символы, код в любом случае за счет единичного блока в начале будет систематическим двоичным групповым кодом и различным x будут соответствовать разные y.

Для построения синдромного декодера необходимо составить проверочную матрицу H размером n строк и n-k столбцов, содержащую блок G и единичный блок под ним:

 

G

H =

 

 

Enk

Тогда вычисление вектора синдрома 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 (1p)nw

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.

Соседние файлы в папке Дискретка