Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
COD_POS_2004.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
316.93 Кб
Скачать

2. 3. Свойства линейного кода. Коды хэмминга

Пусть С линейный [ n , k ] - код с проверочной матрицей H размерности

( n - k )  n . Если все строки матрицы H линейно независимы , то число кодовых слов ( т .е . мощность кода ) равно  В k , где В - алфавит канала. Далее, если х , у  С и  В , то х + у ,  х также принадлежат линейному коду С, так как

H ( х + у )т = H хт + H ут = 0 , H (х )т =  Hхт = 0 .

Обозначим через d С минимальное расстояние линейного кода С, т.е.

d С = min  d ( х , у )  х , у  С , х  у  .

Линейный код С длины n, размерности k и с минимальным расстоянием d С ( или же с кодовым расстоянием d С = d ) назовём также линейным

[ n , k , d ] - кодом.

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

d С = min  W ( х )  х  С , х  0  ,

так как

d С = min  d ( х , у )х , у  С , х  у  = min  W ( х + у ) х , у  С, ху =

= min  W (z ) z  С, z 0  .

Код с кодовым расстоянием d может исправлять [(d - 1 ) / 2 ] ошибок. Если d чётное, то код может одновременно исправлять (d - 1 ) / 2 ошибок и обнаруживать d / 2 ошибок. Таким образом, для построения оптимальных кодов необходимо учитывать его эффективность, т.е. скорость передачи информации и максимальность кодового расстояния для заданных параметров n и k.

Так, например, для кода С 0 с проверкой на чётность R = k / ( k + 1 ), а d С = 2 , т.е. его скорость высокая, а корректирующая возможность очень низкая, он обнаруживает всего лишь одну ошибку. И наоборот, для кода С1 с повторениями R = 1 / n , а d С = n , т.е. он достаточно высокой корректирующей возможностью, но с низкой скоростью.

Для построения линейного [ n , k , d ] - кода длины n размерности k с заданным расстоянием d и с проверочной матрицей H необходимо и достаточно, чтобы любые d - 1 столбцов матрицы H были линейно независимы и в то же время нашлись бы d линейно зависимых столбцов. Причём, если С - [ n , k , d ] - код, то n - k  d - 1 , т.е. d  n - k + 1 ( Граница Синглтона ) и указанные выше свойства справедливы для линейных кодов над любым конечным полем.

А для обнаружения и исправления ошибок в каналах связи необходимо воспользоваться равенством:

S = H x ' т =  e i H i = H a + H b + . . . + H c ,

i

где H i - i - й столбец матрицы H , i - номер ошибочной позиции принятого слова x ' , так как если x ' = х + e , то S = H x ' т = H ( x + e ) т = H e т.

Слово S т называется синдромом принятого слова x '.

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

Двоичный код Хэмминга H r. Для любого r  2 двоичный код Хэмминга H r длины n = 2 r - 1 имеет проверочную матрицу H r , столбцы которой состоят из всех ненулевых двоичных векторов длины r, причём каждый вектор встречается в матрице H один раз, т.е.

0 0 . . . 1 1

0 0 . . . 1 1

H r = . . . = 1 , 2 , . . . , 2 r - 1 .

0 1 . . . 1 1

1 0 . . . 0 1

Кодовое расстояние кода H r равно 3 , так как любые два столбца её проверочной матрицы H r линейно независимы, и существуют 3 линейно зависимых столбца, следовательно, код Хэмминга обнаруживает и исправляет одну симметрическую ошибку. Данный код представляет собой линейный [2 r - 1 , 2 r - r - 1 , 3 ] - код.

В случае, когда длина кода Хэмминга не равна 2 r - 1 , то r определяется как наименьшее целое решения неравенства

n < 2 r - 1 ,

а проверочная матрица H r' соответствующего кода Хэмминга длины n<2 r-1

получается из проверочной матрицы H r путём исключения любых её 2 r-1- - n столбцов.

Так, например, двоичный [7 , 4 , 3 ] - код Хэмминга имеет следующую проверочную матрицу:

0 0 0 1 1 1 1

H 3 = 0 1 1 0 0 1 1 = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ,

1 0 1 0 1 0 1

а [6 , 3 , 3 ] - код - матрицу ( из H 3 исключим, например, последний столбец ):

0 0 0 1 1 1

H 3' = 0 1 1 0 0 1 = [ 1 , 2 , 3 , 4 , 5 , 6 ] .

1 0 1 0 1 0

Приведём способ построения новых кодов из заданных на примере кодов Хэмминга и кодов проверки на чётность в результате чего кодовое расстояние и длина нового кода увеличиваются на единицу. Это так называемый расширенный [n + 1 , n - r , 4 ] - код Хэмминга с проверочной матрицей:

1 1 . . . 1

0

H r + 1 = .

H r . .

.

0

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

А 1= 0 0 0 0, 0 0 1 1, 1 1 0 0, 1 1 1 1 , А 2= 0 0 0 0, 0 1 0 1, 1 0 1 0, 1 1 1 1

являются эквивалентными [ 4 , 2 , 2 ] - кодами.

Если В(n , d) - максимальная мощность некоторого линейного [n, k, d ]-

- кода длины n с кодовым расстоянием d, то для кодов Хэмминга она определяется формулой 2 r - r - 1

В(n , 3 ) = 2 ,

а его эффективность, т.е. его скорость передачи информации - формулой:

R = (2 r - r - 1 ) / (2 r - 1) .

2.3.1. Доказать, что код с кодовым расстоянием d может исправлять

[(d - 1 ) / 2 ] ошибок, причём если d чётное, то он может одновременно исправлять (d - 1 ) / 2 ошибок и обнаруживать d / 2 ошибок.

2.3.2. Доказать, что если H - проверочная матрица линейного кода длины n , то код имеет минимальное расстояние d тогда и только тогда, когда любые d - 1 столбцов матрицы H линейно независимы, но найдутся d линейно зависимых столбцов.

2.3.3. Доказать, что если i , j , . . . , k - номера ошибочных позиций принятого слова x ' некоторого линейного кода с проверочной матрицей H, то S = H x '= H i + H j + . . . + H k , где H i - i- й столбец матрицы H.

2.3.4. Доказать, что кодовое расстояние кодов Хэмминга равно 3 .

2.3.5. Доказать, что кодовое расстояние расширенных кодов Хэмминга равно 4 .

2.3.6. Выписать все кодовые слова кода H 3 .

2.3.7. Построить проверочную матрицу [13 , 10 , 3 ] - кода Хэмминга над полем GF( 3 ).

2.3.8. Доказать, что если С - двоичный линейный код и слово а  С , то

С U ( а + С ) также является двоичным линейным кодом.

2.3.9. Доказать, что если С является [n , k , d ]- кодом над полем GF( Р ),

то множество всех слов GFn ( Р ) можно разбить на непересекающиеся смежные классы : GF n ( Р ) = С U ( а 1 + С ) U ( а 2 + С ) U . . . U ( а t + С ) , где t = P n - k - 1 .

2.3.10. Доказать, что коды С и а + С являются эквивалентными для любого слова а.

2.3.11. Построить порождающую матрицу кода H r и, используя её, показать, что каждое ненулевое кодовое слово имеет вес не менее 3 .

2.3.12. Доказать, что код Хэмминга является совершенным кодом ( код называется совершенным, если он покрывает всё пространство ).

2.3.13. Доказать, что если С - [n , k , d ]- код , то d  n - k + 1 ( Граница Синглтона ).

2.3.14. Определить значение величины В( n , d ) для любого линейного кода.

2.3.15. Разработать алгоритмы кодирования и декодирования для линейных [n , k , d ]- кодов.

2.3.16. Разработать алгоритмы кодирования и декодирования для линейных кодов Хэмминга.

2.3.17. Доказать, что код Хэмминга обнаруживает и исправляет одну симметрическую ошибку на примере H 3.

2.3.18. Определить веса всех кодовых слов (спектр весов) кода H r .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]