- •Основы теории передачи данных
- •Лекция 1 История развития техники передачи дискретных сообщений
- •Особенности систем дискретной связи
- •Структурная схема системы передачи дискретной информации
- •Виды систем передачи дискретной информации
- •Понятие кодирования
- •Основные понятия в области кодирования
- •Параметры кодов
- •Классификация кодов
- •Стандартные первичные коды
- •1. Стандартный пятиэлементный код
- •2. Стандартный семиэлементный код
- •Лекция 2 Понятие о дискретной модуляции
- •Основные понятия дискретной модуляции
- •Виды дискретной модуляции
- •1. Виды параметрической модуляции. Несущий сигнал - постоянный ток
- •Несущий сигнал - переменный ток
- •2. Относительная модуляция
- •Способы увеличение пропускной способности канала с использованием свойств дискретной модуляции
- •Прохождение дискретного канала по каналу связи Общие сведения о линиях и каналах связи
- •Проводные и кабельные каналы
- •Радиолинии и радиоканалы
- •Перспективные типы линий и каналов
- •Способы передачи сигнала по каналу связи
- •Сочетание последовательного и параллельного методов передачи сигнала по каналу связи
- •Распределители. Основные характеристики
- •Лекция 3 Общие сведения о каналах связи для передачи дискретных данных
- •Способы повышения пропускной способности канала связи
- •Скорость передачи дискретной информации
- •Виды помех в канале связи
- •Механизм появления искажений импульсов
- •Классификация искажений
- •Характеристика искажений преобладания
- •Характеристика характеристических искажений
- •Характеристика случайных краевых помех
- •Закон распределения вероятностей искажений
- •Лекция 4 Прием элементов дискретных сигналов Понятие регистрации сигнала
- •Метод стробирования
- •Интегральный метод регистрации
- •Понятие об ошибках. Поток ошибок
- •Классификация ошибок
- •Коэффициенты ошибок
- •Расчет вероятности ошибок
- •Математические модели ошибок
- •Общие сведения об измерении искажений и ошибок
- •Методика измерения искажений
- •Методика измерения ошибок
- •Лекция 5 Методы повышения верности передачи дискретных данных
- •Избыточность сигналов дискретной информации
- •Методы повышения верности передачи дискретных данных в системах без обратной связи
- •Методы повышения верности передачи дискретных данных в системах с обратной связью
- •Принципы помехоустойчивого кодирования
- •Доля ошибок, обнаруживаемых корректирующим кодом
- •Доля ошибок, исправляемых корректирующим кодом
- •Кодовое расстояние
- •Связь расстояния Хэмминга и корректирующих свойств кода
- •Определение требуемого числа проверочных разрядов
- •Классификация помехоустойчивых кодов
- •Лекция 6 Коды Хэмминга Общие сведения
- •Понятие синдрома
- •Построение кода Хэмминга
- •Понятие проверочной матрицы
- •Обнаружение ошибок кодом Хэмминга (9,5)
- •Понятие порождающей матрицы
- •Связь порождающей и проверочной матриц кода Хэмминга
- •Матричное построение систематических кодов с поэлементным формированием проверочной группы
- •Дуальные коды
- •Лекция 7 Циклические коды Общие сведения
- •Построение разрешенных комбинаций циклического кода
- •Обнаружение ошибок при циклическом кодировании
- •Определение места ошибки. Выбор образующего полинома
- •Матричное представление циклических кодов
- •Общие сведения об итеративном коде
- •Метод исправления ошибок. Порождающая матрица итеративного кода
- •Лекция 8 Принципы построения кодирующих устройств Код с поэлементным формированием проверочной группы
- •Кодирующее устройство циклического кода
- •Принципы использования детекторов качества сигналов
- •Понятие о непрерывных и сверточных кодах
- •Содержание
Понятие синдрома
Обнаружение и исправление ошибок кодом Хэмминга сводится к определению и последующему анализу синдрома.
Синдромом называется совокупность элементов, которые получены суммированием по модулю 2 принятых проверочных элементов и проверочных элементов, вычисленных по принятым информационным элементам. Вычисление производится по тому же правилу, которое применяется для их определения на передающей стороне.
Для определения проверочных элементов b1, b2,…, br на передающей стороне пользуются операторами R1, ..., Rr, bi=Ri{aj}, где аj - множество информационных элементов данной кодовой комбинации. На приемной стороне по принятой совокупности информационных элементов { аj *} вычисляются с помощью тех же операторов Ri (они должны быть обязательно известны и на приемной стороне) новые проверочные элементы b'i= Ri{aj*} (знак * означает принятые элементы кодовой комбинации, которые из-за ошибок в канале могут отличаться от переданных). Далее принятые проверочные элементы (т.е. имеющиеся в принятой кодовой комбинации) b1*, b2*,…, br* складываются по модулю 2 с вычисленными проверочными элементами b'1, b'2, ..., b'r:
В результате сложения получается некоторая кодовая комбинация, которую называют синдромом или вектором ошибки.
Допустим, что все информационные элементы кодовой комбинации приняты верно, тогда {аj} = {аj*} и, значит, {bi*} = {bi}, т. е. проверочные элементы, вычисленные по {аj*}, такие же, как на передающей стороне. Если при приеме проверочных элементов также не произошло ошибок, то
В этом случае все разряды синдрома будут представлены нулями:
С1С2…Сr 00…0.
Если где-то произошла ошибка, то в составе синдрома появятся единицы. Это и есть способ обнаружения ошибок кодом Хэмминга. Поскольку код Хэмминга имеет минимальное кодовое расстояние do=3, то это означает, что код может исправлять одну ошибку, т. е. указать номер позиции в кодовой комбинации, где произошла ошибка (что для двоичных кодов достаточно, т.к. в этом случае кодовый элемент на указанной позиции просто меняется на противоположный). В одном из вариантов кода Хэмминга между видом синдрома и номером ошибочного разряда имеется однозначное соответствие: двоичное число синдрома представляет собой условный номер (в десятичной системе) того разряда в кодовой комбинации, где произошла ошибка.
Построение кода Хэмминга
Рассмотрим пример построения кода Хэмминга, в котором между видом синдрома и номером ошибочного разряда имеется однозначное соответствие: двоичное число синдрома представляет собой условный номер (в десятичной системе) того разряда в кодовой комбинации, где произошла ошибка.
Для этого, сопоставляя двоичное число, которое представляет синдром, с номером позиции элементов множеств {аj} и {bi}, в которых произошла ошибка (учитываем, что ошибка может произойти и в информационном, и в проверочном разрядах), найдем вид операторов {Ri}.
Предположим, что требуется сформировать код при условии, что кодовая комбинация содержит 5 информационных символов (k=5) и код должен исправлять однократную ошибку, т.е. ошибку в одном разряде (tИ=1). Определим требуемое расстояние Хэмминга и число проверочных разрядов:
Будем считать, что d0=3. Найдем число проверочных разрядов:
Получили, что для обеспечения требуемого расстояния Хэмминга d0=3 кодовая комбинация должна содержать 4 проверочных элемента (элементы b1b2b3b4), т.е. код вида (9,5).
Появление единицы в синдроме происходит следующим образом:
Если синдром имеет такой вид, то кодовая комбинация не имеет ошибки ни в одном разряде. Если синдром имеет вид 0001, то будем считать, что произошла ошибка в первом разряде в проверочном элементе b4′. Синдром вида 0010 свяжем с ошибкой во втором разряде в проверочном элементе b3′. Синдром вида 0100 свяжем с ошибкой в четвертом разряде в проверочном элементе b2′ (т.к. в десятичном коде 0100 соответствует числу 4). Синдром вида 1000 свяжем с ошибкой в восьмом разряде в проверочном элементе b1′ (т.к. в десятичном коде 1000 соответствует числу 8). Т.о. одна единица в синдроме соответствует ошибке в одном из проверочных элементов, а проверочные элементы будут располагаться в 1, 2, 4 и 8 разрядах кодовой комбинации.
Появление большего числа единиц в синдроме будет связано с ошибками в информационных элементах {аj}. Информационные элементы кодовой комбинации будут располагаться в 3, 5, 6, 7, 9 разрядах.
Запишем вид синдрома, соответствующий ошибке в каждом разряде кодовой комбинации в виде таблицы:
Число, соответствующее синдрому в десятичном коде |
Элементы синдрома |
Элементы кодовой комбинации с ошибками |
|||
С1 |
С2 |
С3 |
С4 |
||
1 |
0 |
0 |
0 |
1 |
b4 |
2 |
0 |
0 |
1 |
0 |
b3 |
3 |
0 |
0 |
1 |
1 |
a1 |
4 |
0 |
1 |
0 |
0 |
b2 |
5 |
0 |
1 |
0 |
1 |
a2 |
6 |
0 |
1 |
1 |
0 |
a3 |
7 |
0 |
1 |
1 |
1 |
a4 |
8 |
1 |
0 |
0 |
0 |
b1 |
9 |
1 |
0 |
0 |
1 |
a5 |
10 |
1 |
0 |
1 |
0 |
a6 |
11 |
1 |
0 |
1 |
1 |
a7 |
12 |
1 |
1 |
0 |
0 |
a8 |
13 |
1 |
1 |
0 |
1 |
a9 |
14 |
1 |
1 |
1 |
0 |
a10 |
15 |
1 |
1 |
1 |
1 |
a11 |
Т.о. всем элементам кодовой комбинации поставлено в соответствие значение синдрома, которое при переводе в десятичный код, соответствует номеру разряда этого элемента. Таблица составлена до 15 разряда, т.к. именно это число позволяет записать двоичная комбинация из 4-х элементов. Т.к. в примере кодовая комбинация состоит из 9 элементов будем пользоваться первыми девятью строками таблицы.
Теперь определим {Ri} — операторы формирования проверочных элементов по информационным элементам. При этом учтем, что единственное линейное преобразование, которое можно совершать над информационными элементами, - это суммирование (в данном случае суммирование по модулю 2).
Построим алгоритм оператора R1 так, чтобы он включал в себя информационные элементы, ошибка в которых приводила бы к появлению единицы «1» в младшем разряде синдрома (С4). Наличие «1» в младшем разряде С4 соответствует проверочному элементу b4. Кроме того, эта «1» есть в синдромах с номерами 3, 5, 7, 9, 11, 13, 15, что соответствует информационным элементам а1, а2, a4, a5, a7, а9, a11. Таким образом,
Для девятиразрядной кодовой комбинации
Если в одном из этих элементов произойдет ошибка, то это неизбежно приведет к изменению b4.
Для формирования проверочного элемента b3, в синдроме которого единица стоит на второй позиции (второй разряд), отбираем информационные элементы, имеющие «1» во втором разряде своих синдромов, т. е. a1, а3, а4, а6, а7, а10, а11:
Для девятиразрядной кодовой комбинации
Для формирования проверочного элемента b2, в синдроме которого единица стоит на третьей позиции (третий разряд), отбираем информационные элементы, имеющие «1» в третьем разряде своих синдромов, т. е. a2, а3, а4, а8, а9, а10, а11:
Для девятиразрядной кодовой комбинации
Для формирования проверочного элемента b1, в синдроме которого единица стоит на четвертой позиции (четвертый разряд), отбираем информационные элементы, имеющие «1» в четвертом разряде своих синдромов, т. е. a5, а6, а7, а8, а9, а10, а11:
Для девятиразрядной кодовой комбинации
Пример
Имеется комбинация информационных элементов 11001. Для кода Хэмминга построить разрешенную комбинацию кода (9,5) и показать, что данный код исправляет однократную ошибку.
Воспользуемся проверочной матрицей приведенной выше. Имеем:
Разрешенная комбинация имеет вид 11001 1111.
Пусть произошла ошибка в элементе а3, т. е. приняли комбинацию 11101 1111. Проверим, исправляется ли ошибка. Для этого вычислим по информационной части принятой кодовой комбинации новые проверочные разряды:
Найдем синдром
0110 – в десятичной системе есть число 6. На 6-м условном номере согласно таблице стоит информационный элемент а3. Следовательно, значение принятого элемента а'3 нужно исправить: вместо «1» поставить «0». В результате кодовая комбинация принята правильно: 11001.