ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.03.2024
Просмотров: 50
Скачиваний: 0
СОДЕРЖАНИЕ
Количество информации в сигнале при наличии помех
Передача информации по дискретному каналу
Кодирование информации (сообщений) в дискретном канале.
Алгоритмы эффективного кодирования
Возможность кодирования в условиях шумов
Концепция построения помехозащищенного кода.
Представление линейных кодов в матричном виде
Построение систематического кода с помощью генераторного многочлена
-
При получении одной из трех верхних кодовых комбинаций, мы считаем, что был отправлен код 000 (при условии однократной ошибки).
-
При получении одной из трех нижних кодовых комбинаций, мы считаем, что был отправлен код 111.
Т.е. получили возможность исправления.
Графическая интерпретация
Единичные ошибки на окружности , ошибки –кратные на окружности . Для исправления необходимо:
Для задачи обнаружения ошибок кратности и исправления ошибок кратности , требуется:
Геометрическая интерпретация
Оценки необходимой разрядности кода для обеспечения возможности построения помехозащищенного кода.
-
Хэмминг:
25+1
-
Плоткин: верхняя граница для кодового расстояния для заданных значений :
-
Разрядность, необходимая для передачи сообщений (000 не используется):
Код Хэмминга код с , позволяющий исправлять все однократные ошибки. Для него количество информационных разрядов:
Уравнение имеет целочисленные решения , которые определяют коды : (3,1); (7,4); (15,11) и т.д.
Граница Варшамова-Гильберта
- определяет существование группового кода, с кодовым расстоянием, не меньшим , и с числом избыточных символов, не превышающем .
(Групповые) блоковые помехозащищенные коды обычно обозначают, как коды, где:
– число информационных разрядов;
– общее число разрядов;
– дополнительные избыточные или поверочные разряды.
Пример: Имеем три сообщения ; для их передачи достаточно , т.к. . Введем избыточность, необходимую для обнаружения одиночных ошибок ( ). Для этого достаточно ввести один дополнительный разряд. Тогда получим:
Самый простой принцип задания дополнительных разрядов и соответственно поверки наличия ошибки при приеме следующий:
То есть:
Тогда на приемной стороне достаточно при получении кодовой комбинации проверить выполнение равенства (проверка на четность):
Вектор ошибок - кодовая комбинация, имеющая «1» в разрядах, подвергшихся искажению, и «0» во всех остальных разрядах. Любую искаженную кодовую комбинацию можно рассматривать как -сумму разрешенной кодовой комбинации и вектора ошибки. Возвратимся к примеру.
-
Разрешенные комбинации
Искаженные
комбинации
Вектор ошибок
001
001
010
010
000
100
100
111
011
100
101
010
100
011
Концепция построения помехозащищенного кода.
-
Имеем Q сообщений.
-
Для их передачи требуется min информационных символов (разрядов).
-
Для обеспечения возможности корректировки ошибок вводим избыточность, получаем разрядов.
-
Выбираем величину или исходя из требуемой кратности корректируемых ошибок ( )
-
Получаем -разрядный код, где значения символов/разрядов для каждого сообщения мы должны как-то задать.
-
Среди возможных полученных на приемной стороне сообщений имеем разрешенных, т.е. соответствующих передачи Q сообщений без помех.
-
Остальные возможные кодовые комбинации – зашумленные, искаженные, запрещенные.
-
Близость зашумленных сообщений к разрешенным/посланным сообщениям оценивается кодовым расстоянием, определяемым по вектору ошибки.
-
Таким образом, на приемной стороне мы имеем множество из кодовых комбинаций, из которых комбинаций являются разрешенными, а остальные – нет.
-
Задача корректировки искаженных кодов заключается в следующем:
-
необходимо разбить все множество возможных кодов на подмножеств, непересекающихся, содержащих по одной разрешенной кодовой комбинации и близлежащих к ней искаженных.
-
тогда остается:
-
задать процедуру идентификации, к какому из подмножеств относится принятая комбинация
-
и далее присвоить принятой комбинации значения, соответствующие разрешенной комбинации в этом подмножестве.
Вопрос: как разбить множество всех возможных кодов на подмножества и как построить процедуру идентификации подмножеств при приеме.
Мы ранее рассмотрели вариант задания значений дополнительных/проверочных символов с помощью алгебраической линейной операции . Это пример формирования линейного кода. Линейные коды (самые распространенные среди блоковых) – это коды, в которых значения проверочных символов определяются на основании проверочных равенств (или уравнений связи), как результат линейных операций над информационными символами.
Любой двоичный линейный код является групповым кодом, т.к. совокупность входящих в него кодов составляет алгебраическую группу.
Линейная алгебра – теория групп, колец, полей.
Группа – множество элементов , для которых:
-
выполняется свойство замкнутости для введенных операций;
-
определена хотя бы одна основная операция сложения или умножения;
-
или
-
существует нулевой или единичный элемент:
или
-
существует обратный элемент:
или
Если для любых двух элементов выполняется:
или ,
то группа коммутативная или абелева.
В теории кодирования применяется аппарат линейной алгебры, т.к. используется свойство алгебраических групп, заключающееся в возможности разложения группы на смежные классы. Подгруппа – это подмножество множества , обладающие всеми свойствами множества .
Если в абелевой группе имеется подгруппа , то любого элемента , такого, что и , с каждым элементом образует смежный класс группы по подгруппе . Элемент , участвующий в образовании смежного класса, называют образующим элементом.
Свойства смежных классов
-
Два любых смежных класса группы по подгруппе не могут иметь ни одного общего элемента.
-
В одном смежном классе нет одинаковых элементов.
Это свойство групп может быть использовано для разложения группы символьных кодовых комбинаций по подгруппе разрешенных кодовых комбинаций при условии выбора необходимого минимального кодового расстояния. При этом в качестве образующих элементов используются векторы ошибок. Тогда в результате разложения мы получим совокупность смежных классов, соответствующих заданным векторам ошибок.
Чтобы иметь возможность определить, к какому смежному классу принадлежит полученная кодовая комбинация, каждому смежному классу должна быть поставлена некоторая последовательность символов (своего рода код), называема синдром или опознаватель. При этом на приемной стороне каждый символ опознавателя будет определяться в результате проверки справедливости одного из равенств, которые составляются для формирования значений проверочных символов при кодировании.
Опознаватель удобно строить так, чтобы он указывал номер разряда, в котором произошла ошибка (код Хэмминга).
Пример: Опознаватель кода (7,4).
Вектор ошибок |
Опознаватель
|
0000001 |
001 |
0000010 |
010 |
0000100 |
011 |
0001000 |
100 |
0010000 |
101 |
0100000 |
110 |
1000000 |
111 |
Приведем пример разложения кода (6,3), исправляющего одиночные ошибки ( ):
-
Образующий элемент, вект. ошибок
Подгруппа
100101
010111
110010
001011
101110
011100
111001
000001
100100
010110
110011
001010
101111
011101
111000
000010
100111
010101
110000
001001
101100
011110
111011
000100
100001
010011
110110
001111
101010
011000
111101
001000
101101
011111
111010
000011
100110
010100
110001
010000
110101
000111
100010
011011
111110
001100
101001
100000
000101
110111
010010
101011
001110
111100
011001
Появление «1» в младшем разряде опознавателя должно сигнализировать о возникновении ошибки в одном из нечетных разрядов переданной кодовой комбинации. Во втором разряде – во втором, или третьем, или в 6-ом, или 7-ом разрядах. В третьем – об ошибке в 4-ом, или в 5-ом, или в 6-ом, или в 7-ом разрядах.