Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 640

.pdf
Скачиваний:
7
Добавлен:
30.04.2022
Размер:
3.05 Mб
Скачать

формационных символов могут быть правильными).

Любая искаженная комбинация может рассматриваться как результат сложения по mod 2 исходной разрешенной комбинации и вектора ошибки.

Число r искаженных символов кодовой комбинации называют кратностью ошибки. При кратности ошибок r всего может быть n-разрядных двоичных векторов ошибок. Ошибки символов, при которых вероятность появления любой комбинации зависит только от числа r искаженных символов и вероятности p искажения одного символа, называют взаимно независимыми. При взаимно независимых ошибках вероятность искажения любых r символов в n -разрядной кодовой комбинации

=

(1− ) .

(7.17)

Корректирующая способность кода характеризуется значениями кратности r ошибок, которые обнаруживаются, и кратностью t ошибок, которые могут исправляться корректирующим кодом. Подчеркнем, что конкретный корректирующий код не обязан исправлять любую комбинацию ошибок. Он может обнаруживать и исправлять лишь ошибки заданной кратности, которые принимались в расчет при его построении.

C учетом выше сказанного, теорему Шеннона о существовании хороших кодов можно сформулировать следующим образом:

Теорема. Для любого ɛ > 0, если R < C и n достаточно велико, существует (n, k) двоичный код со скоростью k/n≥R, вероятность ошибки которого Рош< ɛ.

К сожалению, эта теорема была доказана пока только вероятностными методами и ничего не говорит о том, как построить эти коды.

На практике вычислить Рош довольно сложно, поэтому в качестве более удобного критерия, насколько хорош код, используется минимальное расстояние кода d. Ибо зная d, мы знаем, что код может исправлять (d—1)/2 ошибок.

181

Таким образом, возможна такая формулировка основной проблемы теории кодирования: необходимо найти коды с большим R (для эффективности) и с большим d (чтобы исправлять много ошибок).

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

7.10. Общая схема построения группового кода

Исходными данными для построения группового кода являются: объем кода М (количество передаваемых дискретных сообщений) и заданная корректирующая способность. Задача заключается в определении числа разрядов п кода и правила формирования проверочных разрядов [6].

Систематический код имеет формат, изображенный на рис. 7.7, то есть содержит неизменную информационную часть длиной k символов и избыточную (проверочную) длиной n – k символов.

 

k

 

r = n - k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

Рис. 7.7 Формат систематического кода

Блочный код, обладающий свойствами линейности и си-

стематичности, называется линейным блочным систематическим (n, k)-кодом.

Количество информационных разрядов k по заданному М

определяется из условия

2k - 1 > М

(здесь учтено, что нулевая комбинация обычно не используется, т.к. не изменяет состояния канала связи). Далее каждой из этих 2k - 1 ненулевых информационных последовательностей

182

необходимо поставить в соответствие п -разрядный избыточный код (разрешенную комбинацию).

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

Если, например, ставится задача исправлять все одиночные ошибки (кратность t=1), то в качестве образующих элементов должны быть взяты п разных векторов, содержащих по одной единице в одном из п разрядов. Если кроме одиночных необходимо исправлять также все двойные ошибки (кратность t=2), то добавится Cns = Cn2 векторов ошибок (образующих элементов классов) и т.д.

Кроме самой подгруппы разрешенных комбинаций в результате разложения группы всех n-разрядных комбинаций может быть образовано (2п - k – 1) непересекающихся смежных классов. Если число подлежащих исправлению векторов ошибок не превышает числа смежных классов, каждому из них можно поставить в соответствие некоторый класс смежности. Таким образом, для того чтобы обеспечивалась возможность определения и исправления ошибок кратности до t включительно, в общем случае должно выполняться неравенство

2 −1 ≥ + + +

(7.18)

или 2 ≥ ∑

.

В соответствии с (7.18) число разрядов корректирующего кода, предназначенного для исправления ошибок кратности t, определяется неравенством:

≥ +log

.

(7.19)

Исправление ошибок возможно лишь при взаимноодно-

183

значном соответствии между множеством смежных классов (векторов ошибок) и множеством опознавателей.

7.11. Параметры (характеристики) помехоустойчивых кодов и их границы. Корректирующие свойства кодов.

Основными характеристиками помехоустойчивых кодов являются:

1.Длина кода n;

2.Основание кода m;

3.Общее число кодовых комбинаций N;

4.Число разрешенных и запрещенных кодовых комби-

наций;

5.Избыточность кода;

6.Минимальное кодовое расстояние dmin.

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

Граница Хэмминга Для любого двоичного кода, содержащего M кодовых слов длины n и исправляющего t (и менее) ошибок, выполняется соотношение

 

 

 

t

2

n

 

 

 

Cni

 

2n(1 R),

 

 

 

 

 

 

 

 

i 0

M

 

n!

 

 

 

 

где Cni

– биномиальный коэффициент, или число

(n i)!i!

 

 

 

 

 

сочетаний из n по i; R=k/n – скорость кода.

Иным вариантом представления границы (7.19) может служить соотношение

184

t

 

n k log Cni

,

 

 

i 0

 

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

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

2 ≤

2

.

 

 

 

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

≥ log

.

В случае рассмотрения недвоичных, q–ичных кодов, граница Хэмминга имеет вид

t

q

n

Cni (q 1)i

 

.

 

 

i 0

M

 

 

 

Коды, для которых достигается равенство в границе Хэмминга, называются совершенными.

Совершенные коды исправляют любую ошибку кратности t и менее, но не исправляют ни одной ошибки большей кратности. Геометрически эти коды воплощают так называе-

мую «плотную упаковку», когда все 2n двоичных векторов охвачены M сферами радиуса t без пересечения и свободного пространства. В этой связи совершенные коды также называют плотно упакованными или сферически упакованными. Их совершенство заключается в достижении максимально возможной скорости R при фиксированных d 2t 1 и n. Среди дво-

185

ичных кодов известны три класса совершенных кодов – тривиальный код с повторением нечетной длины, коды Хэмминга, исправляющие любую однократную ошибку, и код Голея длины 23 и кодовым расстоянием 7 (исправляет любую 3–кратную ошибку и менее).

Коды, исправляющие любые ошибки кратности до t включительно, а также некоторые ошибки кратности t 1, и не исправляющие никаких ошибок большей кратности, называют-

ся квазисовершенными кодами.

Примером квазисовершенного кода может служить рас-

ширенный код Хэмминга с параметрами n 2n k 1, получаемого из совершенного кода Хэмминга добавлением еще одного проверочного символа путем простой проверки на четность.

Применение границы Хэмминга дает результаты близкие к оптимальным для высокоскоростных кодов R=k/n > 0,3.

Для низкоскоростных кодов, т.е. R=k/n ≤ 0,3, границу числа проверочных символов называют границей Плоткина

[4]:

или

 

 

≥ 2(

− 1)− log

 

,при

≥ 2 − 1 .

Граница Варшамова – Гильберта:

≤ log

.

Таким образом, граница Хэмминга и Плоткина определяют необходимое количество проверочных символов, а граница Варшамова-Гильберта достаточное их количество.

Если количество проверочных символов выбрано так, что оно удовлетворяет этим границам, то код считается близким к оптимальному.

186

Коды, в которых число проверочных символов выбирается равным границам Хемминга или Плоткина называется совершенным или полноупакованным.

Граница Синглтона. Минимальное расстояние (минимальный вес) любого линейного (n, k) кода удовлетворяет неравенству:

d n k 1.

(7.20)

Граница Синглтона показывает, что для исправления t ошибок слова линейного кода должны содержать не менее 2t проверочных символов. Большинство кодов, даже оптимальных, имеют значительно большее количество проверочных символов. Вместе с тем, существуют коды, для которых неравенство (7.20) обращается в равенство.

Любой код с кодовым расстоянием d , удовлетворяющим соотношению (7.20), называется кодом с максимальным рас-

стоянием.

В свою очередь, граница Синглтона (7.20) бесполезна для двоичных кодов, поскольку значительно уступает в точности границам Плоткина и Хэмминга. Однако, она играет значительную роль в случае q–ичных кодов.

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

Так, для обнаружения и исправления одиночной ошибки (т.е. при dmin=3) соотношение между числом информационных разрядов k и числом корректирующих разрядов r должно удовлетворять следующим условиям:

2 ≥ +1

2 ≤

2

+1

при этом подразумевается, что общая длина кодовой комбинации

= + .

Для практических расчетов при определении числа контрольных разрядов кодов с минимальным кодовым расстояни-

187

ем

= 3

удобно пользоваться следующими приближенными

 

 

оценками:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

полной кодовой комбинации n, и

 

если известна длина= [log

(

+1)]

,

 

+1)]},

 

 

 

если при

= log {( +1)+ [log (

 

 

 

 

 

 

 

 

расчетах удобнее исходить из заданного числа

информационных символов .

 

 

 

 

 

 

 

 

 

(

Для кодов, обнаруживающих все трехкратные ошибки

= 4),

 

 

≥ 1+log (

+1)

 

+1)]

 

 

 

или

 

 

 

 

 

 

 

 

 

≥ 1+log [( +1)+log (

 

 

 

Для кодов длиной в n символов, исправляющих одну или

две ошибки (

= 5),

+

+1)

 

 

 

 

Для

 

 

≥ log (

 

 

 

 

 

практических расчетов можно пользоваться выраже-

нием

 

 

= log

 

+

+1

 

 

 

 

 

 

 

 

 

 

 

(

 

 

 

 

Для кодов, исправляющих 3

ошибки

 

.

 

 

 

2

 

 

= 7)

 

 

 

 

 

= log

+

 

+

+1

 

 

 

 

Для кодов, исправляющих s

ошибок

(

= 2

+1)

.

 

 

6

 

 

 

log ( +

+ +1) <

<log (

 

 

 

+

+ +1)

Выражение слева известно как нижняя граница Хэмминга, а выражение справа – как верхняя граница ВаршамоваГильберта.

Для приближенных расчетов можно пользоваться выражением

188

= log

+

+ +1

Можно предположить, что значение!

будет приближать-

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

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

Важным семейством кодов, которые легко кодировать и декодировать, являются коды Хэмминга, исправляющие одну ошибку. В этом параграфе мы обсудим только двоичные коды Хэмминга.

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

Если Н должна иметь r строк (код имеет r проверочных символов), то существует только 2r—1 допустимых столбцов, а именно 2r—1 ненулевых двоичных векторов длины r. Например, если r = 3, то имеются следующие 23—1 = 7 допустимых столбцов:

0

0

0

1

1

1

1

,

0

1

1

0

0

1

1

1

0

1

0

1

0

1

 

являющихся двоичными представлениями чисел от 1 до 7. Для кода Хэмминга мы используем их все и получим код длины n = 2r—1.

Определение. Двоичный код Хэмминга Hr длины n = 2r-1 (r ≥ 2) имеет проверочную матрицу Н, столбцы которой состо-

189

ят из всех ненулевых двоичных векторов длины r, причем каж-

дый вектор встречается в матрице один раз. Код Hr имеет па-

раметры n = 2r—1; k = 2r— 1 — r; d = 3.

Пример. Код #5 представляет собой [7, 4, 3]-код Хэмминга H3 с

=

0

0

0

1

1

1

1

0

1

1

0

0

1

1 .

 

1

0

1

0

1

0

1

Здесь мы разместили столбцы H в порядке возрастания чисел, двоичными представлениями которых они являются. Для того чтобы представить H в стандартной форме, переставим столбцы:

=

0

1

1

1

1

0

0

1

0

1

1

0

1

0 .

 

1

1

0

1

0

0

1

В общем случае

= [ | ] ,

где матрица А состоит из всех столбцов с двумя или более единицами.

Ясно, что перестановка столбцов Н не влияет на число ошибок, исправляемое кодом, или на вероятность ошибки этого кода.

Определение. Два кода называются эквивалентными, если они отличаются только перестановкой символов. Так, например, коды

0000

0000

0011

0101

1100

1010

1111

1111

являются эквивалентными [4, 2, 2]-кодами. Поэтому матрицы Н и Н' задают эквивалентные коды.

190