Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм декодирования кодов Рида-Соломона, С какой степени считать синдромы? 
V
    Опции темы
Hirurg2605
  Дата 4.9.2012, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 10.1.2012

Репутация: нет
Всего: нет



Добрый день! Я пишу декодер Кодов Рида-Соломона и из-за разногласий в разных источниках не могу закончить программу в связи со следующей проблемой.
В своей программе я кодирую сообщение стандартным кодером из библиотеки Intel Performance Primitive, а декодирую с помощью функций полиномиальной алгебры из той же библиотеки. Так вот суть проблемы:
1) если считать синдромы как значения полинома принятого кода от значения степеней примитивного элемента альфа поля Галуа (Si = r(ai), i = 0, ..., 2*t-1), то мы получаем нулевые синдромы в случае отсутствия ошибок или ненулевые синдромы с помощью которых находим адекватные позиции от 1-ой до 8-ми ошибок (включительно). Но на этапе нахождения значений ошибок получаются неверные значения;
2) если считать синдромы как значения полинома принятого кода от значения степеней примитивного элемента альфа поля Галуа (Si = r(ai), i = 1, ..., 2*t), то мы получаем ненулевой синдром S2*t в случае отсутствия ошибок, НО при этом декодер корректно находит позиции и значения от 1-ой до 7-ми ошибок (включительно). Однако, если в сообщении допущено 8 ошибок декодер не находит их позиции, так как не может найти корни многочлена локаторов ошибок, как если бы число ошибок превосходило исправляющую способность кода.
В моём алгоритме я пробовал сочетать два набора синдромов, первый - для нахождения позиций ошибок, второй - для нахождения их значений, но для случая восьми ошибок значения всё равно вычисляются неверно.
Кто-нибудь сталкивался с такой проблемой? Что можно или нужно изменить в алгоритме?

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  RS_204_188_ipp.zip 4,11 Kb
PM MAIL   Вверх
Hirurg2605
Дата 17.9.2012, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 10.1.2012

Репутация: нет
Всего: нет



Всем спасибо, проблема решена!  smile 
Надо было всего лишь изменить синдромный многочлен (вместо s(x) = 1 + x^s1 + x^2*s2 + ... + x^(2*t)*s2*t взять s(x) = x^s1 + x^2*s2 + ... + x^(2*t)*s2*t) и локатор полиномов считать как НОД(s(x),x^(2*t)), а не НОД(s(x),x^(2*t+1)).
Может кому-то поможет  smile 
PM MAIL   Вверх
boostcoder
Дата 17.9.2012, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



в boost.sandbox лежит библиотека для операций с кодами Рида-Соломона. она даже работает.
вот только название немогу вспомнить. склероз совсем замучил  smile 
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0757 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.