Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная СГВМ / Контрольная_СГВМ_ПугачВ.doc
Скачиваний:
60
Добавлен:
01.04.2014
Размер:
185.34 Кб
Скачать

Коды, получаемые с помощью матриц Адамара.

Матрицей Адамара называется ортогональная квадратная матрица размерности n x n, элементами которой являются действительные числа +1 и -1. Ортогональной называется матрица, строки которой являются взаимно ортогональными векторами.

Теорема 1. Если существует матрица Адамара размерности n x n, то существует двоичный код из n символов, образованный 2n векторами, с минимальным расстоянием, равным n/2 (не обязательно линейный код).

Доказательство: Пусть H – матрица Адамара. Код строиться следующим образом. Берется совокупность из 2n векторов v1,v2,…,vn,-v1v2,…,-vn, где v1,v2,…,-vn и заменяются в каждом из векторов все +1 на 0, а все -1 на 1. Тогда получается совокупность 2n двоичных векторов длины n. Поскольку соответствующие компоненты векторов vi и –vi различны, то расстояние между векторами vi и –vi равно n. Поскольку векторы ±vi и ±vj ортогональны, если i≠j, то они должны совпадать в половине компонент и отличаться друг от друга в остальных компонентах, так что соответствующие двоичные векторы находятся на расстоянии n/2.

Теорема 2. Если H – матрица Адамара размерности n x n, то матрица

является матрицей Адамара размерности 2n x 2n.

Доказательство: Очевидно, что матрица H’ является квадратной матрицей с элементами, равными +1 или -1. Скалярное произведение j-ой и (n+j)-й строк (j≤n) равно

(vj,vj)(vj,-vj)=vjvj+vj(-vj)=n-n=0.

Для любых других комбинаций строк

(vi, ±vi)(vj, ±vj)=vivj±vivj=0±0=0.

Следовательно, H’ – ортогональная матрица.

Многократно применяя теорему 2 можно построить матрицу Адамара размерности 2(m) x 2(m) для любого целого положительного m. Соответствующий ей код совпадает с кодом Рида-Маллера первого порядка. Для других значений n двоичные коды, получаемые с помощью матриц Адамара, не могу быть групповыми кодами, поскольку число их кодовых векторов не является степенью двойки.

Треугольный код

Примером высокоскоростных кодов являются коды с одной проверкой на

четность, содержащие только один проверочный символ. Проверочный символ вычисляется таким образом, чтобы четность всех кодовых слов была одинаковой. Например, C ={000,011,101,110}. Если полученное слово содержит нечетное число единиц, то считается, что произошла ошибка. Коды с одной проверкой на четность позволяют обнаруживать любое нечетное число ошибок.

На основе кодов с проверкой на четность строятся итеративные коды. Так,

в прямоугольных итеративных кодах сообщение располагается в виде прямоугольной матрицы и к каждой строке и столбцу матрицы добавляется проверка на четность. Любая одиночная ошибка может быть исправлена, так как при ее возникновении соответствующие строке и столбцу проверки на четность не выполняются. Минимальное расстояние такого кода d* = 4 , но его избыточность довольно высока. Можно построить итеративные коды с меньшей избыточностью – треугольные коды. В таких кодах проверки на четность, в которые входят как строка, так и соответствующий столбец, располагаются на диагонали.

Пример.

Пусть передается сообщение 110101. Представим его в виде треугольника

110

10

1

Теперь, расположим проверки на четность на диагонали.

1100

101

10

1

1+1+0=0, 1+0+0=1, 1+0+1=0, 1+1+1=1.

Переписывая полученный треугольник, получим кодовое слово

1100101101.

Если при построении остаются пустые ячейки, то они игнорируются.

Соседние файлы в папке Контрольная СГВМ