|
БЧХ декодер - поясните |
|
|
|
May 4 2011, 09:59
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Добрый день всем. Догнали и меня БЧХ коды. Делаю декодер, аппаратная реализация, перечитал кучу книжек, все равно непонятные моменты остались. Наворочены формулы, индексы - не поймешь, а в реализации все проще как оказывается. Такие вопросы, подскажите пожалуйста: 1. Если у меня 60 проверочных бит (исправляет 6 ошибок) - то у меня должно быть 60 бит синдрома ошибок? 2. Синдром вычисляем сдвиговым регистром (умножаем на порождающий полином). А вот дальше тупик. Что с ним делать? Надо искать полином локаторов ошибок. Нашел реализацию процедуры ченя (картинка). Что есть что на ней непонятно, несколько раз прочитал- все равно не понятно. Кто имел дело с декодированием, наверняка все очевидно покажется. 3. Что такое альфа и лябда на картинке? 4. Чему равно t - количеству проверочных бит или общему количеству бит? 5. Написано все возможные положения ошибок проверяются последовательно - если у меня 560 бит всего, то я что, должен проверить 2^560 вариантов комбинаций ошибок? Что то нереально. Или по одной надо проверять последовательно? 6. Что делает квадрат на блок схеме с лябдой? Это регистр? Если спросил что-то глупое- сразу извиняюсь, недавно в тему начал вникать, каша в голове
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
May 10 2011, 21:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(des00 @ May 10 2011, 19:19)  посмотрю позже Исправил я у себя мелкие ошибки, скомпилировал Ваш проект. Взял отдельно модуль bch_syndrome_count_mult с параметром 1 (вычисляю пока только первый синдром), загнал в тестбенч, проверил со своим аналогом на си - данные (значения синдрома после каждого такта) совпадают, проверял на примерно 60 значениях. На вход подавал в одном случае все единицы, в другом последовательность 0,1,0,1,0,1,... В обоих случаях полное совпадение с результатами "модели" на си. Но когда в модель на си подаю реальный бчх код длиной 532 - синдром нулевой почему то не получается, при этом те же данные подаю на такой код: Код for (i = 1; i <= t2; i++) { calc_m(i); //моя функция вычисления MULT_BY_A по хдл-коду calc_syn(i); //моя функция вычисления синдрома по хдл-коду s[i] = 0; for (j = 0; j < N_bch; j++) //N_bch=532 if (input[j] != 0) s[i] ^= alpha_to[(i * j) % n_bch];//n_bch=1023; if (s[i] != 0) syn_error = 1; // Флаг ненулевого синдрома (т.е. обнаружена ошибка) s[i] = index_of[s[i]]; // Переход к степеням от альфа } первый синдром - нулевой. Таблицы alpha_to и index_of одни и те же. Свои мысли кончились, подскажите где копать. Кстати, значение синдрома после каждого клока должно совпадать со значением синдрома в этом коде после каждой итерации? UPD: Развернул поток битов БЧХ зеркально (т.е. первый бит это последний, а последний- это первый), сишная модель hdl теперь выдает нормальный синдром 0,а код выше - то же значение которое выдавала сишная модель до разворота битов. Что сделать чтоб в таком же порядке биты подавать (как и в программу) и при этом чтоб hdl правильно считал синдромы?
|
|
|
|
|
May 11 2011, 01:18
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(alexPec @ May 10 2011, 15:38)  Кстати, значение синдрома после каждого клока должно совпадать со значением синдрома в этом коде после каждой итерации? да Цитата UPD: Развернул поток битов БЧХ зеркально (т.е. первый бит это последний, а последний- это первый), сишная модель hdl теперь выдает нормальный синдром 0,а код выше - то же значение которое выдавала сишная модель до разворота битов. Что сделать чтоб в таком же порядке биты подавать (как и в программу) и при этом чтоб hdl правильно считал синдромы? начинаю припоминать, что то похожее. я отталкивался от аппаратной реализации и относительно сишной базы, которую использовал, там была инверсия битов. Поэтому референсные сишные примеры для начального тестирования приходилось править. Вопрос вычисления синдромов зависит же не только от того какой бит пихать, но и от того как работает кодер. Нужно что бы они работали одинаково. И пихать для тестов в кодер лучше ранодом, инициализируемый, в случае чего констатным значением.
--------------------
|
|
|
|
|
May 12 2011, 17:18
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(des00 @ May 11 2011, 05:18)  да
начинаю припоминать, что то похожее. я отталкивался от аппаратной реализации и относительно сишной базы, которую использовал, там была инверсия битов. Поэтому референсные сишные примеры для начального тестирования приходилось править.
Вопрос вычисления синдромов зависит же не только от того какой бит пихать, но и от того как работает кодер. Нужно что бы они работали одинаково. И пихать для тестов в кодер лучше ранодом, инициализируемый, в случае чего констатным значением. Уважаемый Des, СПАСИБО! Со всем разобрался, все получилось как хотел. Помогли сэкономить кучу времени! Дай Бог здоровья тебе добрый человек!
|
|
|
|
Сообщений в этой теме
alexPec БЧХ декодер - поясните May 4 2011, 09:59 des00 сорцы мои слейте, там все написано %) причем потом... May 4 2011, 10:02 alexPec Цитата(des00 @ May 4 2011, 14:02) сорцы м... May 4 2011, 14:16 Джеймс Цитата(des00 @ May 4 2011, 14:02) сорцы м... May 4 2011, 17:45 des00 Цитата(alexPec @ May 4 2011, 03:59) 1. Ес... May 4 2011, 18:56 SKov Цитата(des00 @ May 4 2011, 22:56) разрядн... May 4 2011, 19:24  des00 Цитата(SKov @ May 4 2011, 13:24) Пожалуй,... May 4 2011, 19:59   Fast Цитата(des00 @ May 4 2011, 23:59) ИМХО вы... May 4 2011, 20:42 alexPec Спасибо! Стало яснее, дальше грызу гранит БЧХ ... May 5 2011, 08:53 Fast на данной схеме Альфа не элемент поля, а скорее ве... May 4 2011, 19:34 Fast раз уж разговор зашел
подскажите, нет ли у кого дл... May 5 2011, 09:36 des00 Цитата(Fast @ May 5 2011, 03:36) референс... May 5 2011, 09:47  alexPec Цитата(des00 @ May 5 2011, 13:47) смешно ... May 5 2011, 12:43   des00 Цитата(alexPec @ May 5 2011, 07:43) Как р... May 5 2011, 14:31    alexPec Уважаемый Des, увидел такую штуку в Вашем коде при... May 6 2011, 06:33     Mikhalych Цитата(alexPec @ May 6 2011, 10:33) ... э... May 6 2011, 07:04     SKov Цитата(alexPec @ May 6 2011, 10:33) как я... May 6 2011, 07:27     des00 Цитата(alexPec @ May 6 2011, 01:33) Уважа... May 6 2011, 07:31      alexPec Цитата(des00 @ May 6 2011, 11:31) откуда ... May 6 2011, 14:52       alexPec Цитатаумножитель в полях галуа вида variable by co... May 7 2011, 21:00        des00 Цитата(alexPec @ May 7 2011, 15:00) Вот о... May 8 2011, 02:28         alexPec Цитата(des00 @ May 8 2011, 06:28) да, тол... May 10 2011, 08:00 Fast спасибо, обнадежили, я думал, что гугл сломался )... May 5 2011, 10:06 SKov Цитата(Fast @ May 5 2011, 14:06) сделаю с... May 5 2011, 10:42  Fast Цитата(SKov @ May 5 2011, 14:42) Если сер... May 6 2011, 11:44   SKov Цитата(Fast @ May 6 2011, 15:44) ушло 2 ч... May 6 2011, 16:02    Serg76 Цитата(SKov @ May 6 2011, 19:02) И почему... May 6 2011, 16:52     SKov Цитата(Serg76 @ May 6 2011, 20:52) Челове... May 6 2011, 17:48      Serg76 Цитата(SKov @ May 6 2011, 20:48) Если счи... May 6 2011, 19:14    Fast Цитата(SKov @ May 6 2011, 20:02) У вас дв... May 6 2011, 20:20     SKov Цитата(Fast @ May 7 2011, 00:20) мягкий B... May 6 2011, 21:39      Fast Цитата(SKov @ May 7 2011, 01:39) Это все ... May 7 2011, 06:22       SKov Цитата(Fast @ May 7 2011, 10:22) я сходу ... May 7 2011, 11:04        Fast Цитата(SKov @ May 7 2011, 15:04) Это наиб... May 7 2011, 22:02         SKov Цитата(Fast @ May 8 2011, 02:02) это не н... May 8 2011, 06:55          Fast Цитата(SKov @ May 8 2011, 10:55) Худший п... May 8 2011, 11:43          Fast Цитата(SKov @ May 8 2011, 10:55) Если LDP... Nov 8 2011, 18:15   x736C Цитата(des00 @ May 11 2011, 05:18) И пиха... May 11 2011, 06:55   alexPec Цитата(des00 @ May 11 2011, 05:18) Вопрос... May 11 2011, 07:07     alexPec Цитата(des00 @ Jul 15 2011, 10:56) думаю ... Jul 16 2011, 17:40 NIKOLASIUS Уважемые ГУРУ по кодам. Проясните ситуацию для мен... May 12 2011, 13:11 petrov Цитата(NIKOLASIUS @ May 12 2011, 17:11) У... May 12 2011, 15:51 NIKOLASIUS Применив CRC-16 совместно с БЧХ кодом (к кодируемы... May 18 2011, 08:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|