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

 
 
11 страниц V  « < 5 6 7 8 9 > »   
Reply to this topicStart new topic
> Коды БЧХ, Вопросы по алгоритмам декодирования
des00
сообщение Mar 14 2012, 09:11
Сообщение #91


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Denisnovel @ Mar 14 2012, 04:05) *
Код укороченный. Проблема где-то в инициализации

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


--------------------
Go to the top of the page
 
+Quote Post
Denisnovel
сообщение Mar 14 2012, 09:33
Сообщение #92


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 31-12-07
Из: Фрязино М.О.
Пользователь №: 33 753



Сейчас сделал так. Вроде работает. Буду тестировать.
Код
  function automatic data_t start_root_index(input int step);
    start_root_index = (step*(gf_n_max - n /*+ 1*/)) % gf_n_max;
  endfunction
Go to the top of the page
 
+Quote Post
Denisnovel
сообщение Mar 14 2012, 09:33
Сообщение #93


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 31-12-07
Из: Фрязино М.О.
Пользователь №: 33 753



,,

Сообщение отредактировал Denisnovel - Mar 14 2012, 09:33
Go to the top of the page
 
+Quote Post
mad_physicist
сообщение Mar 26 2012, 05:14
Сообщение #94





Группа: Новичок
Сообщений: 6
Регистрация: 26-03-12
Пользователь №: 71 000



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

Go to the top of the page
 
+Quote Post
des00
сообщение Mar 27 2012, 05:16
Сообщение #95


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(mad_physicist @ Mar 25 2012, 23:14) *
Буду особенно благодарен за комментарии с примерами.

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


--------------------
Go to the top of the page
 
+Quote Post
mad_physicist
сообщение Mar 28 2012, 01:38
Сообщение #96





Группа: Новичок
Сообщений: 6
Регистрация: 26-03-12
Пользователь №: 71 000



Цитата(des00 @ Mar 27 2012, 12:16) *
что мешает найти в матлабе файлик rsdec.m или bchdec.m и посмотреть ?


отсутствие уверенности в том, что там именно нужный мне алгоритм
Go to the top of the page
 
+Quote Post
Gold777
сообщение Mar 28 2012, 11:15
Сообщение #97


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022



Цитата(mad_physicist @ Mar 26 2012, 09:14) *
Господа, просвятите начинающего!
Задача стоит реализовать на языке MATLAB алгоритм Берлекемпа-Месси в декодере БЧХ. Алгоритм предусматривает использование компонент (элементов) синдрома, которые определяются как значения принятого слова (полинома) в нулях кода (в корнях порождающего многочлена). Мне непонятно, в какой форме должны находиться и использоваться в этой ситуации корни порождающего многочлена. Буду особенно благодарен за комментарии с примерами.

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

Сообщение отредактировал Gold777 - Mar 28 2012, 11:26
Go to the top of the page
 
+Quote Post
mad_physicist
сообщение Mar 29 2012, 01:23
Сообщение #98





Группа: Новичок
Сообщений: 6
Регистрация: 26-03-12
Пользователь №: 71 000



Цитата(Gold777 @ Mar 28 2012, 18:15) *
Если хотите разобраться в алгоритме БМ, почитайте Морелос-Сарагоса - Искусство помехоустойчивого кодирования. Для алгоритма БМ нужны только компоненты синдромов. Компоненты синдромов рассчитываются с помощью элементов поля Галуа.
О чем вы спрашиваете мне не очень понятно ( Что значит в какой форме должны находиться и использоваться в этой ситуации корни порождающего многочлена?).

То, что я написал, основано именно на книге Морелоса-Сарагосы и статье С.В. Фёдорова о реализации БМ-алгоритма для РС-кодов на ПЛИС. Компоненты синдромов вычисляются путём подстановки корней порождающего полинома в полином принятого сообщения. Я пока не понимаю, как именно это должно происходить. То есть у меня имеется порождающий полином 14-й степени, нахождение его корней "в лоб", обычной арифметикой, даёт мне 14 комплексных корней. Я подозреваю, что такое решение не есть правильное, и необходимо использовать полиноминальную арифметику. Но каким образом это сделать я пока не знаю.
Попутно задам ещё один вопрос: подскажите, как связаны между собой компоненты синдрома, о которых говорилось выше, и синдромный полином?
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 29 2012, 03:31
Сообщение #99


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(mad_physicist @ Mar 27 2012, 20:38) *
отсутствие уверенности в том, что там именно нужный мне алгоритм

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


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 29 2012, 15:13
Сообщение #100


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



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

Решил проверить работу декодера БЧХ со стираниям. Взял алгоритм из Скляра :
1. заместить стирания нулями
2. заместить стирания единицам
3. декодировать оба и выбрать то слово, которое соответствует наименьшему числу ошибок, исправленных вне позиций стирания.

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

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

Спасибо.
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  bch_era.zip ( 4.57 килобайт ) Кол-во скачиваний: 27
 


--------------------
Go to the top of the page
 
+Quote Post
Gold777
сообщение Mar 29 2012, 20:17
Сообщение #101


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022



Цитата(mad_physicist @ Mar 29 2012, 05:23) *
То, что я написал, основано именно на книге Морелоса-Сарагосы и статье С.В. Фёдорова о реализации БМ-алгоритма для РС-кодов на ПЛИС. Компоненты синдромов вычисляются путём подстановки корней порождающего полинома в полином принятого сообщения. Я пока не понимаю, как именно это должно происходить. То есть у меня имеется порождающий полином 14-й степени, нахождение его корней "в лоб", обычной арифметикой, даёт мне 14 комплексных корней. Я подозреваю, что такое решение не есть правильное, и необходимо использовать полиноминальную арифметику. Но каким образом это сделать я пока не знаю.
Попутно задам ещё один вопрос: подскажите, как связаны между собой компоненты синдрома, о которых говорилось выше, и синдромный полином?

Необходимо использовать арифметику в поле Галуа. Для реализации в ПЛИС вам синдромный полином не нужен, нужны компоненты синдрома, которые потом используются в алгоритме для нахождения коэффициентов полинома локаторов ошибок. Разберитесь для начала как находятся компоненты синдрома и с арифметикой в поле Галуа, а потом уже к алгоритму переходите. Хорошо написано это в статье Рахман П.А. Основы защиты данных от разрушения. Коды Рида-Соломона.
Go to the top of the page
 
+Quote Post
mad_physicist
сообщение Apr 2 2012, 01:46
Сообщение #102





Группа: Новичок
Сообщений: 6
Регистрация: 26-03-12
Пользователь №: 71 000



Цитата(Gold777 @ Mar 30 2012, 03:17) *
Необходимо использовать арифметику в поле Галуа. Для реализации в ПЛИС вам синдромный полином не нужен, нужны компоненты синдрома, которые потом используются в алгоритме для нахождения коэффициентов полинома локаторов ошибок. Разберитесь для начала как находятся компоненты синдрома и с арифметикой в поле Галуа, а потом уже к алгоритму переходите. Хорошо написано это в статье Рахман П.А. Основы защиты данных от разрушения. Коды Рида-Соломона.

Спасибо, обязательно воспользуюсь Вашими рекомендациями
Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 4 2012, 12:02
Сообщение #103


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

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Цитата(des00 @ Mar 29 2012, 19:13) *
Кол-во исправляемых стираний определяется по формуле p <= d-1. Набросал в матлабе простой пример. взял код {255, 131, 18}, с dmin = 37. Но не вижу исправления 36 стираний %(

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

Не смог разобраться с системой накопления статистики. Смысл графика также не очень ясен. И к своему стыду не понял, что имеется в виду под spike. smile3046.gif
У меня была более простая моделька (так сказать, показательно-учебная), но идентичная по сути. Ваш пример «хавает», исправляя 36 стираний при нуле ошибок.
Кол-во исправляемых стираний + ошибок, действительно, по формуле 2b + u < d, где b — кол. битовых ошибок, u — количество стираний.

Прикрепленный файл  bch_with_erasures.zip ( 1.39 килобайт ) Кол-во скачиваний: 101

Если, конечно, актуально.
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 4 2012, 16:39
Сообщение #104


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(x736C @ Jun 4 2012, 06:02) *
Не смог разобраться с системой накопления статистики. Смысл графика также не очень ясен. И к своему стыду не понял, что имеется в виду под spike. smile3046.gif

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

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

Прикрепленный файл  bch_with_erasures.zip ( 1.39 килобайт ) Кол-во скачиваний: 101

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

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

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


--------------------
Go to the top of the page
 
+Quote Post
SKov
сообщение Jun 4 2012, 18:16
Сообщение #105


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(des00 @ Jun 4 2012, 20:39) *
в турбокоды нырну

Лучше ныряйте в LDPC.
Go to the top of the page
 
+Quote Post

11 страниц V  « < 5 6 7 8 9 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 14:07
Рейтинг@Mail.ru


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