Вес и расстояние Хемминга. Способность кодов обнаруживать и исправлять ошибки
Рассмотрим, чем определяется
способность блочного кода обнаруживать и исправлять ошибки, возникшие при
передаче.
Пусть
U
= (U0, U1, U2, ...Un-1) -
двоичная последовательность длиной n.
Число единиц
(ненулевых компонент) в этой последовательности называетсявесом ХеммингавектораUиобозначаетсяw(U).
Например,
вес Хемминга вектора U= ( 1001011
) равен четырем, для вектораU= ( 1111111 ) величинаw(U)
составит 7 и т.д.
Таким
образом, чем больше единиц в двоичной последовательности, тем больше ее вес
Хемминга.
Далее, пусть U
и Vбудут двоичными последовательностями длиной n.
Число разрядов, в которых эти
последовательности различаются, называется расстоянием Хеммингамежду U
и Vи обозначается d( U, V).
Например,
если U
= ( 1001011 ),а V
= ( 0100011
), то d( U, V) = 3.
Задав
линейный код, то есть определив все 2k его кодовых слов,
можно вычислить расстояние между всеми возможными парами кодовых слов.
Минимальное из них называется минимальным
кодовым расстоянием кода и обозначается dmin.
Можно
проверить и убедиться, что минимальное кодовое расстояние для рассматриваемого
нами в примерах (7,4)-кода равно трем: dmin(7,4) = 3. Для этого
нужно записать все кодовые слова (7,4)-кода Хемминга (всего 16 слов),
вычислить расстояния между их всеми парами и взять наименьшее значение. Однако
можно определить dmin блочного кода и более простым способом.
Доказано, что
расстояние между нулевым кодовым словом и одним из кодовых слов, входящих в
порождающую матрицу (строки порождающей матрицы линейного блочного кода сами
являются кодовыми словами, по определению), равно dmin. Но
расстояние от любого кодового слова до нулевого равно весу Хемминга этого
слова. Тогда dminравноминимальному весу Хеммингадля всех строк порождающей матрицы кода .
Если
при передаче кодового слова по каналу связи в нем произошла одиночная ошибка, то расстояние Хемминга
между переданным словом U и принятым векторомrбудет равно единице. Если при этом одно
кодовое слово не перешло в другое (а при dmin> 1 и
при одиночной ошибке это невозможно), то ошибка будет обнаружена при декодировании.
В
общем случае если блочный код имеет минимальное расстояние dmin, то он может обнаруживать любые сочетания ошибок
при их числе, меньшем или равном dmin
- 1, поскольку никакое сочетание ошибок при их числе, меньшем,
чемdmin - 1, не может
перевести одно кодовое слово в другое.
Но
ошибки могут иметь кратность и большую, чем dmin- 1, и
тогда они останутся необнаруженными.
При
этом среднюю вероятность необнаруживаемой ошибки можно определить следующим образом.
Пусть
вероятность ошибки в канале связи равна Pош. Тогда вероятность
того, что при передаче последовательности длины nв ней произойдет одна ошибка, равна
Р1
= n Pош× ( 1- Рош)n-1,(1.36)
соответственно,
вероятность l-кратной ошибки-
Pl =Cnl
Pошl× ( 1- Pош)n-l,(1.37)
гдеCnl-число возможных комбинаций изnсимволов кодовой последо-вательности поlошибок.
По
каналу связи передаются кодовые слова с различными весами Хемминга. Положим,
что ai
— число слов с весом i
в данном коде (всего слов в коде длиной n-).
А
теперь определим, что такое необнаруживаемая
ошибка. Обнаружение ошибки производится путем вычисления синдрома принятой
последовательности. Если принятая последовательность не является кодовым словом
( тогда синдром не равен нулю), то считается, что ошибка есть. Если же синдром
равен нулю, то полагаем, что ошибки нет (принятая последовательность является
кодовым словом). Но
тем ли, которое передавалось?Или же в
результате действия ошибок переданное кодовое слово перешло в другое кодовое
слово данного кода:
r= U+ е=V,(1.38)
то есть
суммапереданного кодового слова U
и вектора ошибки е даст новое кодовое слово
V
? В этом случае, естественно, ошибка обнаружена быть не может.
Но из определениядвоичного линейного кода следует, что если сумма кодового слова и некоторого
вектораеесть кодовое слово,
товектор е также представляет собой кодовое слово. Следовательно, необнаруживаемые ошибки будут возникать тогда, когда
сочетания ошибок будут образовывать кодовые слова.
Вероятность
того, что вектор е совпадает с кодовым словом, имеющим вес i , равна
Pi = Pошi× (1- Рош)n-i .(1.39)
Тогда
полная вероятность возникновения необнаруживаемой ошибки
.(1.40)
Пример: рассматриваемый нами (7,4)-код
содержит по семь кодовых слов с весами w = 3 и w = 4 и одно
кодовое слово с весом w = 7, тогда
(1.41)
или,при Рош = 10-3, Р(Е) @ 7 × 10-9.
Другими
словами, еслипоканалупередается информация
со скоростью V = 1кбит/с и в канале в среднем каждую секунду
будет происходить искажение одного символа, то в среднем семь принятых слов на 109
переданных будут проходить через декодер без обнаружения ошибки (одна
необнаруживаемая ошибка за270 часов).
Таким образом, использование даже такого простого
кодапозволяет на несколько порядков
снизить вероятность необнаруживаемых ошибок.
They can also be extremely cheap (free) online, but also very expensive if you are buying DVDs. There is plenty of information in today's world if you simply know where to look. If you're really stuck, try typing in words on the Internet, or locate your nearest hardware store http://buildstar.site90.com and have a chat with the staff. In general, warranty terms and conditions will specify in great details exactly what is and isn't covered by the protection of the warranty. In Australia you have a set of basic consumer rights which cannot be affected by any aspect of a manufacturers warranty.