Остался открытым вопрос о методике построения кодов, минимальное расстояние
между кодовыми словами которых равно заданному числу. В 1960 году независимо
Боуз (Bose), Чоудхури (Chaudhuri) и Хоккенгем (Hocquengem) открыли способ
построения полиномиальных кодов, удовлетворяющих таким требованиям. Эти коды
получили названия кодов Боуза-Чоудхури-Хоккенгема или БЧХ-кодов (
Многочлен $$g(x)$$ степени $$k$$ называется
Например, многочлен $$1+x^2+x^3$$ примитивен: он делит $$x^7+1$$, но не делит $$x^j+1$$ при $$j<7$$. Примитивен также многочлен $$1+x^3+x^4$$ - он делит $$x^{15}+1$$, но не делит $$x^j+1$$ при $$j<15$$.
Кодирующий многочлен $$g(x)$$ для БЧХ-кода, длина кодовых слов которого $$n$$, строится так. Находится примитивный многочлен минимальной степени $$q$$ такой, что $$n\le2^q-1$$ или $$q\ge\log_2(n+1)$$. Пусть $$\alpha$$ - корень этого многочлена, тогда рассмотрим кодирующий многочлен $$g(x)=\hbox{НОК}(m_1(x), \ldots, m_{d-1}(x))$$, где $$m_1(x),\ldots,m_{d-1}(x)$$ - многочлены минимальной степени, имеющие корнями соответственно $$\alpha, \alpha^2, \ldots, \alpha^{d-1}$$.
Построенный кодирующий многочлен производит код с минимальным расстоянием между кодовыми словами, не меньшим $$d$$, и длиной кодовых слов n [1].
Пример. Нужно построить БЧХ-код с длиной кодовых слов $$n=15$$ и минимальным расстоянием между кодовыми словами $$d=5$$. Степень примитивного многочлена равна $$q=\log_2(n+1)=4$$ и сам он равен $$x^4+x^3+1$$. Пусть $$\alpha$$ - его корень, тогда $$\alpha^2$$ и $$\alpha^4$$ - также его корни. Минимальным многочленом для $$\alpha^3$$ будет $$x^4+x^3+x^2+x+1$$. Следовательно,$$g(x)=\hbox{НОК}(x^4+x^3+1, x^4+x^3+x^2+x+1)=$$ $$=(x^4+x^3+1)(x^4+x^3+x^2+x+1)= x^8+x^4+x^2+x+1.$$ Степень полученного многочлена равна 8, следовательно, построенный БЧХ-код будет $$(7,15)$$ -кодом. Слово 1000100 или $$a(x)=x^4+1$$ будет закодировано кодовым словом $$a(x)g(x)=x^{12}+x^6+x^5+x^2+x+1$$ или 111001100000100.
Можно
Первый БЧХ-код, примененный на практике, был $$(92,127)$$ -кодом, исправляющим ошибки кратности до 5, но наиболее широкое распространение получил $$(231,255)$$ -код, обнаруживающий ошибки кратности до 6.
БЧХ-коды умеренной длины не слишком далеки от совершенных или
квазисовершенных кодов.
Упражнение 45 Найти кодирующий многочлен БЧХ-кода $$g(x)$$ с длиной кодовых слов 15 и минимальным расстоянием между кодовыми словами 7. Использовать примитивный многочлен $$m_1(x)=1+x+x^4$$ с корнем $$\alpha$$. Проверить, будут ли $$\alpha^3$$ и $$\alpha^5$$ корнями соответственно многочленов $$m_3(x)=1+x+x^2+x^3+x^4$$ и $$m_5(x)=1+x+x^2$$.
Циклический избыточный код (
Вычисление значения кода CRC происходит посредством деления многочлена, соответствующего исходному сообщению (полином-сообщение), на фиксированный многочлен (полином-генератор). Остаток от такого деления и есть код CRC, соответствующий исходному сообщению. Для кода CRC-16 полином-генератор имеет степень 16, а для CRC-32 - 32. Полиномы-генераторы подбираются специальным образом и для кодов CRC-16/32 стандартизированы Международным консультативным комитетом по телеграфной и телефонной связи (CCITT). Для CRC-16, например, стандартным является полином-генератор $$x^{16}+x^{12}+x^5+1$$.
Пример построения CRC-4 кода для сообщения 11010111, используя полином-генератор $$x^4+x^3+x^2+1$$. Исходному сообщению соответствует полином $$x^7+x^6+x^4+x^2+x+1$$, т.е. нумерация битов здесь начинается справа.
$$\smallskip \setbox\bzero=\vbox{\hsize=200pt\parindent0pt\obeylines $x^7+x^6+x^4+x^2+x+1 \ \ \ \vrule \underline{\;x^4+x^3+x^2+1}$ $\underline{x^7+x^6+x^5+x^3}\hskip45.2pt% \smash{\vrule height 12pt depth 2pt} \;x^3+x$ $\ x^5+x^4+x^3+x^2+x+1$ $\ \underline{x^5+x^4+x^3+x}$ $\ \ x^2+1$} \centerline{\box\bzero} \smallskip$$
Полиному $$x^2+1$$ соответствуют биты 0101 - это и есть CRC-4 код.
Существуют быстрые алгоритмы для расчета CRC-кодов, использующие специальные таблицы, а не деление многочленов с остатком.
CRC-коды способны обнаруживать одиночную ошибку в любой позиции и, кроме того, многочисленные комбинации кратных ошибок, расположенных близко друг от друга. При реальной передаче или хранении информации ошибки обычно группируются на некотором участке, а не распределяются равномерно по всей длине данных. Таким образом, хотя для идеального случая двоичного симметричного канала CRC-коды не имеют никаких теоретических преимуществ по сравнению, например, с простыми контрольными суммами, для реальных систем эти коды являются очень полезными.
Коды CRC используются очень широко: модемами, телекоммуникационными программами, программами архивации и проверки целостности данных и многими другими программными и аппаратными компонентами вычислительных систем.
Упражнение 46
Построить CRC-4 код для сообщений 10000000 и 101111001, используя
полином-генератор $$x^4+1$$.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.