|
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Теорема. Конечный дискретный канал без памяти обладает следующими свойствами.
1. Скорость передачи R является строго выпуклой кверху функцией от вероятностей полученных букв 2. Скорость R является выпуклой кверху функцией от вероятностей букв
3. Область пространства вероятностей букв на входе, в которой достигается пропускная способность канала, является выпуклым множеством. 4. Не существует локального максимума R, который не является абсолютным максимумом С. 5. Любая буква на входе, внутренняя для выпуклого тела, определенного другими буквами на входе, может быть выкинута без снижения пропускной способности канала. 6. Для достижения пропускной способности канала нужно использовать только q (соответствующим образом выбранных) букв на входе, где q равно рангу матрицы Более того, 7. Пропускная способность является выпуклой вниз функцией переходных вероятностей Код Хэмминга Одними из самых простых корректирующих кодов являются коды Хэмминга, представленные Хэммингом в 1950 г. Данные коды обладают кодовым расстоянием dmin=3 и поэтому способны исправлять только одну или обнаружить две ошибки. Число разрешенных кодовых комбинаций для кодов с d=3 равно N ≤ 2n•(1+n)-1. Для кодов Хэмминга выбрано предельное значение разрешенных кодовых комбинаций N = 2n•(1+n)-1, а число информационных разрядов k определяется как k = log[ 2n•(1+n)-1 ] = n - log(n + 1). Данное уравнение имеет целочисленные решения k = 0, 1, 4, 11, 26, …., которые и определяют соответствующие коды Хэмминга [3, 1] - код, [7, 4] - код, [15, 11] - код и т.д. Ниже представлены алгоритмы кодирования и декодирования на примере [7, 4] - кода Хэмминга. Алгоритм кодирования Все номера позиций кода нумеруются в двоичной системе счисления, начиная с единицы p-разрядным двоичным числом: p = [ log(n) ], где [ ] - ближайшее большее целое, n - число разрядов кода cncn-1...cj...c1. Проверочные разряды размещаются в позициях кода, кратных целой степени двойки 20, 21, … и т.д.: cj = bj, j = 2i, i = 0, 1, …, (r-1), где r - число проверочных разрядов. Значение cj проверочного разряда определяется как сумма по mod2 тех разрядов кода, в номере которых двоичный разряд с i-ым весом равен единице. Алгоритм декодирования Вычисляется значение синдрома ошибки: Eош = || hrhr-1...hi...h1 ||.
Значение i-го разряда синдрома определяется как сумма по mod2 тех разрядов принятого кода, включая проверочные, в номере которых вес двоичного разряда совпадает с весом разряда синдрома. Например, для r = 3:
При проверке информации после ее приема возможны три случая: · Отсутствие ошибок - корректирующее число равно нулю, общая четность суммы единиц кодовой комбинации правильна. · Одиночная ошибка - контроль общей четности кодовой комбинации обнаруживает ошибку, корректирующее число указывает номер искаженного разряда (если корректирующее число равно нулю - ошибка произошла в разряде общей четности). · Двойная ошибка - корректирующее число не равно нулю, контроль общей четности кодовой комбинации не обнаруживает ошибки. Эффективность кода [7, 4] Код [7, 4] является минимально возможным кодом с достаточно большой избыточностью. Эффективность кода (k/n) растет с увеличением длины кода
Пример Пусть информационный кодовый вектор v = 1101. Кодирование В коде Хэмминга этот вектор будет занимать позиции c3, c5, c6 и c7, начиная с младшего разряда, а позиции c1, c2, c4 отводятся под проверочные разряды кода. · Шаг 1. Пронумеровать все позиции кода в двоичной системе счисления: c111c110c101[c100]c011[c010][c001] и выделить позиции для размещения проверочных разрядов:
· Шаг2. Определить значения проверочных разрядов кода суммированием по mod2 тех разрядов кода, в номере которых двоичный разряд с (i)-ым весом равен единице:
Таким образом, получен кодовый вектор v = 1100110, который передается по каналу, подверженному влиянию помех. Пусть вектор ошибки равен e = 0000100, тогда принятая из дискретного канала кодовая комбинация будет иметь вид:
Декодирование Найти синдром ошибки Eош = || h3h2h1 ||. Для этого
Eош = ||011||. Так как синдром ошибки определяет в двоичной системе номер разряда, в котором обнаружена однократная ошибка, для исправления ошибки необходимо инвертировать третий разряд - c3. Получим: v = 1100110, откуда, выделяя информационные разряды, получаем исходный кодовый вектор v = 1101. Матричный подход к построению помехоустойчивых кодов. Проверочная и корректирующая матрицы. При построении помехоустойчивых кодов так же могут быть использован матричный подход. Чтобы получить кодовое слово f, нужно информационное слово a умножить на порождающую матрицу G, то есть f = aG. Так, если a = 011 — информационное слово из k = 3 символов и задана порождающая матрица G размерности 3 на 5, то кодовое слово f будет состоять из n = 5 символов, из которых два последних
Порождающая матрица получается путем последовательного сдвига соответствующего порождающего многочлена
Порождающая матрица G имеет размерность
Причем
Предположим, у нас есть конкретный порождающий многочлен Проверочный многочлен h(x) находится простым делением многочлена В соответствии с вышеприведенными определениями, находим конкретный вид порождающей G и проверочной H матриц:
Последнее равенство говорит о том, что матрицы G и H ортогональны относительно друг друга (звездочка означает операцию транспонирования матрицы). Рассмотренные G и H матрицы называются ленточными, потому что нули и единицы вдоль обеих диагоналей этих матриц образуют своеобразные ленты. Но любая ленточная матрица может быть сведена к систематическому виду:
Существует, по крайней мере, два способа сведения ленточных матриц к систематическому виду. Первый наиболее надежный способ состоит в нахождении ряда остаточных многочленов. Если дает строки систематической матрицы G. Аналогичным способом находятся строки проверочной матрицы H. Второй способ заключается в том, чтобы найти соответствующие линейные комбинации строк или столбцов исходных матриц ленточного типа. Найдем G и H для предыдущего случая:
Эти две систематические матрицы можно было бы получить путем сложения векторов-столбцов исходных ленточных матриц (напоминаем, счет столбцов для G матрицы начинается с нуля, а для H матрицы — с шести).
Теперь поясним, как составить проверочные соотношения и определить коды ошибок si по известной проверочной матрице. С этой целью выпишем три равенства, отвечающих строкам матрицы H':
При ошибке в символе Таблица 1
При одновременном появлении ошибок в двух символах, например в коды ошибок будут складываться; в данном случае он становится таким же, как и при одиночной ошибке в символе Код БЧХ БЧХ-код является циклическим кодом, который можно задать порождающим полиномом. Для его нахождения в случае БЧХ-кода необходимо заранее определить длину кода n(она не может быть произвольной) и требуемое минимальное расстояние
Тогда нормированный полином Число проверочных символов r равно степени Так же, как и для циклического кода, кодовый полином c(x) может быть получен из информационного полинома m(x), степени не больше k-1, путем перемножения m(x) и
Построение Для нахождения порождающего полинома необходимо выполнить несколько этапов: - выбрать q, то есть поле GF(q), над которым будет построен код;
- выбрать длину n кода из условия - задать величину d конструктивного расстояния;
1) Построить циклотомические классы элемента Циклотомическим классом над полем 2) Поскольку каждому такому циклотомическому классу соответвует неприводимый полином над GF(q), корнями которого являются элементы этого и только этого класса, со степенью равной количеству элементов в классе, то выбрать 3) вычислить порождающий полином Популярное:
|
Последнее изменение этой страницы: 2016-04-11; Просмотров: 1193; Нарушение авторского права страницы