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

Код укороченный. Проблема где-то в инициализации

если код укороченный и начинаете перебор с элемента a^n, то нужно скорректировать инициализацию на a^(gf_n_max - n) нулей.

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


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

Сейчас сделал так. Вроде работает. Буду тестировать.

  function automatic data_t start_root_index(input int step);
    start_root_index = (step*(gf_n_max - n /*+ 1*/)) % gf_n_max;
  endfunction

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


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

Господа, просвятите начинающего!

Задача стоит реализовать на языке MATLAB алгоритм Берлекемпа-Месси в декодере БЧХ. Алгоритм предусматривает использование компонент (элементов) синдрома, которые определяются как значения принятого слова (полинома) в нулях кода (в корнях порождающего многочлена). Мне непонятно, в какой форме должны находиться и использоваться в этой ситуации корни порождающего многочлена. Буду особенно благодарен за комментарии с примерами.

 

 

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


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

Буду особенно благодарен за комментарии с примерами.

что мешает найти в матлабе файлик rsdec.m или bchdec.m и посмотреть ?

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


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

что мешает найти в матлабе файлик rsdec.m или bchdec.m и посмотреть ?

 

отсутствие уверенности в том, что там именно нужный мне алгоритм

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


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

Господа, просвятите начинающего!

Задача стоит реализовать на языке MATLAB алгоритм Берлекемпа-Месси в декодере БЧХ. Алгоритм предусматривает использование компонент (элементов) синдрома, которые определяются как значения принятого слова (полинома) в нулях кода (в корнях порождающего многочлена). Мне непонятно, в какой форме должны находиться и использоваться в этой ситуации корни порождающего многочлена. Буду особенно благодарен за комментарии с примерами.

Если хотите разобраться в алгоритме БМ, почитайте Морелос-Сарагоса - Искусство помехоустойчивого кодирования. Для алгоритма БМ нужны только компоненты синдромов. Компоненты синдромов рассчитываются с помощью элементов поля Галуа.

О чем вы спрашиваете мне не очень понятно ( Что значит в какой форме должны находиться и использоваться в этой ситуации корни порождающего многочлена?).

Изменено пользователем Gold777

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


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

Если хотите разобраться в алгоритме БМ, почитайте Морелос-Сарагоса - Искусство помехоустойчивого кодирования. Для алгоритма БМ нужны только компоненты синдромов. Компоненты синдромов рассчитываются с помощью элементов поля Галуа.

О чем вы спрашиваете мне не очень понятно ( Что значит в какой форме должны находиться и использоваться в этой ситуации корни порождающего многочлена?).

То, что я написал, основано именно на книге Морелоса-Сарагосы и статье С.В. Фёдорова о реализации БМ-алгоритма для РС-кодов на ПЛИС. Компоненты синдромов вычисляются путём подстановки корней порождающего полинома в полином принятого сообщения. Я пока не понимаю, как именно это должно происходить. То есть у меня имеется порождающий полином 14-й степени, нахождение его корней "в лоб", обычной арифметикой, даёт мне 14 комплексных корней. Я подозреваю, что такое решение не есть правильное, и необходимо использовать полиноминальную арифметику. Но каким образом это сделать я пока не знаю.

Попутно задам ещё один вопрос: подскажите, как связаны между собой компоненты синдрома, о которых говорилось выше, и синдромный полином?

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


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

отсутствие уверенности в том, что там именно нужный мне алгоритм

угу, а если учесть что обе эти функции ссылаются на функцию из файла berlekamp.m, то да, действительно никакой уверенности нет %)))

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


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

Уважаемые гуру, подскажите что не так делаю.

 

Решил проверить работу декодера БЧХ со стираниям. Взял алгоритм из Скляра :

1. заместить стирания нулями

2. заместить стирания единицам

3. декодировать оба и выбрать то слово, которое соответствует наименьшему числу ошибок, исправленных вне позиций стирания.

 

Кол-во исправляемых стираний определяется по формуле p <= d-1. Набросал в матлабе простой пример. взял код {255, 131, 18}, с dmin = 37. Но не вижу исправления 36 стираний %(

 

Единственная разница алгоритма в Скляре и в примере в том, что в примере добавляются только стирания, по идее кол-во ошибок вне позиций стирания в обоих случаях должно быть одинаковым. Или я слишком упрощаю и в этом и есть моя ошибка ?

 

Спасибо.

post-3453-1333033822_thumb.png

bch_era.zip

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


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

То, что я написал, основано именно на книге Морелоса-Сарагосы и статье С.В. Фёдорова о реализации БМ-алгоритма для РС-кодов на ПЛИС. Компоненты синдромов вычисляются путём подстановки корней порождающего полинома в полином принятого сообщения. Я пока не понимаю, как именно это должно происходить. То есть у меня имеется порождающий полином 14-й степени, нахождение его корней "в лоб", обычной арифметикой, даёт мне 14 комплексных корней. Я подозреваю, что такое решение не есть правильное, и необходимо использовать полиноминальную арифметику. Но каким образом это сделать я пока не знаю.

Попутно задам ещё один вопрос: подскажите, как связаны между собой компоненты синдрома, о которых говорилось выше, и синдромный полином?

Необходимо использовать арифметику в поле Галуа. Для реализации в ПЛИС вам синдромный полином не нужен, нужны компоненты синдрома, которые потом используются в алгоритме для нахождения коэффициентов полинома локаторов ошибок. Разберитесь для начала как находятся компоненты синдрома и с арифметикой в поле Галуа, а потом уже к алгоритму переходите. Хорошо написано это в статье Рахман П.А. Основы защиты данных от разрушения. Коды Рида-Соломона.

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


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

Необходимо использовать арифметику в поле Галуа. Для реализации в ПЛИС вам синдромный полином не нужен, нужны компоненты синдрома, которые потом используются в алгоритме для нахождения коэффициентов полинома локаторов ошибок. Разберитесь для начала как находятся компоненты синдрома и с арифметикой в поле Галуа, а потом уже к алгоритму переходите. Хорошо написано это в статье Рахман П.А. Основы защиты данных от разрушения. Коды Рида-Соломона.

Спасибо, обязательно воспользуюсь Вашими рекомендациями

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


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

Кол-во исправляемых стираний определяется по формуле p <= d-1. Набросал в матлабе простой пример. взял код {255, 131, 18}, с dmin = 37. Но не вижу исправления 36 стираний %(

 

Единственная разница алгоритма в Скляре и в примере в том, что в примере добавляются только стирания, по идее кол-во ошибок вне позиций стирания в обоих случаях должно быть одинаковым. Или я слишком упрощаю и в этом и есть моя ошибка ?

Не смог разобраться с системой накопления статистики. Смысл графика также не очень ясен. И к своему стыду не понял, что имеется в виду под spike. :smile3046:

У меня была более простая моделька (так сказать, показательно-учебная), но идентичная по сути. Ваш пример «хавает», исправляя 36 стираний при нуле ошибок.

Кол-во исправляемых стираний + ошибок, действительно, по формуле 2b + u < d, где b — кол. битовых ошибок, u — количество стираний.

 

bch_with_erasures.zip

Если, конечно, актуально.

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


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

Не смог разобраться с системой накопления статистики. Смысл графика также не очень ясен. И к своему стыду не понял, что имеется в виду под spike. :smile3046:

spike - импульсная ошибка, моделирую канал с импульсными ошибками, при наличии 100% ой схемы их обнаружений. статистика - кол-во выбитых бит на блок и итоговый бер

 

У меня была более простая моделька (так сказать, показательно-учебная), но идентичная по сути. Ваш пример «хавает», исправляя 36 стираний при нуле ошибок.

Кол-во исправляемых стираний + ошибок, действительно, по формуле 2b + u < d, где b — кол. битовых ошибок, u — количество стираний.

 

bch_with_erasures.zip

Если, конечно, актуально.

конечно актуально, а то судя по молчанию гуру, у меня появилось подозрение что вопрос мега ламерский и я туплю сильно %)

 

правда тему я пока немного оставил, другим занялся. Спасибо что ответили, скоро обновлю выложенный бчх декодер версией со стираниями %) и в турбокоды нырну

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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