Декодирование линейных кодов. Алгоритм максимального правдоподобия.

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

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

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

Чтобы реализовать этот метод, целесообразно построить таблицу стандартной расстановки. Как эта таблица получается, проще всего пояснить на примере группового кода, код в этом случае есть подгруппа. Элементы подгруппы - кодовые комбинации. Их запишем в первую строку таблицы, поместив нулевую комбинацию в начало, и разложим группу по смежным классам. Все возможные на приеме последовательности будут содержаться в таблице.

Лидеры смежных классов Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru
Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru
Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru
Смежный класс
Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru
Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

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

Пусть а - переданное слово; Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru - принятая последовательность. Если используется ДСК без памяти, то в качестве лидеров надо выбирать векторы ошибок наиболее вероятные, т.е. с одиночной ошибкой, двойной и т.д., пока позволяют свойства кода. Декодирование будет состоять в следующем:

- находится в таблице последовательность, равная Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru ;

- определяется лидер той строки, в которой оказалась последовательность Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru ;

- вычисляется Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru как результат декодирования.

Ценность стандартной расстановки относительна. Для больших Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru и Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru технически реализовать такую таблицу на ЭВМ становится невозможным. Это не означает полного отрицания метода декодирования по максимуму правдоподобия. Обычно за счет дополнительной информации о достовер­ности символов удается ограничить "объем пространства" просматривае­мых комбинаций. Типичным примером являются алгоритмы Чейза [13].

Синдромное декодирование

Синдромом вектора Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru называет вектор Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru , где Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru - проверочная матрица. Если а - кодовый вектор, то, очевидно, Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Утверждается, что все векторы, принадле­жащие одному смежному классу, имеют совпадающие синдромы. Действительно, если Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

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

Синдромы разных смежных классов различны. Декодирование будет состоять в вычислений синдрома Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru ; нахождении в памяти лидера, соответствующего этому синдрому, выдачи результата декодирования в виде Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru .

Кодирование проще выполнять систематическим кодом. В этом случае необходимо вычислить значения Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru проверочных символов. Каждый проверочный символ согласно алгоритму кодирования (матричное умноже­ние) есть сумма по модулю два самое большее Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru информационных симво­лов. Следовательно, число двоичных сумматоров в схеме кодера будет не больше Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Для согласования скоростей приема безизбыточных данных от источника и передачи закодированного сообщения в канал мо­жет потребоваться входной и выходной буферы из Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru и Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru ячеек памяти. Общая сложность Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru , где Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru - скорость кода.

Сложность декодера в первую очередь зависит от того, обнаруживаем мы ошибки или исправляем, является декодер полным или неполным. Декодирование по максимуму правдоподобия называют еще декодировани­ем по манизму расстояния. Принятая комбинация сравнивается по мет­рике Хэмминга с каждой из кодовых и выбирается как решение та кодо­вая комбинация, к которой ближе всего принятая последовательность. Значит, потребуются Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru - разрядных схем сравнения, буферные регистры и память для кодовых слов. Общая сложность составит Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru , т.е. растет по экспоненте в зависимости от числа информационных разрядов. В неполном декодере пре­дусматриваются сравнение полученного наименьшего расстояния со зна­чением кодового расстояния, и отказ от декодирования, если это рас­стояние больше Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru .

При синдромном декодировании на вычисление синдрома потребуется не более Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru сумматоров и для полного декодера необходима память лидеров смежных классов (вариантов направляемых ошибок) на Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru -разрядных слов. Общая сложность будет составлять Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru , т.е. сложность синдромного декодера растет по экспоненте в зависимости от числа избыточных символов. Если ошиб­ки только обнаруживать, сложность декодера будет определяться схемой вычисления синдрома Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru .

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

Мажоритарный декодер.

Основная идея, лежащая в основе алгоритма, заключается в том, что информационные символы могут быть вычислены через канальные символы разными способами. Решение выносится голосованием по большинству. Требуется, однако, выполнение некоторых условий к проверочным соотношениям. Это означает, что не любой код допускает мажоритарный вариант декодирования. Рассмотрим код Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru с Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Его проверочная матрица:

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Проверочные соотношения, определяющие синдром, будут следующими: Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru или Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru .

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Поскольку, если нет ошибок, все Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru , то и комбинации Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Система проверок Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru называется разделенной относительно последнего Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru символа. Он входит во все проверочные соотношения, каждый другой символ только в одно. Если произошла одна ошибка в позиции Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru , то получим Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru . Если одна ошибка в любой другой позиции получим три единицы и ноль. Значит, ошибку в 14 позиции исправим по правилу: если Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru , то Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru , иначе Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru .

Любая комбинация из двух ошибок, не содержащая Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru , приведет к нарушению не более двух уравнений, а содержащая Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru не менее трех. Значит можно по тому же правилу исправлять и все двойные ошибки. Рассматривается циклический код, поэтому ошибки в остальных позициях тоже исправляются по четырем соотношениям Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru после циклического сдвига.

Рассмотренный код является кодом с одношаговым разделением. Более общий случай - Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru -шаговое разделение. Основное достоинство алгоритма мажоритарного декодирования – простота. Если нужна высокая скорость и умеренный выигрыш от кодирования, то надо применять этот алгоритм. Ниже приведена схема декодера Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru - кода.

Декодирование линейных кодов. Алгоритм максимального правдоподобия. - student2.ru

Наши рекомендации