Скачиваний:
155
Добавлен:
01.05.2014
Размер:
1.68 Mб
Скачать

8.7. Понятие об алгебраическом декодировании бчх–кодов.

Поскольку БЧХ–коды являются циклическими, то к ним применимы любые методы декодирования циклических кодов. Однако имеются существенно лучшие алгоритмы декодирования, разработанные специально для декодирования БЧХ–кодов, которые получили наименование алгебраических.

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

,

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

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

,

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

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

,

где – величина–й ошибки (если код двоичный, то). Таким образом, в случае не двоичного БЧХ–кода неизвестными параметрами являются номера позиций, отвечающие ненулевым компонентам вектора ошибок, величины ошибок(только в случае не двоичного кода), а также число ошибок. Если бы удалось найти значения перечисленных выше неизвестных и, тем самым, получить оценку полинома ошибок, то операция декодирования свелась бы к простому оцениванию кодового слова

.

Следовательно, необходимо каким-то образом определить указанные выше неизвестные.

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

.

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

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

.

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

(8.1)

относительно неизвестных локаторови неизвестных величин ошибок. Таким образом, задача сводится к определению неизвестных по вычисленным значениям компонентов синдрома.

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

Рассмотрим многочлен вида

, (8.2)

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

.

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

Таким образом, алгоритм декодирования произвольного БЧХ–кода состоит из следующих этапов:

– вычисление синдрома по принятой комбинации символов;

– определение коэффициентов многочлена локаторов ошибок ;

– нахождение корней многочлена , а значит, и локаторовошибок;

– определение значений компонент вектора ошибок (для не двоичных кодов);

– построение вектора ошибок и исправление принятой комбинации.

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

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

.

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

,

где – остаток от деленияна минимальный многочлен–го корня порождающего многочлена. Подстановка в–е соотношение корнядает

,

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

Этап 2.В зависимости от кратности исправляемых ошибок используются различные алгоритмы определения коэффициентов многочлена локаторов. В том случае, когда БЧХ–код ориентирован на исправление ошибок большой кратности, эффективным оказываетсяметод Берлекэмпа–Месси. Суть его состоит в сведении данной задачи к нахождению коэффициентов многочлена, который задает линейный регистр сдвига минимальной длины с обратной связью, генерирующий известную последовательность компонентов синдрома. Если же БЧХ–код рассчитан на исправление ошибок малой кратности, то используетсяметод Питерсона–Горенстейна–Цирлера, основу которого составляет следующая теорема.

Теорема 8.7.1.Матрицавида

,

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

Доказательство теоремы основано на использовании матрицы Вандермонда.

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

или

.

Данное равенство выполняется при каждом и, следовательно, просуммировав их по всем, для каждогополучим

,

где последний переход учитывает соотношения (8.1).

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

,

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

.

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

Определив кратность вектора ошибок, появляется возможность найти коэффициенты многочлена локаторов ошибок

,

тем самым, завершив второй этап процедуры декодирования.

Этап 3.Учитывая конечность поля, вычисление корней многочленаосуществляется простым перебором элементовкак степеней примитивного элемента,. Корнем многочлена считается такой, для которого выполняется условие

Данный метод проб и ошибок известен под названием процедуры Ченя.

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

.

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

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

,

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

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

,

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

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

Соседние файлы в папке Конспект по ТОИ