Прокис Дж. - Цифровая связь (1266501), страница 75
Текст из файла (страница 75)
Матрица, соответствующая полиному р'Ь,(р), ! = 2, 1, О, равна 1 1 1 О 1 О О С~=О!1!О!О О О 1 1 1 О 1 Порождающая матрица для дуального кода (7,3), которая является проверочной матрицей для циклического кода (7, 4), состоит из строк См, взятых в инверсном порядке, О О 1 О 1 1 1 Таким образом, Н, = О 1 О 1 1 1 О 1 О 1 1 1 О О Читатель может убедиться, что С,Н~=О. Заметим, что векторы Н, состоит из всех семи двоичных вектор-столбцов длины 3, исключая вектор из одних нулей. Но это как раз описание проверочной матрицы для кода Хемминга ~7,4). Следовательно, циклический код (7, 4) эквивалентен коду Хемминга (7, 4), рассмотренному ранее в примерах 8.1.1 и 8.1.2. Кодеры для циклических кодов.
Операции кодирования при создании циклических кодов можно выполнить при помощи линейных сдвигающих регистров с обратной связью, с использованием порождающего или проверочного полинома Сначала рассмотрим использование 8(Р). Как указано выше, генерирование систематического циклического кода включает три ступени, а именно: умножение полинома сообщения Х(р) на Р" ~, деление этого произведения на фР) и в заключение, прибавление остатка г(Р) к р 'Х(Р). Из этих трех ступеней только деление является нетривиальным. Деление полинома А(Р) = р" "Х(Р) степени и — 1 на полипом 8(Р) =8ь ьР +К *-1Р +" +5ьР+Ко можно выполнить посредствам (и — А) ячеек регистра сдвига с обратной связью, показанного на рис.
8,1.2. Частною Рис. 8 З.2. Регистр сдвига с об1хттиой связью длл делания поли иомв А(р) ив д(р1 Первоначально ячейки сдвига регистра содержит одни нули. Коэффициенты А(Р) поступают и продвигаются по регистру сдвига по одному коэффициенту за такт, начиная с коэффициентов более высокого порядка, т.е, с гт„,, затем а„в и так далее. После 1и — Й вЂ” 1) -го сдвига, первый ненулевой выход частного равен д, = (д„,) 'а„, Последующие выходы генерируются так, как показано на рис. 8.1.2.
Для образования каждого выходного коэффициента линии мы должны вычесть полипом 8(р), умноженный иа этот коэффициент, как при обычном «длинномв делении. Это вычитание производится посредством обратной связи. Таким образом, регистр сдвига на рис. 8.1.2 обеспечивает деление двух полиномов. В нашем случае д „=К, =1, и для двоичных кодов арифметические операции выполняются по шод 2.
Следовательно, операция вычитания сводится к сложению по ятом 2. Далее мы будем только интересоваться генерированием проверочных символов для кзждого кодового слова, поскольку код систематический. Как следствие, кодер циклического кода принимает вид, показанный на рис. 8.1.3.
Биты сообщения Рис. 8.1.3. Циклический кодер с использованием порождакипего полинома 8Рр) Первые А бит на выходе кодера просто равны и информационным битам. Эти и бит одновременно поступают на регистр сдвига, поскольку ключ 1 замкнут. Заметим, что умножение полиномов р"'» и Х(р) явно не производится. После того как все к информационных бита попали на вход кодера (и к модулятору), положения двух ключей на рис. 8.1.3 меняются на обратные.
Начиная с этого времени, содержимое регистра сдвига просто дает и — Й проверочных символов, которые соответствуют коэффициентам полинома остатка. Эти и- и бита последовательно отправляются на модулятор. Пример 8.1.8. Регистр сдвига для кодирования циклическим кодом 17, 4) с порождающим полиномом 8(р) = р'+р+1 показан на рис. 8.1.4. о 0110. Содержание сдвигового Рис.
8.1.4. Циклический кодер (7,4) с использованием порождающего полинома 81р)=р'+р+1 Предположим, что сообщением является цепочка регистра дано таблицей: Вход Шаг сдвига Соде жимое егист а О 1 1 0 368 0 1 2 3 4 000 000 110 101 100 Таким образом, три проверочных символа: 100.
Они соответствуют кодовым символам оз =О, е =0 и с, =1. Вместо использования порождающего полинома 8(р), мы можем выполнить кодер циклического кода, используя проверочный полипом Ь(р) = р'+Ь,,р' '+...+Ьр+1. Соответствующий кодер показан на рис. 8,1,5. Первоначально Й информационных символа (бита) передвигаются по регистру сдвига и одновременно поступает на модулятор. После того„как все л информационных символов пройдуг по регистру, кдюч переводится в положение 2, и сдвиговой регистр работает ещен — Й такта, генерируя и- А. проверочных символов„как показано на рис.
8.1.5. БНтЫ 4 Рис. 8.1.5. Циклический кодер (л,к) с использоваиием проверочного полииома л(р) Пример 8.1.9. Проверочный полином для циклического кода (7,4), генерируемый порождающим полиномом 8(р) = р'+р+1, равен Ь(р) = р'+р +р+1. Кодер для этого кода, основанный на проверочном полиноме, иллюстрируется на рис. 8.1.б.
Если на входе кодера действует сообщение 0110, то проверочными символами являются с, =О, с, =О, с, = 1, как легко проверить. Вымол опооо1 Рис. 8.1.6. Циклический кодер (7,4) с использованием проверочиого полииома Ь(р) р4+рз+1 Следует заметить, что кодер, базирующийся на порождающем полиноме, проще, когда л-Х<Ь (Ь>зп), т.е.
для больших скоростей кода (А.>з). В то же время кодер, базирующийся на проверочном полиноме, проще, когда Й < п — Ь (Ь < ';и), что соответствует низкоскоростным кодам ® < зз) . Циклические коды Хеммиига. Класс циклических кодов включает коды Хемминга, которые имеют длину блока и =2 -1 и и — Ф = т проверочных символов, где ж — любое положительное целое число. Циклические коды Хемминга эквивалентны кодам Хемминга, описанным в разделе 8.1 2. 14-5б 369 Циклический код Голеи (23, 12). Линейный код Галса (23, 12), описанньгй в разделе (8.1.2), можно генерировать как циклический код посредствам порождающего полинома Жу) = Р" + р'+ Р'+ Р'+ р'+ р+1 (8.1.40) Кодовые слова имеют минимальное расстояние И,„= 7, Коды сдвигового регистра максимальной длины. Коды сдвиговаго регистра максимальной длины — зто класс циклических кодов (н, х)=12" — 1, лг), (8.1.41) где лг — положительное целое.
Кодовые слава обычно генерируются посредством гл -каскадного цифрового регистра сдвига с обратной связью, основанного ня проверочном полиноме. Для каждого передаваемого кодового слова лг информационных бит вводятся в регистр сдвига, а ключ перемещается с позиции 1 на позицию 2 Содержание регистра сдвигается влево в общей сложности 2 — 1 раз. Такая операция генерирует систематический код с требуемой длиной гг=2"' 1. Для примера, кодовые слова, генерируемые 3-каскадным регистром сдвига по рис.
8.1.7, сведены в таблицу 8.1.4. 1 Иаточник ~ Выход Рис. 8.1.7. Трехквскадюай регистр сдвига (ив=3) с обратной связью Таблица 8.1.4. Код сдвигового регистра максимальной длины для т=З Информационные биты Кодовые слова Заметим, что, за исключением кодовых слов из одних нулей, все кодовые слова, генерируемые регистром сдвига, представляют собой циклические сдвиги единственнага кодового слова. Это легко увидеть из диаграммы состояний регистра сдвига, которая иллюстрируется на рис.
8.1.8 для т=З. Когда регистр сдвига после первоначального заполнения сдвигается 2 — 1 ряз, он проходит через все возможные 2 — 1 состояния. Таким образом, регистр сдвига возвращается обратно к начальному состоянию за 2" — 1 шагов сдвига. 370 0 0 0 О 0 0 О 0 0 0 1 О 0 1 1 1 О 1 0 0 1 О 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 О 1 1 1 О 1 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 О 1 1 0 1 Р 0 ! ! Л Рис.
8.1.в. Семь шагов последовательности максимальной длины, генерируемой регистром сдвига с ш=З Следовательно, выходная последовательность периодическая, н ее период равен и = 2 — 1, Поскольку имеется 2" -1 возможных состояний, такая длина соответствует максимально возможному периоду. Это и объясняет, что 2 — 1 кодовых слов являются различными циклическими сдвигами единственного кодового слова. Коды регистра сдвига максимальной длины существуют для любой положительной величины гн. Таблица 8,1.5. показывает номера ячеек, которые объединяются в сумматоре по пюд 2, в регистре сдвига максимальной длины для 2<т < 34. Другая особенность кодовых слов в регистре сдвига максимальной длины заключается в том, что каждое кодовое слово, за исключением слова из одних нулей, содержит 2 единиц и 2 ' нулей.
Поскольку код линейный, его вес является также минимальным расстоянием кода, т.е. Н =2 В заключение заметим, что код регистра сдвига максимальной длины (7,3), показанный в табл. 8.1.4, идентичен коду (7,3), данному в табл. 8.1.3 и является дуальным коду Хемминга 17,4), данному в табл. 8.1.2. Это не совпадение. Коды регистра сдвига максимальной длины являются дуальными кодами для циклических колов Хемминга (2 — 1, 2 — 1 — т).
371 Таблица 8.1.5. Соединения в сдвиговом регистре для генерирования последовательности максимальной длины №№ отводов к №№ отоодов к №№ отводов к №№ отводов и т сумматору по т сумматору по т сумматору по т сумматору по модулю 2 модулю 2 модулю 2 модулю 2 1, 28 1,8,29,30 1, 29 1,2 1,3 1,4 1,4 1,6 1,11,31,32 1,21 1, 8, 33„34 1,7 1, 5, 6, 7 1,6 1,3 Источник: Гоглеу (19701 Регистр сдвига для генерирования кода максимальной длины можно также использовать для генерирования периодической двоичной последовательности с периодом и = 2 — 1.
Двоичная периодическая последовательность имеет периодическую автокорреляционную функцию ф(т) со значениями ф(т)=н для т=О, хн, ~2н . и ф(т) = — 1 для других сдвигов, как будет описано в разделе 8.2.4. Эта импульсно-подобная автокорреляционная функция подразумевает, что спектр мошности близок к равномерному и, следовательно, т-последовательность проявляет свойства белого шума, Поэтому последовательности максимальной длины называют псевдошумовыми (ПШ) последовательностями и они находят применение для скремблирования данных и для генера;ции широкополосных сигналов с рассеянным спектром. Коды Боуза-Чоудхури-Хоквингема (БЧХ). БЧХ коды представляют большой класс циклических кодов как с двоичным, так и с недвоичным алфавитами.