Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TEZ-2012 / 2-й семестр / ЛБ_ТЕС_2 / ЛБ_4 / Лабораторная работа 15.doc
Скачиваний:
74
Добавлен:
14.04.2015
Размер:
348.67 Кб
Скачать

1. Способ декодирования с обнаружением ошибок

Процедура декодирования циклического кода с обнаружением ошибок, по аналогии с процессом кодирования основана на использовании свойства делимости без остатка кодового многочлена Р(x) циклического (n,m)-кода на порождающий многочлен g(x). Поэтому алгоритм декодирования включает в себя деление принятого кодового слова, описываемого многочленом F(x) на g(x), вычисление и анализ остатка R(x). Если R(x)=0, то принятое кодовое слово считается неискаженным. Если R(x)0, то принятое кодовое слово стирается и формируется сигнал "ошибка".

2 Способ декодирования с исправлением ошибок

Декодирование заключается в определении номера искаженного разряда и его автоматического исправления. А также отделения информационных разрядов от контрольных.

Рассмотрим три методики декодирования

Определение искаженного разряда с помощью матрицы ошибок.

Матрица одиночных ошибок имеет вид

, где - единичная матрица;- прямоугольная проверочная матрица.

Строки матрицы определяются из выражений

- остаток от деления на образующий полином,

где - значениеi-той строки матрицы ;

i - номер строки матрицы .

Для определения искаженного разряда необходимо определить остаток от деления принятой кодовой комбинации на порождающий многочлен. Далее находится строка в проверочной матрице с полученным остатком (синдромом). Искаженный разряд – это разряд в строке (соответствующая строке проверочной матрицы) единичной матрицы, в которой стоит «1». Искаженный разряд исправляется посредством сложения строки единичной матрицы с полученной комбинацией.

Свойства циклических кодов по обнаружению ошибок

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

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

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

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

4. Циклический код с многочленом степениобнаруживает все групповые ошибки длительностью вразрядов и менее. Любая групповая ошибка вразрядов описывается многочленом степени, т.е.. Многочлен же степенина многочлен степенине делится и, таким образом, ошибка обнаруживается.

5. Циклический код с порождающим многочленом степенине обнаруживаетчасть ошибок-й кратности.

6. Циклический код с порождающим многочленом степенине обнаруживаетчасть ошибок более-й кратности.

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

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

или ,при длине кодовой комбинации;

, при длине кодовой комбинации.

Разработан ряд методик по выбору порождающего многочлена . В литературе коды называют по фамилиям ученых, предложивших ту или иную методику. Так получили свое название коды Боуза-Чоудхури-Хоквингема (БЧХ), коды Рида-Соломона, коды Файра и др.

Укороченные циклические коды

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

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

Вероятности ошибочного декодирования циклических кодов

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

Относительно просто эти вероятности могут быть рассчитаны для двоичного симметричного канала без памяти. В таком канале каждый двоичный символ с некоторой фиксированной вероятностью принимается правильно и с вероятностьюизменяется помехой на обратный. Передача/прием каждого символа полагается событием независимым (канал без памяти).

Если по такому каналу передается кодовое слово длины , то вероятность того, что не произойдет ни одной ошибки, равна.

Вероятность того, что будет одна ошибка в заданном символе, равна .

Вероятность того, что слово на выходе канала будет отличаться от передан­ного слова в заданных разрядах, т.е. вектор ошибок содержитединиц, равна

.

Вероятность того, что слово на выходе канала будет отличаться от передан­ного слова в любых разрядах, равна

,

где число сочетаний из по .

Предположим, что некоторый линейный код (5,3) содержит одно нулевое слово (как всякий линейный код), два слова, вес которых равен 2, четыре слова — весом 3, одно слово — весом 4 (всего слов).

Вероятность необнаруживаемой этим кодом ошибки равна вероятности по­явления в ДСК векторов ошибок, совпадающих с кодовыми словами, т.е.:

В режиме исправления ошибок декодер вычисляет остаток от деления принятой последовательности на . Этот остаток называют синдромом. Принятый полином представляет собой сумму по модулю 2 переданного слова и вектора ошибок :

.

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

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

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

Например, для двоичного симметричного канала, в котором вероятность ошибочного приема двоичного символа существенно меньше вероятности правильного приема, вероятность появления векторов ошибок уменьшается с увеличением их веса . В этом случае следует исправлять в первую очередь вектор ошибок меньшего веса.

Если кодом могут быть исправлены только все векторы ошибок веса и меньше, то любой вектор ошибки веса отдоп будет приводить к ошибоч­ному декодированию.

Вероятность ошибочного декодирования будет равна вероятности появления векторов ошибок веса и больше в заданном канале. Для ДСК эта вероятность будет равна

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

Соседние файлы в папке ЛБ_4