
- •Содержание
- •1 Основные сведения о циклических кодах 6
- •Введение
- •1 Основные сведения о циклических кодах
- •1.1 Определение и основные свойства циклических кодов
- •1.2 Построение кодовых последовательностей с использованием
- •1.3 Назначение и способы построения проверочной матрицы
- •1.4 Способ формирования кодовых последовательностей циклического кода с использованием образующего полинома
- •1.5 Способ построения кодовых последовательностей и определение параметров циклического кода с использованием корней образующего полинома
- •1.7 Мажоритарный алгоритм декодирования циклических кодов
- •2 Расчет параметров циклического кода
- •3 Разработка структурной схемы кодека
- •3.1 Разработка структурной схемы кодера
- •3.2 Разработка структурной схемы декодера
- •4 Разработка функциональной схемы
- •4.1 Разработка функциональной схемы кодера
- •4.2 Разработка функциональной схемы декодера
- •5 Программная реализация кодека
- •5.1 Выбор и обоснование языка программирования
- •5.2 Разработка блок-схемы кодирования циклического кода
- •5.3 Разработка блок-схемы декодирования циклического кода
- •5.4 Описание работы программной реализации кодера
- •5.5 Описание работы программной реализации декодера
- •Заключение
- •Литература
- •Приложение а Form2.H
- •Приложение б Form3.H
1.4 Способ формирования кодовых последовательностей циклического кода с использованием образующего полинома
Данный способ формирования кодовых последовательностей ЦК находит широкое применение на практике в виду его существенной простоты. При построении ЦК с использованием образующего полинома P(x) могут быть сформированы кодовые последовательности как систематических, так и несистематических кодов.
При формировании кодовых последовательностей несистематического ЦК необходимо выполнить умножение передаваемого информационного блока Q(x) степени (k-1) на порождающий полином с приведением по модулю два коэффициентов при слагаемых с одинаковыми показателями степеней. Таким образом, Fi(x)=Q(x)⋅P(x).
В соответствии с [9] сущность построения систематического ЦК с использованием образующего полинома состоит в следующем:
Передаваемый информационный блок из «k» двоичных символов представляется многочленом Q(x) степени (k-1).
Многочлен Q(x) умножается на член P(x) с максимальной степенью xl=xn-k, т.е. Q(x)⋅xl, что эквивалентно приписыванию к Q(x) со стороны младших разрядов l=n-k нулевых двоичных символов (разрядов).
Выполняется деление произведения Q(x)⋅xl на образующий полином P(x) до получения остатка R(x) со степенью меньшей максимальной степени образующего полинома P(x). Данный остаток R(x) представляет собой сформированные проверочные символы.
Дописать остаток R(x) к произведению Q(x)⋅xl. Следовательно, процесс формирования кодовой последовательности ЦК с использованием образующего полинома можно записать так:
F(x)= Q(x)⋅xl/P(x)+ Q(x)⋅xl=R(x)+ Q(x)⋅xl.
1.5 Способ построения кодовых последовательностей и определение параметров циклического кода с использованием корней образующего полинома
Теория построения кодовых последовательностей и определение параметров кодов с использованием корней образующего полинома, была разработана одновременно и независимо друг от друга Боузе-Рой-Чоудхури-Хоквингеймом и в настоящее время называются БЧХ – кодами.
Данные коды являются разновидностью ЦК и позволяют корректировать как независимые, так и пакетные ошибки и параметры кодов находятся через элементы расширенного поля Галуа, суть которого состоит в следующем [1,2,3,7].
Пусть P(x) является образующим полиномом кодовой последовательности Fi(x) некоторого ЦК. Так как P(x) относится к примитивному полиному, т.е. который не раскладывается на сомножители более низких степеней, чем степень полинома P(x), то можно, найти корни полинома, при которых P(x)=0.
Пусть m1,m2,…,m2tисп-1 – корни некоторого примитивного полинома, и которые, в свою очередь, являются степенями некоторых минимальных (примитивных) полиномов соответственно: m1(х),m2(х),…,m2tисп-1(х). Тогда, если Fi(x) принадлежит ЦК, то кодовая последовательность Fi(x) должна делиться без остатка на образующий полином вида P(x)=НОК[m1(х)⋅m3(х)⋅…⋅m2tисп-1(х)], т.е. HOK произведения минимальных нечетных полиномов.
Порядок (количество) минимальных полиномов определяется как i=2⋅tисп-1. Существуют минимальные полиномы одного и того же порядка (i), но с различными значениями степеней (γ). Максимальная степень произведения минимальных полиномов (mi), входящих в полином P(x), должна быть равна величине l=n-k, которая и определяет длину кодовой последовательности по формуле n=2l-1=2ε-1 двоичных символов.
Так как порядок (номер) самого старшего минимального полинома P(x) равен 2⋅tисп-1, то количество полиномов (β), входящих в образующий полином P(x), равно кратности исправляемых ошибок, т.е. β= tисп.
Минимальные полиномы для большинства БЧХ-кодов табулированы [2,3,7].
Для нахождения образующего полинома P(x) по формуле P(x)=НОК[m1(х)⋅m3(х)⋅…⋅m2tисп-1(х)] необходимо выписать из таблицы все значения табулированных минимальных полиномов, соответствующих степени ε (соответствующий столбец таблицы) до порядка i=2⋅tисп-1 (соответствующая строка таблицы) включительно. При отсутствии в таблице минимального полинома “нужного” порядка необходимо выбрать ближайший меньший, а если среди минимальных полиномов окажется два одинаковых, то для выражения P(x) необходимо взять только один полином.
Для определения параметров БЧХ-кода необходимо, чтобы было задано: n – длина кодовой последовательности и tисп – длина или кратность исправляемых ошибок [7].
1.6 Способ построения кодовых последовательностей циклического кода с использованием образующего полинома вида P(x)=s(x)⋅(xc+1)
Способ задания ЦК с использованием образующего полинома вида P(x)=s(x)⋅(xc+1) был предложен Файром и поэтому были названы кодами Файра.
Циклические коды Файра используются для обнаружения и коррекции одиночных пакетов ошибок любой длины (tn), разделенных безошибочным интервалом в lзащ ≥ (n-tn) двоичных символов. Как уже отмечалось, данные коды задаются образующим полиномом вида
P(x)=s(x)⋅(xc+1),
где s(x) – неприводимый полином максимальная степень, которого равна кратности исправляемого пакета ошибок, т.е. ε ≥ t n.исп;
c – степень двучлена, равная или больше tn.исп+tn.обн-1; tn.обн – длина или кратность обнаруживаемого пакета ошибок.
Величина “c” не должна делиться на некоторое число χ=2tn.исп-1. Если использовать ЦК Файра только для обнаружения пакетных ошибок, то для этого необходимо, чтобы количество проверочных символов кода соответствовало следующему равенству-неравенству l ≥ tn.обн двоичных символов, а при коррекции tn ошибок l ≥ 2⋅tn.исп.
Длина кодовой последовательности “n” данных кодов определяется равенством n=HOK[χ,c] двоичных символов. Минимальное кодовое расстояние кода определяется равенством-неравенством вида d0 ≥ tn.обн+tn.исп+1.