- •Вечерний электрорадиотехнический факультет
- •3.2Математическое представление сигналов.
- •3.3Аналоговые линии и каналы передачи информации
- •3.3.1Классификация кабелей связи
- •3.4Математические модели аналоговых линий и каналов связи.
- •3.4.1Искажения сигналов, вызванные ограниченностью ачх
- •3.4.2Искажения сигнала из-за нелинейности фчх
- •3.4.3Электрические параметры кабелей. Математическая модель кабельной цепи.
- •3.4.4Система многоканальной связи с частотным разделением каналов
- •3.4.5Системы многоканальной связи с временным уплотнением
- •3.5Каналы тональной частоты и их характеристики
- •3.6Математические модели дискретных каналов связи
- •3.6.1Модель двоичного симметричного канала
- •3.6.2Модель
- •3.6.3Модель на основе опп
- •4Помехоустойчивость передачи данных
- •4.1Общий принцип генерации сигналов – «данных»
- •4.2Восстановление вектора по сигналу
- •4.3Прием сигналов как задача теории решений
- •4.4Потенциальная помехоустойчивость
- •4.5Приемник на согласованных фильтрах
- •4.6Расчет вероятности ошибок при приеме дискретных сигналов
- •4.7Примеры помехоустойчивых систем сигналов
- •4.7.1Бинарные противоположные сигналы
- •4.7.2Бинарные ортогональные сигналы
- •4.7.4Биортогональные сигналы
- •4.7.5Сигналы с прямоугольной конфигурацией векторов
- •4.7.6Симплексные сигналы
- •5Помехоустойчивое кодирование
- •5.1Основные понятия теории кодирования
- •5.2Примеры корректирующих кодов
- •5.2.1Код с четным числом единиц
- •5.2.2Коды с постоянным весом
- •5.2.3Инверсный код с повторением
- •5.2.4Код Хэмминга
- •5.2.5Модифицированный код Хэмминга
- •5.3Классификация избыточных кодов
- •5.4Линейные коды
- •5.4.1Алгебраические основы теории кодирования
- •5.4.2Задание линейных кодов
- •5.4.3Свойства линейных кодов
- •5.4.4Декодирование линейных кодов. Алгоритм максимального правдоподобия.
- •5.4.5Синдромное декодирование
- •5.4.6Мажоритарный декодер.
- •5.5Циклические коды. Необходимое и достаточное условие цикличности.
- •5.6Способы задания и кодирование циклическими кодами
- •5.7Разложение двучленов примитивной длины на простые множители
- •6.6.1 Коды бчх. Выбор образующих многочленов.
- •5.8Разложение двучленов непримитивной длины на простые множители
- •5.9Основные теоремы об ошибках, обнаруживаемых циклическими кодами
- •5.10Способы декодирования с исправлением ошибок. Декодеры Меггита.
- •5.11Декодер Питерсона-Горенстейна-Цирлера
- •6Модемы
- •6.1Интеллектуальные возможности модемов
- •7Стандарт ат-команды
- •8Протоколы исправления ошибок arq.
- •8.1Формат кадра
- •9Схема построения сети Интернет
5.5Циклические коды. Необходимое и достаточное условие цикличности.
Циклический код является частным случаем линейного кода, когда любая циклически сдвинутая кодовая комбинация является также кодовой комбинацией. Непосредственная проверка выполнения этого условия для линейных кодов представляющих практический интерес неосуществима, т.к. велика мощность кода: , где - основание кода, - число информационных символов ( ). К циклическому коду можно прийти как к частному случаю другого кода – полиномиального. Полиномиальный код задается наиболее просто образующим многочленом , степени , - длина кодовой комбинации. Множество многочленов степени меньшей делящихся на является множеством кодовых комбинаций. Полиномиальный код это тот же линейный код только иначе представленный. Вместо -символьных последовательностей (векторов) их многочленная запись по формальной измененной . Формальная переменная используется по сути для указания номера позиции в -разрядной комбинации, где имеется ненулевой символ. В пользу перехода к многочленному представлению можно указать по крайней мере три аргумента:
при в среднем на 50% «экономится» длина записи;
появляется более простая процедура выбора подпространства (т.е. кода), вместо базисных векторов можно использовать образующий многочлен;
упрощается процедура кодирования, вместо матричного умножения, умножение (или деление) многочленов.
Найдем необходимые и достаточные условия цикличности полиномиального кода. Пусть - кодовый вектор, его многочленная запись . Циклически сдвинутый вектор , его многочленная запись .
Очевидно: . (*)
- должен быть кодовым многочленом, т.е. делящимся на , это левая часть выражения (*). Первое слагаемое справа также делится на , т.к. а(х) – кодовый многочлен по условию. Значит обязано делиться на второе слагаемое, чтобы был кодовым. Показано тем самым чтобы полиномиальный код был циклическим необходима делимость двучлена на образующий многочлен . Достаточность следует также из (*): если ( ) делится на , то и правая часть (*) делится на , т.е. - кодовый многочлен.
Отсюда следует, что задавая код в качестве можно брать только делители двучлена . Циклические коды существуют для любого . Сколько различных кодов длины может быть задано зависит от значения , иначе от многообразия множителей (простых), на которые разлагаются . При знак «-» и знак «+» эквивалентны. Два кода находятся предельно просто, т.к. из школьного курса известна формула для суммы членов геометрической прогрессии со знаменателем х.
, т.е.
Первый код - это код с проверкой на четность, второй код - это код с повторением.
Для задания циклических кодов надо уметь разлагать на простые множители двучлены .
Рассмотрим пример. Пусть нас интересуют коды длины . Разложение: получается методом проб (в общем случае есть специальная методика разложения). Из разложения следует (см. таблицу):
(n,k) |
g(x) |
Комментарии |
(7,6) |
x+1 |
Код с проверкой на четность |
(7,5) |
- |
Не существует, т.к. нет g(x) второй степени |
(7,4) |
|
Код Хэмминга |
(7,4) |
|
Аналогичен по характеристикам предыдущему |
(7,3) |
|
Одинаковы по характеристикам |
(7,3) |
|
|
(7,2) |
- |
Не существует |
(7,1) |
|
Код с повторением |