Передача дискретных сообщений
Назад
Содержание
Вперед


ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ

1. Помехоустойчивые коды и их основные параметры

Проблема повышения верности обусловлена не соответствием между требованиями, предъявляемыми при передачи данных и качеством реальных каналов связи. В сетях передачи данных требуется обеспечить верность не хуже 10-6 - 10-9, а при использовании реальных каналов связи и простого (первичного) кода указанная верность не превышает 10-2 - 10-5.
Одним из путей решения задачи повышения верности в настоящее время является использование специальных процедур, основанных на применении помехоустойчивых (корректирующих) кодов.

1.1 Принцип построения помехоустойчивых кодов

Простые коды характеризуются тем, что для передачи информации используются все кодовые слова (комбинации), количество которых равно N=qn (q - основание кода, а n - длина кода). В общем случае они могут отличаться друг от друга одним символом (элементом). Поэтому даже один ошибочно принятый символ приводит к замене одного кодового слова другим и, следовательно, к неправильному приему сообщения в целом.
Помехоустойчивыми называются коды, позволяющие обнаруживать и (или) исправлять ошибки в кодовых словах, которые возникают при передаче по каналам связи. Эти коды строятся таким образом, что для передачи сообщения используется лишь часть кодовых слов, которые отличаются друг от друга более чем в одном символе. Эти кодовые слова называются разрешенными. Все остальные кодовые слова не используются и относятся к числу запрещенных.
Применение помехоустойчивых кодов для повышения верности передачи данных связанно с решением задач кодирования и декодирования.
Задача кодирования заключается в получении при передаче для каждой k - элементной комбинации из множества qk соответствующего ей кодового слова длиною n из множества qn.
Задача декодирования состоит в получении k - элементной комбинации из принятого n - разрядного кодового слова при одновременном обнаружении или исправлении ошибок.

1.2 Основные параметры помехоустойчивых кодов

Длина кода - n;
Длина информационной последовательности - k;
Длина проверочной последовательности - r=n-k;
Кодовое расстояние кода - d0;
Скорость кода - R=k/n;
Избыточность кода - Rў;
Вероятность обнаружения ошибки (искажения) - РОО;
Вероятность не обнаружения ошибки (искажения) - РНО.
Кодовое расстояние между двумя кодовыми словами (расстояние Хэмминга) - это число позиций, в которых они отличаются друг от друга.
Кодовое расстояние кода - это наименьшее расстояние Хэмминга между различными парами кодовых слов.
Основные зависимости между кратностью обнаруживаемых ошибок t0, исправляемых ошибок tu, исправлением стираний tc и кодовым расстоянием d0 кода:

Стиранием называется "потеря" значения передаваемого символа в некоторой позиции кодового слова, которая известна.
Код, в котором каждое кодовое слово начинается с информационных символов и заканчивается проверочными символами, называется систематическим.

1.3 Граничные соотношения между параметрами помехоустойчивых кодов

Одной из важнейших задач построения помехоустойчивых кодов с заданными характеристиками является установление соотношения между его способностью обнаруживать или исправлять ошибки и избыточностью.
Существуют граничные оценки, связывающие d0, n и k.
Граница Хэмминга, которая близка к оптимальной для высоко скоростных кодов, определяется соотношениями:
для q-ного кода
для двоичного кода
Граница Плоткина, которую целесообразно использовать для низкоскоростных кодов определяется соотношениями:
для q-ного кода
для двоичного кода
Границы Хэмминга и Плоткина являются верхними границами для кодового расстояния при заданных n и k, задающими минимальную избыточность, при которой существует помехоустойчивый код, имеющий минимальное кодовое расстояние и гарантийно исправляющий tu - кратные ошибки.
Граница Варшамова-Гильберта (нижняя граница), определяемая соотношениями: и
показывает, при каком значении n-k определено существует код, гарантийно исправляющий ошибки кратности tu.

2. Линейные блоковые коды

Линейным блоковым (n,k) - кодом называется множество N последовательностей длины n над GF(q), называемых кодовыми словами, которое характеризуется тем, что сумма двух кодовых слов является кодовым словом, а произведение любого кодового слова на элемент поля также является кодовым словом.
Обычно N=qk , где k - некоторое целое число.
Если q=2, линейные коды называются групповыми, так как кодовые слова образуют математическую структуру, называемую группой. При формирование этого кода линейной операцией является суммирование по mod2.

2.1 Способы задания линейных кодов

1. Перечислением кодовых слов, т.е. составлении списка всех кодовых слов кода.
Пример. В таблице 1 представлены все кодовые слова (5,3) - кода (ai - информационные, а bi - проверочные символы).

Таблица 1

a1 a2 a3 b1 b2
1 0 0 1 1 0
2 0 1 0 1 1
3 0 1 1 0 1
4 1 0 0 0 1
5 1 0 1 1 1
6 1 1 0 1 0
7 1 1 1 0 0
8 0 0 0 0 0

2. Системой проверочных уравнений, определяющих правила формирования проверочных символов по известным информационным:

где
j - номер проверочного символа;
i - номер информационного символа;
hij - коэффициенты, принимающие значения 0 или 1 в соответствии с правилами формирования конкретных групповых кодов.
Пример. Для кода (5,3) проверочные уравнения имеют вид:
b1= a2 + a3;
b2= a1 + a2.

3. Матричное, основанное на построении порождающей и проверочной матриц.
Векторное пространство Vn над GF(2) включает в себя 2n векторов (n-последовательностей), а подпространством его является множество из 2k кодовых слов длины n, которое однозначно определяется его базисом, состоящим из k линейно независимых векторов. Поэтому линейный (n,k) - код полностью определяется набором из k кодовых слов, принадлежащих этому коду.
Набор из k кодовых слов, соответствующих базису, обычно представляется в виде матрицы, которая называется порождающей.
Пример. (5,3) - код, который был представлен в таблице 1, может быть задан матрицей

Остальные кодовые слова получаются сложением строк матриц в различных сочетаниях.
Общее количество различных вариантов порождающих матрицу определяется выражением

Для исключения неоднозначности в записи G(n,k) вводят понятие о канонической или систематической форме матрицы, которая имеет вид

где
Ik - единичная матрица, содержащая информационные символы;
Rk,r - прямоугольная матрица, составленная из проверочных символов.
Пример. Порождающая матрица в систематическом виде для (5,3) - кода

Порождающая матрица G(n,k) в систематическом виде может быть получена из любой другой матрицы посредством элементарных операций над строками (перестановкой двух произвольных строк, заменой произвольной строки на сумму ее самой и ряда других) и дальнейшей перестановкой столбцов.
Проверочная матрица в систематическом виде имеет вид

где Ir - единичная матрица; - прямоугольная матрица в транспонированном виде матрицы Rk,r из порождающей матрицы.
Пример. Проверочная матрица (5,3) - кода

2.2 Основные свойства линейных кодов

1. Произведение любого кодового слова на транспонированную проверочную матрицу дает нулевой вектор размерности (n-k)

Пример. для кода (5,3)


2. Произведение некоторого кодового слова, т.е. с ошибкой, на транспонированную проверочную матрицу называется синдромом и обозначается Si(x)


3. Между порождающей и проверочной матрицами в систематическом виде существует однозначное соответствие, а именно:


4. Кодовое расстояние d0 (n,k) - кода равно минимальному числу линейно зависимых столбцов проверочной матрицы
Пример.
для кода (5,3):

для кода (5,2):


5. Произведение информационного слова на порождающую матрицу дает кодовое слово кода
Пример. для кода (5,3)


6. Два кода называются эквивалентными, если их порождающие матрицы отличаются перестановкой координат, т.е. порождающие матрицы получаются одна за другой перестановкой столбцов и элементарных операций над строками.

7. Кодовое расстояние любого линейного (n,k) - кода удовлетворяет неравенству (граница Сингтона). Линейный (n,k) - код, удовлетворяющий равенству, называется кодом с максимальным расстоянием.

2.3 Стандартное расположение группового кода

Стандартное расположение группового кода представляет разложение множества всех возможных n-элементных слов, представляющих собой группу, на смежные классы по подгруппе из 2k кодовых слов, составляющих (n,k)-код (см. таблицу 2).

Таблица 2

... ...

Образующие или лидеры смежных классов выбираются таким образом, чтобы в их состав вошли наиболее вероятные образцы ошибок в кодовом слове, т.е. образцы ошибок с наименьшим весом.
Пример. Код (5,3) имеет матрицы
и
а стандартное расположение имеет вид,
00000 10111 01101 11010
       
00001 10110 01100 11011
00010 10101 01111 11000
00100 10011 01001 11110
01000 11111 00101 10010
10000 00111 11101 01010
       
00011 10100 01110 11001
10001 00110 11100 01011

Этот код имеет d0=3. Он гарантирует исправление одиночных ошибок, конфигурация которых дана в первом столбце.
Процедура исправления ошибок следующая. Принятое кодовое слово анализируют и определяют, в каком столбце оно находится, а затем в качестве исправленного кодового слова берут слово, находящееся в верхней строке.
Однако, если длина кода большая и таблица стандартного расположения также значительная, пользоваться таким алгоритмом неудобно. Поэтому при декодировании используют таблицу синдромов (декодирования), представляющую собой список образцов ошибок (см. первый столбец стандартного расположения) и список соответствующих синдромов, которые однозначно характеризуют каждый смежный класс (см. раздел 4.1).

3. Коды Хэмминга

Кодом Хэмминга называется (n,k)-код, проверочная матрица которого имеет r = n-k строк и 2r-1 столбцов, причем столбцами являются все различные ненулевые последовательности.
Пример. Для (7,4)-кода Хэмминга
или
Проверочная матрица любого кода Хэмминга всегда содержит минимум три линейно зависимых столбца, поэтому кодовое расстояние кода равно трем.
Если столбцы проверочной матрицы представляют упорядоченную запись десятичных чисел, т.е. 1,2,3... в двоичной форме, то вычисленный синдром

однозначно указывает на номер позиции искаженного символа.
Пример. Для (7,4)-кода Хэмминга проверочная матрица в упорядоченном виде имеет вид

Пусть переданное кодовое слово ,а принятое слово - .
Синдром, соответствующий принятому слову будет равен

Вычисленный синдром указывает на ошибку в пятой позиции.
Проверочная матрица в упорядоченном виде представляет совокупность проверочных уравнений, в которых проверочные символы занимают позиции с номерами 2i (i=0,1,2...).
Для (7,4)-кода Хэмминга проверочными уравнениями будут

где - проверочные символы.
Элементы синдрома определяются из выражений

Корректирующая способность кода Хэмминга может быть увеличена введением дополнительной проверки на четность. В этом случае проверочная матрица для рассмотренного (7,4)-кода будет иметь вид
а кодовое расстояние кода d0=4.
Проверочные уравнения используются для построения кодера, а синдромные - декодера кода Хэмминга.


Назад
Содержание
Вперед