[an error occurred while processing this directive]
|
Декодирование блока в 4096 бит на мой взгляд не реализуемо на практике. Во первых, BCH коды бывают только 2^n-1, т.е. возможен только блок длиной 4095 бит, из них определенное количество уйдет к на "контрольную сумму".
Я видел практические реализации максимум с 255 битами в кодовом слове. Практические проблемы возникают куда раньше, я потратил кучу времени на портирование С кода на ассемблер для кодового слова 127 бит - были очень серьезные проблемы с производительностью. Одна ошибка фиксится практически "нахаляву", можно даже не проверять блок, а сразу фиксить одну ошибку и проверять потом (проверка тоже не бесплатная). Второй бит дается уже большей кровью, третий еще большей. То ли дело витерби - что один бит фиксит, что сотню - никакой разницы в производительности (если он справляется c задачей).
Используйте кодовые слова 63/127/255 бит (большой пакет можно разделить на несколько маленьких), бOльшие блоки уже чистый мазохизм. У BCH есть еще одна проблема - любой циклический сдвиг кодового слова является верным кодовым словом. Поэтому если не известно точное начало блока с точностью до бита, то данные элементарно могут быть декодированы неверно. C CRC насколько я знаю те-же проблемы.
А почему Вы вообще решили использовать BCH? В последние годы популярность кода падает, безусловно "конкатенированные" коды часто дают лучший результат.
E-mail: info@telesys.ru