реклама на сайте
подробности

 
 
> Порождающий многочлен g(x), синдром ошибки S, Формулы для декодирующих устройств циклического кода
CocoNut
сообщение May 26 2007, 18:23
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 26-05-07
Пользователь №: 27 981



Есть процедура декодирования:
Принятую кодовую комбинацию f(x) делим на порождающий многочлен g(x) и подсчитываем вес остатка. Если вес остатка <=s (насколько я понимаю это синдром ошибки), то принятую комбинацию складываем по модулю 2 с полученным остатком. Сумма дает правильную комбинацию.
По каким формулам рассчитывается g(x), s, и вес остатка?
Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Serg76
сообщение May 27 2007, 13:48
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(CocoNut @ May 26 2007, 21:23) *
Есть процедура декодирования:
Принятую кодовую комбинацию f(x) делим на порождающий многочлен g(x) и подсчитываем вес остатка. Если вес остатка <=s (насколько я понимаю это синдром ошибки), то принятую комбинацию складываем по модулю 2 с полученным остатком. Сумма дает правильную комбинацию.
По каким формулам рассчитывается g(x), s, и вес остатка?
Заранее благодарен.

Описанный Вами алгоритм декодирования по синдрому в общем неверен. Есть один ключевой момент. Вектор синдрома действительно равен остатку от деления принятого вектора V(x) на генераторный полином g(x). Синдром принятого вектора содержит информацию, необходимую для исправления вектора ошибки e(x), V(x) = U(x) + e(x), где U(x) - переданное кодовое слово. Если вектор синдрома нулевой, то считается, что принятый вектор неискажен и является правильным кодовым словом (но все это, конечно, в пределах корректирующей способности применяемого кода). Если синдром отличен от нуля, значит обнаружена ошибка и принятый вектор - это искаженное переданное кодовое слово; данная ошибка исправляется путем прибавления к принятому вектору (сложение по модулю 2) вектора ошибки, указанного синдромом, а не самого синдрома (это и есть ключевой момент в неверности понимания Вами декодирования по синдрому), т.е. должна существовать некоторая таблица со всеми возможными комбинациями векторов ошибки, адреса которых и будут ассоциироваться с векторами полученных синдромов. А в приведенном Вами алгоритме предложено принятую комбинацию сложить непосредственно с полученым остатком, т.е. синдромом, а это неверно (исключением может быть ситуация при использовании кодов Хемминга с dmin=3, в которых синдром и будет являться номером позиции ошибочного бита). Что из этого может получиться:

V(x) + S(x) = q(x)*g(x) + S(x) + S(x) = q(x)*g(x) = ???????????, где q(x) - частное от деления V(x) на g(x).

Расчет синдрома S(x) выполняется с помощью схемы деления, аналогичной схеме кодирования, используемой в схеме кодера (т.к. любое декодирующее устройство обязательно должно содержать копию схемы кодера в том или ином виде), например, с помощью (n-k)-разрядного регистра сдвига, где n и k - длина кодового слова и информационная часть, соответственно. А генераторные полиномы g(x) не рассчитываются, а должны быть известны заранее, иначе процедура кодирования/декодирования не возможна (данные полиномы рассчитываются методом перебора и выбираются те, которые обладают оптимальными корректирующими или другими свойствами, они приведены в различных справочных материалах).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 02:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01346 секунд с 7
ELECTRONIX ©2004-2016