Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
3.3. АЛГОРИТМЫ ДЕКОДИРОВАНИЯ БЛОЧНЫХ КОДОВВ данном разделе рассмотрим некоторые алгоритмы декодирования блочных кодов Пр имер невероятностных алгоритмов — декодирование только по расстоянию. Основное множество алгоритмов занимает промежуточное положение между этими двумя классами алгоритмов и является в некоторой мере и вероятностным, и невероятностным. Декодер Меггита. Предназначен для декодирования произвольного циклического или укороченного циклического кода. Сложность декодера лавинообразно возрастает с числом исправляемых ошибок, поэтому применяется для исправления небольшого числа ошибок (не более трех). Распознавание комбинаций ошибок осуществляется с помощью синдрома
Из (3.6) следует, что множество комбинаций ошибок можно разбить на непересекающиеся подмножества, в каждом из которых содержатся циклические сдвиги одной и той же комбинации. Тогда число запоминаемых комбинаций должно быть равно числу подмножеств. Алгоритм состоит из Перестановочное декодирование. Основы этого алгоритма были описаны в [42], более подробно он рассмотрен в [33]. Определение 3.13. Информационным множеством линейного Пример 3.8. У кода РС любое множество Общий алгоритм перестановочного декодирования выглядит следующим образом: 1. Выбираем несколько 2. Для каждого из 3. Сравниваем каждое полученное кодовое слово с принятой последовательностью. Выбираем ближайшее кодовое слово в качестве декодированного или отказываемся от декодирования. В данной модификации слово будет декодировано верно, если не содержит ошибок хотя бы в одном информационном множестве. Возможны и другие подходы к перестановочному декодированию, когда выбираются не информационные множества, а соответствующие им синдромы. В этом случае комбинация ошибок исправляется, если удается найти проверочное множество, целиком покрывающее данную комбинацию. Эти покрывающие множества могут выбираться как заранее с помощью комбинаторных соотношений, так и случайно [33]. Число покрывающих множество «при исправлении декодером
где Мажоритарное декодирование. Этот вид декодирования применим к кодам определенной структуры — мажоритарным кодам (имеющим разделенные проверки). Здесь для простоты будем рассматривать только двоичные коды. Обозначим
проверки на приеме. Если проверки разделенные, то коэффициент
где Если у символа кодового или принятого слова двойная нумерация, то рассматриваем задание проверок в виде (3.9), а если одиночная — в виде (3.8). Запись в виде разделенных проверок позволяет легко осуществить мажоритарное декодирование. Решение о символе
Легко убедиться, что символ Для многошагового алгоритма решение относительно одного символа принимается не сразу. Сначала оно принимается относительно группы символов, а затем эти группы символов уменьшаются. На последнем шаге решение принимается относительно символа. Возможны различные модификации мажоритарного алгоритма. Например, декодированным символом можно заменять символ, принятый из канала. Кроме того, можно осуществлять повторное декодирование. Для двоичных мажоритарных кодов на основе проективной плоскости из примера Долю неисправимых комбинаций ошибок веса
Аналогичные доли для некоторых других мажоритарных кодов приведены в [45]. Мажоритарное декодирование легко осуществить и с использованием мягкого решения [46, 47]. В этом случае получается пороговое декодирование по максимуму правдоподобия проверок. Алгоритм состоит в следующем:
где
где Возможны упрощенные варианты решающего правила (3.12), когда в качестве веса вместо Алгоритм Велдона. Данный, алгоритм предназначен для использования (частичного) мягкого решения. Получается несколько оценок каждого переданного символа, каждая из которых берется с весом, соответствующим ее надежности, и вычисляется некоторая решающая функция [48]. Характеристики алгоритма декодирования не очень хороши, однако его преимуществом является использование жестких декодеров. Алгоритмы Чейза. Эти алгоритмы представляют собой способ приближения к решению по максимуму правдоподобия. Аналогично алгоритму Велдона используют многократные жесткие декодирования. В первоначальной работе Чейза [49] рассмотрены три основных алгоритма, хотя возможны и другие. Основная процедура такова: 1. Получаем вектор жестких решений а. 2. Намеренно вводим различные комбинации ошибок 3. Выбираем в качестве результата декодирования ближайшее слово к принятому. Три предложенных Чейзом варианта отличаются методом порождения «пробных» последовательностей. Метод 1. Выбираем нулевую последовательность ошибок и все комбинации ошибок веса Метод 2. Выбираем Метод 3. Находим Метод 1 имеет наибольшее число «пробных» последовательностей и наилучшие характеристики. Далее в обратной последовательности расположены методы 2 и 3 Алгоритм декодирования по минимуму обобщенного расстояния. Указанный алгоритм непосредственно связан с третьим алгоритмом Чейза и состоит в следующем Находим Алгебраические алгоритмы декодирования. Эти алгоритмы основаны на операциях в конечных полях и в основном касаются кодов БЧХ Здесь весьма коротко остановимся на основных особенностях алгоритмов Нам понадобится дискретное преобразование Фурье вектора а над конечным полем Утверждение 3.5 Пусть
где Задание корней многочлена в одной области эквивалентно выбору нулевыми соответствующих компонентов вектора в другой. Для любого слова примитивного кода Существует ряд методов алгебраического декодирования кодов БЧХ Все они связаны либо с исправлением только ошибок, либо с исправлениями ошибок и стираний, причем возможны декодирования как во временной, так и в частотной областях Для декодирования в частотной области вычисляется преобразование Фурье
Так как преобразование
где
Из (3.17) можно получить Выбор схемы решения ключевого уравнения — основной этап построения декодера [33]. Наиболее употребимыми здесь являются алгоритмы Евклида (прямой) и Берлекэмпа (итеративный). Декодирование во временной области, хотя и было известно раньше и употребляется пока более широко, очень напоминает декодирование в частотной области, поэтому на нем не будем останавливаться [33]. Декодирование стираний существенно усложняет процедуру. Вводят многочлен локаторов стираний
который вычисляется по известным местам стираний. После этого вычисляют синдромы и новое ключевое уравнение, которое решается при определенных ограничениях относительно стираний. После решения ключевого уравнения получают общий многочлен локаторов ошибок и стираний и многочлен значений ошибок, при нахождении коэффициентов которых завершается декодирование. Алгоритмы декодирования по максимуму правдоподобия. Наиболее естественным алгоритмом по максимуму правдоподобия является корреляционное декодирование. При этом алгоритме для каждого входного символа вычисляются функции правдоподобия
где декодированного слова выбирается слово с номером Легко понять, что сложность этого алгоритма пропорциональна числу кодовых слов кода (экспонента от числа информационных символов линейного систематического кода). В случае Для линейных кодов возможен алгоритм, сложность которого экспоненциально зависит от числа не информационных символов, а проверочных. Это алгоритм декодирования Витерби [39], который для блочных кодов был впервые получен Вульфом [51]. Для задания алгоритма нам понадобятся следующие определения. Определение 3.1.4. Для любого принятого вектора а частичным синдромом называется вектор
где Справедлива итеративная формула
где Определение 3.15. Решетчатой диаграммой линейного блочного кода А будем называть направленный вправо граф, узлы которого состоят из Ребра соединяют только узлы Легко понять, что решетчатая диаграмма дает достаточно компактное представление кодовых слов. Каждый путь по решетке из нулевого узла в Алгоритм декодирования состоит из
Рис. 3.2 Примерный вид решетчатой диаграммы двоичного линейного кода наиболее правдоподобных префиксов длины Можно убедиться, что алгоритм требует не более Пример 3.9 Рассмотрим канал с двумя входами и четырьмя выходами (рис 3 3, а) Пусть передача по такому каналу осуществляется кодом с провер кой на четность ( При декодировании по Витерби в соответствии с решетчатой диаграммой, изображенной на рис 3 3,6, на шаге 1 для узла 0 запоминаем путь 0 с метрикой 0,75, для узла 1 запоминаем путь 1 с метрикой 0,02 На шаге 2 выбирается
Рис. 3.3 Пример канала с двумя входами и четырьмя выходами (а) и решетчатой диаграммы кода в узле 0 путь 00 с метрикой 0,06, а в узле 1 — путь В заключение отметим, что, как и в случае сверточных кодов [39], сложность алгоритма Витерби очень мало зависит от того, какой канал используется при декодировании: с мягким или жестким решением.
|
1 |
Оглавление
|