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

Чем трижды кросcпостами загромождать форум нарушая правила.
Цитата
Участникам форума запрещается:
3.2 Создавать два или более сообщения (темы) одинакового содержания (кросспост)....

Потрудились-бы проблему сформулировать.
Serg76
Цитата(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) не рассчитываются, а должны быть известны заранее, иначе процедура кодирования/декодирования не возможна (данные полиномы рассчитываются методом перебора и выбираются те, которые обладают оптимальными корректирующими или другими свойствами, они приведены в различных справочных материалах).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.