Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СДЭС_Уч_метод_пос_кодирование2.doc
Скачиваний:
97
Добавлен:
03.12.2018
Размер:
1.89 Mб
Скачать

3.5.3. Декодер pgz

Впервые этот алгоритм был рассмотрен Питерсоном. Решение ключевого уравнения (3.16) может быть найдено с помощью стандартной техники решения системы линейных уравнений. Это решение дает коэффициенты σ(х). Применению этой техники мешает только то, что неизвестно действительное число ошибок в принятом слове. По этой причине приходится проверять гипотезу о том, что действительное количество ошибок в принятом слове равно v. Предположим, что не все синдромы Si, 1 ≤ i ≤2t равны нулю. Очевидно, что принятое слово совпадает с одним из кодовых, если все синдромы равны нулю. Тогда процедура декодирования на этом завершается!

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

(3.22)

и сравнивает его с нулем. Если определитель равен нулю, то действительное число ошибок меньше, чем предполагалось. Значение i уменьшается на единицу и снова проверяется определитель. Процедура повторяется, если это необходимо, пока i >1. Как только окажется, что определитель не равен нулю, вычисляется обратная матрица для матрицы синдромов и вычисляются значения σ1 , σ2 ,..., σ v, где v = i. В случае, когда ∆i = 0, для i = 1, 2,..., td, декодирование считается безуспешным и регистрируется обнаружение неисправляемой комбинации ошибок.

Пример 35. В этом примере полином локаторов ошибок для (15, 5, 7) БЧХ кода из Примера 34 находится с помощью PGZ алгоритма. Предположим для начала, что имеется i=td = 3 ошибки. Определитель ∆3 вычисляется (с использованием алгебраического дополнения) следующим образом:

Так как ∆3 ≠ 0, то подтверждается предположение о том, что в принятом слове три ошибки. Подставляя синдромы, найденные в Примере 34, в ключевое уравнение (3.16), получаем:

(3.23)

Напомним, что (∆3)-1 = a-14 = а. Решение уравнения (3.23) имеет вид:

Таким образом, получили что совпадает с результатом, полученным по алгоритму БМ в Примере 34.

3.5.4. Евклидов алгоритм (еа)

В основе этого алгоритма лежит хорошо известная процедура нахождения наибольшего общего делителя (НОД) двух полиномов (или целых чисел). Ниже рассматривается применение ее для декодирования БЧХ кодов.

Определим полином значений ошибок как Λ(х) = σ(x)S(x), где синдромный полином имеет вид

(3.24)

Из уравнения (3.16) следует, что

(3.25)

Задача декодирования может быть переформулирована как задача определения многочлена Λ(х), удовлетворяющего уравнению (3.25). Это решение может быть найдено применением расширенного алгоритма Евклида к многочленам r0(x) = xd, d = 2td+ 1 и r1(x) = S(x). Если нa j-ом шаге алгоритма получено решение

такое, что deg[rj(x)] ≤ td, то Λ(х) = rj(x) и σi(x) = bj(x). Заметим, что для задачи декодирования полином аi(х) не представляет интереса, так как решение (3.25) ищется по модулю хd.

Расширенный алгоритм Евклида вычисления НОД состоит в следующем.

Расширенный алгоритм Евклида: Вычисление НОД(r0(x), r1(x))

Вход: r0(x), r1(x), deg[r0(x)] > deg[r1(x)]

Начальные условия: а0(х) = 1, b0(х) = 0, а1(х) = 0, b1(х) = 1.

На шаге j (j ≥ 2) применить длинное деление к многочленам

•Вычислить

aj(x) = aj-2(x)-qj(x)aj-1(x), bj(x) = bj-2(x)-qj(x)bj-1(x)

•Остановить вычисления на итерации last = jlast, когда deg[rlast(x)]=0.

Выход: НОД(r0(х), r1(x)) = rk(x), где к наибольшее ненулевое целое такое, что rк(х) ≠ 0 и k <jlast.

Пример 36. В этом примере вычисляется полином локаторов ошибок о(х) для (15, 5, 7) кода БЧХ из примера 34 по алгоритму Евклида.

• Начальные условия:

Так как deg[r4(x)] = 1 ≤ 3, алгоритм останавливается.

Очевидно, что многочлен

имеет те же самые корни, что и многочлены, найденные алгоритмами ВМА и PGZ (см. Пример 37 ниже), и отличается только константным множителем.

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