Скляр Б. Цифровая связь (2003) (1151859), страница 87
Текст из файла (страница 87)
Х'+Х'+ )Х +Х+1 обратная связь после 4-го сдвига 3 Х + Х'+ Х' Х +Х +Х+1 т ттт 4 5 6 7 регистр после 4-го сдвига -3 Х'+ Х' обратная связь после 5-го сдвига -3 Х'+ Х'+ Х' Х3+ Х3+ Х3 Х'+ Х'+Х регистр после 5-го сдвига обратная связь после 6-го сдвига ХЗ+ Х Х'+ Х+1 регистр после 6-го сдвига обратная связь после 7-го сдвига регистр после 7-го сдвига (остаток) В.7.5. Систематическое кодирование с (и — «)-разряднь3м регистром сдвига 8(Х) = 1+ 8~Х+ 83Х + ". + 8д -3- 1Х" + Х" ". (6.66) Следующие шаги описывают процедуру кодирования, использующую устройство, изображенное на рис.
6.18. Глава 6. Канальное кодирование: часть 3 заа Как было показано в разделе 6.7.3, кодирование с помощью циклического кода в систематической форме включает в себя вычисление битов четности, как результат деления Х" "щ(Х) по модулю 8(Х),„иными словами, делелие сиещеллого вверх (смещенного вправо) полиномиального сообщения на полиномиальный генератор 8(Х). Сдвиг вверх приводит к освобождению места для битов четности, которые прибавляются к разрядам сообщения, что в результате дает вектор кода в систематической форме. Сдвиг вверх на л-1 разрядов сообщения является тривиальной операцией и в действительности не выполняется в схеме деления.
На самом деле вычисляются только биты четности; затем они помещаются на соответствующие места рядом с битами сообщения. Полипом четности — это остаток от деления на полиномиальный генератор; он находится в регистре после л сдвигов через (л — 1)- разрядный регистр сдвига с обратной связью, показанного на рис.
6.17. Отметим, что первые л — Зг сдвигов по разрядам — это просто заполнение регистра. У нас не может появиться никакой обратной связи, пока не будет заполнен крайний справа разряд; следовательно, мы можем сократить цикл деления, загружая входные данные с выхода последнего разряда, как показано на рис. 6.18. Слагаемое обратной связи в крайнем левом разряде является суммой входных данных и крайнего правого разряда. Гарантия создания этой суммы — обеспечение Ха=8„2= 1 для произвольного полиномиального генератора 8(Х).
Соединения схемы обратной связи соответствуют коэффициентам полиномиального генератора, которые записываются в следующем виде: од о — К разрядсе рвгистра сдвига Переключатель 2 1. При первых гг сдвигах ключ 1 закрыт лля передачи битов сообщения в (и-К)- разрядный регистр сдвига. 2. Ключ 2 установлен в нижнее положение для передачи битов сообщения на выходной регистр в течение первых й сдвигов. 3.
После передачи й-го бита сообщения ключ 1 открывается, а ключ 2 переходит в верхнее положение. 4. При остальных л — а сдвигах происходит очищение кодируюших регистров, биты четности перемешаются на выходной регистр. 5. Общее число сдвигов равно и, и содержимое выходного регистра представляет собой полипом кодового слова р(Х) ч- Х" ьпз(Х). Пример 6.10. Систематическое кодирование циклического кода Используя регистр сдвига с обратной связью, показанный на рис. 6.18, кодируйте вектор сообщения гп = 1 О 1 1 в кодовое слово (7, 4).
Полиномиальный генератор й(Х) = 1 ч- Х+ Х'. Решепие Х" ()О = г((Х)й(Х) + р()О р(Х) = (Х' ч- Х + Хь) по модулю (1 ч- Х + Х ) для (п — й) = 3-разрядного регистра сдвига, показанного на рнс. 6.!9, действия будут сле- дующими. Входная очередь Номер сдвига Содержимое регистра Выход и обратная связь 389 6.7. Циклические коды !О!1 101 1О 1 Рис. 6,!В. Кодироваиие с помощью (и — Гс)-разрпдиого регистра сдвига ш= 1 0 1 1 щ(Х) = 1 + Хз + Хз Х" гпз(Х)=Х го(Х) =Х +Х +Лв 000 11О !01 100 !00 пт ° в(х)=1 Х Х Выход Переключатель 2 Риг. 61й Пример кадиравания циклическою кода (7, 4) с па- мощью (п †'к)-разрядною региснкра сдвига После четвертого сдвига ключ 1 открывается, ключ 2 переходит в верхнее лолозхение, а би- ты четности переходят в выходной регистр.
Выходное кодовое слово () = 1 0 0 1 0 1 1 или, в лслиномиальной форме, ЩХ) = 1+Х'+ Х'+ Хч. 6.7.6. Обнаружение ошибок с помощью (п- 1г)-разрядного регистра сдвига Передаваемое кодовое слово может быть искажено помехами, и, следовательно, принятый вектор будет искаженным вариантом переданного кодового слова. Допустим, что передается кодовое слово, имеющее в полнномиальном представлении внд ЩХ), а принимается вектор, в полиномиальном представлении имеющий вид Х(Х).
Поскольку ()(Х) — зто полипом кодового слова, он должен без остатка делиться на полиномиальный генератор й(Х). ()(Х) = ш(Х)й(Х) (6.67) 7(Х), искаженную версию ()(Х), можно представить следующим образом: Х(Х) = ЩХ) + е(Х) . 7(Х) = г((Х)й(Х) + б(Х) . (6.69) Здесь $(Х) — лелином степени и -Х вЂ” 1 или меньше. Соответственно, синдром — зто (п — (т)-кортеж. Используя уравнения (6.67) и (6.69), получаем следующее: е(Х) = [ш(Х) + т)(Х)) й(Х) + $(Х). (6.70) (6.68) Здесь е(Х) — полипом модели ошибки. Декодер проверяет, является ли У(Х) полино- мом кодового слова, т.е. делится ли он на й(Х) без остатка.
Это осуществляется путем вычисления синдрома принятого полинома. Синдром $(Х) равен остатку от деления Х(Х) на я(Х): аакч Глава б. Канальное кодирование: часть 1 Сравнивая уравнения (6.69) и (6.70), видим, что синдром Б(Х), полученный как Х(Х) по модулю й(Х), аналогичен остатку деления е(Х) на й(Х). Таким образом, синдром принятого полинома К(Х) содержит информацию, необходимую для исправления модели ошибки. Расчет синдрома выполняется с помощью схемы деления, почти аналогичной схеме кодирования, используемой в передатчике. Пример вычисления синдрома со сдвигом на (л - lс) разрялов регистра приведен на рис.
6.20 с использованием вектора кода, полученного в примере 6.10. В исходном состоянии ключ 1 закрыт, а ключ 2 открыт. Принятый вектор подается во входной регистр, в котором в исходном состоянии все разряды имеют нулевое значение. После того как весь принятый вектор будет занесен в регистр сдвига, содержимое регистра — это и есть синдром. Теперь ключ 1 открывается, а ключ 2 закрывается, так что вектор синдрома теперь можно извлечь из регистра.
Описанная последовательность действий имеет следующий вид. Приняты вектор 1оо1о11 лишив си каром Рис. 6.20 Пример вычисления синдрома с яомошью (я — 9)-разрядною регионра сдвига Входная очередь Номер сдвига Содержимое регистра Если вектор синдрома нулевой, считается, что принятый вектор является правильным кодовым словом. Если синдром отличен от нуля, значит, обнаружена ошибка и принятый вектор — это искаженное кодовое слово; данная ошибка исправляется путем прибавления к принятому вектору вектора ошибки (указанной синдромом), т.е.
аналогично процедуре, описанной в разделе 6.4.8. Этот метод декодирования хорош лля простых кодов. Более сложные коды для практического использования требуют применения алгебраических методик. 8.8.1. Коды Хэмммнга Коды Хзмминга (Наппшпй собез) — это простой класс блочных кодов, которые имеют следующую структуру: (а, А) = (2 — 1, 2 — 1 — ги), (6.71) где ю=2,3, .... Минимальное расстояние этих кодов равно З„поэтому, согласно уравнениям (6.44) и (6.47), они способны исправлять все однобитовые ошибки или определять все модели ошибки из двух или малого числа ошибок в блоке. Декодирование с помощью синдромов особенно хорошо подходит к кодам Хэмминга.
Фактически синдром можно превратить в двоичный указатель местоположения ошибки (5). Хотя коды Хзмминга не являются слишком мощными, они принадлежат к очень ограниченному классу блочных кодов, называемых совершеииыми; их особенности описывались в разделе 6.5.4. 6.0. Известные блочные коды 39т 1001011 100101 10010 1001 100 10 1 6.8.
Известные блочные коды 00 100 110 011 011 111 101 (000 ) Синдром Если предположить, что используется жесткое декодирование, вероятность появления битовой ошибки можно записать с помощью уравнения (6.46): а Рв= 4~~ 7~ Р (1 Р) )=2 (6.72) Здесь Р— вероятность ошибочного приема канального символа (вероятность перехода в двоичном симметричном канале). Для отдельных кодов коррекции ошибок (таких как ко- ды Хэмминга) вместо уравнения (6.72) мы можем использовать другое эквивалентное уравнение (зто уравнение (Г.16), которое выводится в приложении Г): Рв =Р Р(1 Р) (6.73) На рис.
6.21 приведен график зависимости вероятности ошибки в декодированном бите от вероятности ошибки в канальном символе, на котором сравниваются разные блочные коды. Для кодов Хэннинга на графике взяты значения т=3, 4 и 5 или (л, й) = (7, 4), (15, 11), (31, 26). Для описания гауссового канала с использованием когерентпой демодуляции сигналов ВРВК, вероятность ошибки в канальном символе можно выразить через Е7й)„как это было сделано в уравнении (4.79): Рмй (6.74) 10-2 1О ь к $ а 1О о й 10-ь о 10а ш Ф 26) 1= 1 11) 1= 1 4) 1=1 енина код Голея (24, 12) 1 3 ХЧ (127, 64) 1 = 10 ч 1127, 36) 1= 16 и-3 10-2 10-4 Вероятность ошибочного приема аьнвъного оимеола, р Рис.
626 Зависимость вероятиости битовой ошибки от вероятиасти ошибки е каиаеьиам символе оня иесколькик блочных кодов Глава В Канальное коднооаанне: часть 1 (6.75) Для кодов Хэмминга уравнение (6.75) принимает следующий вид: Ес 2 -1-гн Еь (6.76) )уо 2 — 1 л(о Объединяя уравнения (6.73), (6.74) и (6.76), Ре при когерентной демодуляции сигна- лов ВРВК в гауссовом канале можно выразить как функцию Ег/)то. Результаты для различных типов блочных кодов отображены на рис. 6.22. Для кодов Хэмминга взяты следующие значения (и, /с) = (7, 4), (15, 11), (31, 26). 10-2 а.
а 1О-з а а а Ф ~ !0-ь й Ф * 10-а в л а сна 1О-' редан а =! ,1=1 ,2е(,1= ! од Гален (24, 121, 1 = 3 зв),1=15 27, 545 1 = 10 10-! 4 5 в 7 а 9 10 11 Еь/Ио (дв) Рис. 622. даеисииаонь Рг ан! Е!/Фо при кагерентнай демадулнции сигна- лаа ВРБК е гауссаеам канале дгн нескааькш блочных кадаг 393 8.8.
Известные блочные коды Здесь ЕIМо — отношение энергии кодового символа к спектральной плотности мощ- ности шума, а (3(Х) определено в уравнении (3.43). Чтобы связать Е,(д(о с энергией би- та информации на единицу плотности спектрального шума (Еь(Фо), используем сле- дуклцее выражение: Пример 6.11. Вероятность ошибки для модулированных и кодированных сигналов Кодированный сигнал с модуляцией ВРВК передается по гауссовому каналу, Сигнал некогерентно детектируется и жестко декодируется Найдите вероятность ошибки в декодированном бите, если кодирование осуществляется блочным кодом Хэмминга (7,4), а принятое значение ЕгУ(т', равно 20.