Перейти к содержанию
    

Декодирование кодов Рида-Соломона

Доброго времени суток.!

 

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

 

Мой первый вопрос касается процедуры Ченя:

Как выполняется данный алгоритм для укороченных кодов.?

Я использую код (127, 120) над полем GF(2^8). Согласно процедуре Ченя мы перебираем все возможные примитивные элементы поля и подставляем в найденный нами полином локаторов ошибок. Все примитивные элементы a^x которые обнуляют наш полином являются его корнями. Соответственно, степень примитивного элемента (в нашем случае x) я вляется позицией, на которой произошла ошибка. Так я понял теорию, не понятно, что делать, если у меня коды укороченные и всего 127 позиций на посылку РС а корень полинома, скажем равен a^220. .?

 

Мой второй вопрос относится к алгоритму Берлекэмпа-Месси.

Я вычитал в интернете, что наиболее эффективный и оптимальный при реализации на ПЛИС алгоритм нахождения полинома локаторов это модификация алгоритма БМ известная как RiBM. Кто-нибудь реализовывал этот алгоритм.? Дайте, пожалуйста ссылку, где можно найти подробное описание этого алгоритма, сам пока не нашел...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все кого знаю готовые ядра используют.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не понятно, что делать, если у меня коды укороченные и всего 127 позиций на посылку РС а корень полинома, скажем равен a^220. .?

ну как бы добить нулями и стартануть алгоритм с нужной точки ?

 

Я вычитал в интернете, что наиболее эффективный и оптимальный при реализации на ПЛИС алгоритм нахождения полинома локаторов это модификация алгоритма БМ известная как RiBM. Кто-нибудь реализовывал этот алгоритм.? Дайте, пожалуйста ссылку, где можно найти подробное описание этого алгоритма, сам пока не нашел...

на этом форуме выкладывал статически конфигурируемый РС кодер (в том числе и для укороченных кодов и со стираниями), в котором есть в том числе и RiBM реализация. на декодирование уходит check тактов. Ищите, где то тут лежит на SV

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на этом форуме выкладывал статически конфигурируемый РС кодер (в том числе и для укороченных кодов и со стираниями), в котором есть в том числе и RiBM реализация. на декодирование уходит check тактов. Ищите, где то тут лежит на SV

 

А можете посоветовать, где почитать словесное описание этого алгоритма.?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можете посоветовать, где почитать словесное описание этого алгоритма.?

в той теме, статьи тоже были выложены. найдите статью

High-Speed Architectures for Reed-Solomon Decoders Dilip V. Sarwate, Fellow, IEEE, and Naresh R. Shanbhag. Member. IEEE там есть все

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну как бы добить нулями и стартануть алгоритм с нужной точки ?

 

Похоже я вообще не правильно воспринял алгоритм декодирования укороченных кодов... Т.е. даже если я имею укороченный код с N=127 я должен его добить нулями до 255 и прогнать БМА по стандартной программе для обычных кодов.?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже я вообще не правильно воспринял алгоритм декодирования укороченных кодов... Т.е. даже если я имею укороченный код с N=127 я должен его добить нулями до 255 и прогнать БМА по стандартной программе для обычных кодов.?

Нет, зачем же. Ведь вы добиваете нулями сверху. Соответственно результат прогона 128 нулей (255-127) будет давать всегда один и тот же результат. Так зачем его каждый раз просчитывать, можно сразу установить регистры в нужное состояние, как после 128 нулей и оставшиеся 127 прогонять уже последовательно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использую следующий алгоритм для поиска полинома локаторов:

 

da04ab6ef4df78bdbecef5f29c00806c.png

 

Возник вопрос...

Судя по последней строке псевдокода, функция всегда будет возвращать вектор размером t вне зависимости от кол-ва случившихся ошибок, следовательно в случае, когда ошибок > t вернется полином степени не больше t, а значит Чень сможет найти корней не больше t.

Как в такой ситуации оценить, сможет декодер восстановить данный пакет или нет.?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использую следующий алгоритм для поиска полинома локаторов:

 

Возник вопрос...

Судя по последней строке псевдокода, функция всегда будет возвращать вектор размером t вне зависимости от кол-ва случившихся ошибок, следовательно в случае, когда ошибок > t вернется полином степени не больше t, а значит Чень сможет найти корней не больше t.

Как в такой ситуации оценить, сможет декодер восстановить данный пакет или нет.?

Если повезет и ошибка будет обнаружимой то в процедуре Ченя будет найдено ошибок меньше, чем степень полинома. Только так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если повезет и ошибка будет обнаружимой то в процедуре Ченя будет найдено ошибок меньше, чем степень полинома. Только так.

 

Насколько я понял, степень полинома у нас всегда t. Как же отличить ситуацию, когда произошло ошибок <t и когда >t, если и в том и в другом случае Чень найдет корней меньше t

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понял, степень полинома у нас всегда t. Как же отличить ситуацию, когда произошло ошибок <t и когда >t, если и в том и в другом случае Чень найдет корней меньше t

никак. одно кодовое слово, заменилось на другое кодовое слово.

 

ЗЫ. тема кстати обсуждалась на форуме многократно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

никак. одно кодовое слово, заменилось на другое кодовое слово.

 

ЗЫ. тема кстати обсуждалась на форуме многократно

 

Странный какой-то алгоритм, в классическом БМ декодер четко определяет может он декодировать принятую комбинацию или нет, а тут получается неизвестно восстановлена последовательность или нет..(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...