Здравствуйте! Пытаюсь выполнить задачи 6.9 и 6.12 из книги "Теория и практика кодов, контролирующих ошибки" Блейхута. В задаче 6.9 нужно построить кодер и декодер, вылавливающий ошибки для (19437, 19408) кода Файра. Насколько я понял, кодер устроен следующим образом: мы берём ту последовательность, которую нужно передать, добавляем в конец 19437 - 19408 = 29 нулей (n - k в теории для кода (n, k)). Далее мы делим получившуюся последовательность на порождающий многочлен(у меня это произведение (x^19 - 1)*p(x), где p(x) - примитивный многочлен степени 10 и взять его нужно из таблицы примитивных многочленов, которая есть в той же книге). После деления мы получим остаток, который также называется синдромом, этот остаток мы запишем вместо тех самых 29 нулей в конце исходной последовательности. Всё, код готов к передаче. Так устроен кодер. Гораздо хуже дела у меня с пониманием устройства декодера для вылавливания ошибок. Мы можем сразу узнать длину исправляемого пакета. Делается это так: из многочлена (x^19 - 1) мы берём степень c = 19, которая равна c = 2*b - 1, где b - длина исправляемого пакета. Получили длину b = 10. Это общие данные для циклических кодов. Теперь данные относительно кодера из 6 главы. Я могу понять сам способ исправления ошибок. Не могли бы вы пояснить, в чём он заключается? И правильно ли я понимаю сами алгоритмы построения кодера?
|