Обеспечения контроля работы автомата

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

Пусть имеется сообщение (а1а2…аm) в виде двоичного кортежа длины m. Эта последовательность, состоящая из m нулей и единиц, кодируется двоичным кортежем длины n (n>m). Сообщение передаются по каналу связи, в котором действует источник помех.При передаче кода (b1b2…bn)по каналу связи код, сообщение может значительно исказиться. Тогда на выходе получают слово (b'1b'2…b'n), отличающееся от (b1b2…bn) не более, чем в p позициях.

Проблема заключается в построении самокорректирующегося кода (b1b2…bn), который по любому его исходному слову (а1а2…аm), позволит на выходе получить такой кортеж b'1b'2…b'n , который сможет однозначно восстановить передаваемый код b1b2…bn, и получить исходное сообщение а1а2…аm. Коды, обладающие такой способностью, называют самокорректирующимися кодами относительно источника помех или кодами, исправляющими p ошибок.

Пусть заданы алфавитыА=В={0,1}, а кодирование выполняется без дополнительных помех. Возможны три типа ошибок:

1. 0→1, 1→0 - ошибки замещения разряда;

2. 0→۸, 1→۸ - ошибки выпадания разряда;

3. ۸→1, ۸→0 — ошибки вставки разряда.

Один из способов обнаружения одиночной ошибки заключается в удвоении каждого передаваемого символа. Для исправления одиночной ошибки длина слова утраивается.

Например, слово «март» можно закодировать в слово «ммаарртт». Тогда, в случае искажения одного из символов, ошибку можно обнаружить по второму, неискаженному символу. Например, получив искаженное слово «ММаарртс» мы должны проверить оба варианта гипотез: «Марс» и «Март».

Весомкодовой комбинации V(А) называют количество единиц в кодовой комбинации.

Каждое из слов X=(x1,x2,…,xn) длины n в этом алфавите обозначим Bn отождествим с n-мерным вектором, который может быть разложен по базисным векторам в этом n-мерным векторном пространстве Bn: Обеспечения контроля работы автомата - student2.ru .

Расстоянием Хемминга (или кодовым расстоянием) между словами A и B называется вес третьей кодовой комбинации, полученной при сложении исходных по модулю 2. Тогда расстояние Хемминга равно d(A,B)=AÅB. Заметим, что расстояние Хемминга равно числу несовпадающих позиций (разрядов) при сравнении их двоичной записи. Для произвольного кода X=(x0,x1,…,xn-1)Í Bn расстояние Хемминга равно

d(X)=min d(xi, xj)

Код позволяет обнаружить не более k ошибок тогда и только тогда, когда минимальное расстояние Хемминга между кодовыми словами превосходит k,т.е.когда d(bi,bj)³ k+1.

Код позволяет исправить не более k ошибок тогда, и только тогда, когда минимальное расстояние Хемминга между кодовыми словами превосходит 2k, т.е.когда d(bi,bj)³ 2k+1.

Очевидно, что сумма всех букв закодированного слова сообщения, передаваемого с помощью М2 должна быть равной 0. Отсутствие нуля при получении этого сообщения свидетельствует об однократной ошибке, которую можно исправить. Однако код с проверкой на четность не сможет обнаружить двукратную ошибку.

Механизм действия помех на кодовые слова из 0 и 1 математически описывается операцией "сумма по модулю 2". Обозначим наличие ошибки в данной позиции через "1", а ее отсутствие "0". Замена символа за счет помех ("0" на "1" или "1" на "0") определяется с помощью математического действия сумма по модулю два:

0 Обеспечения контроля работы автомата - student2.ru 0=0 - передавали 0, ошибки нет, получили 0;

0 Обеспечения контроля работы автомата - student2.ru 1=1 - передавали 0, ошибка есть, получили 1;

1 Обеспечения контроля работы автомата - student2.ru 0=1 - передавали 1, ошибки нет, получили 1;

1 Обеспечения контроля работы автомата - student2.ru 1=0 - передавали 1, ошибка есть, получили 0.

Пусть передавали двоичное слово 101001 - а получили 110001, т.е. ошибка произошла на втором и третьем разряде.

Если такая ошибка произойдет повторно, то восстановится исходное сообщение.

Действительно,

в первый раз: во второй раз:

передавали 101001 передавали 110001

ошибка 011000ошибка 011000

получили 110001 получили 101001

Так совпали первое слово при передаче в первом сообщении и последнее слово при передаче во втором сообщении, то первоначальное сообщение восстановлено: две одинаковые ошибки взаимно уничтожили друг друга.

4) Коды Хемминга.Коды Хемминга – это (m,n)-код, где обозначает n - длину кодового слова, m - число информационных символов. Такой код содержит всего 2m слов длиной m. Вместо того, чтобы перечислять все возможные кодовые слова в виде множества, применяется более компактный (экономный) способ задания матрицей.

Для (m,n)-кодов требуется выполнение соотношений: n=m+r, где Обеспечения контроля работы автомата - student2.ru , что позволяет исправить однократную ошибку с помощью введения r дополнительных (контрольных) символов методами матричного кодирования. Тогда в каждом кодовом слове b=b1b2…bn символы с индексами, равными степеням числа 2 будут контрольными, а все остальные – информационными. Так, для (4,7)-кода в любом кодовом слове b=(b1b2b3b4b5b6b7) символы b1b2 b3 являются контрольными, а b3 b5b6b7 – информационными.

Проверочной матрицей М (m,n)-кода Хемминга называется матрица

Обеспечения контроля работы автомата - student2.ru или M=(А Е) размера Обеспечения контроля работы автомата - student2.ru , где E– единичная матрица порядка n-m, а матрица А размера Обеспечения контроля работы автомата - student2.ru подбирается так, чтобы в столбцах матрицы М были указаны все двоичные разложения чисел от 1 до n. Порядок составления столбцов матрицы А произволен, но ни один набор не повторяется.

Порождающей матрицей Обеспечения контроля работы автомата - student2.ru называется матрица, составленная из матрицы Em – единичной матрицы m порядка и матрицы Обеспечения контроля работы автомата - student2.ru – полученной транспонированием матрицы A (строки и столбцы меняются местами).

Для того, чтобы закодировать некоторое кодовое слово α, представленное в виде вектора-строки, надо его умножить на порождающую матрицу G. Первые m букв вектора αG образуют исходное сообщение, последние n–m букв используются для контроля.

Опишем механизм исправление однократной ошибки с помощью кода Хемминга.

Пусть полученное некое кодированное сообщение b. Если при умножении проверочной матрицы М на вектор Обеспечения контроля работы автомата - student2.ru образуется нулевой вектор М Обеспечения контроля работы автомата - student2.ru , то говорят, что полученное сообщение не содержит ошибок. Если в процессе умножения проверочной матрицы М на вектор Обеспечения контроля работы автомата - student2.ru образуется ненулевой вектор М Обеспечения контроля работы автомата - student2.ru , то говорят, что полученное сообщение содержит ошибки. Для их устранения надо изменить символ в том разряде (позиции), номер которой равен номеру столбца проверочной матрицы М, совпадающего с вектором М Обеспечения контроля работы автомата - student2.ru .

При декодировании первые m символов образуют исходное сообщение.

Код Хемминга может быть получен и в векторной форме. Пусть известна n – длина кодового слова (b1b2…bn), Обеспечения контроля работы автомата - student2.ru где Обеспечения контроля работы автомата - student2.ru (k<n). Произвольному двоичному слову-вектору b=(b1b2…bn)ÎBn поставим в соответствие некоторую функцию H(b) – его разложение по единичным векторам ek, которое имеет вид: Обеспечения контроля работы автомата - student2.ru . Тогда H(b) есть вектор длины n, полученный при сложении по модулю 2 векторов ek, которые являются двоичными записями с помощью k символов номеров единичных знаков заданного слова. Такая функция при подстановке значений аргументов на множестве Bn принимает некоторые фиксированные значения.

Теорема.Код Хемминга H(b), состоящий из всех слов b=(b1b2…bn)ÎBn, таких, что H(b)=(0,0,…,0), является кодом с исправлением одного замещения.

Тогда, в результате одиночной ошибки значение функции изменяется, причем, если в слове b произошло замещение одного из символов, то координаты полученного вектора H(b) соответствуют двоичной форме замещенного разряда.

Контроль по четности. Для обнаружения однократной ошибки и ее исправления применяется контроль по четности, который заключается в том, что сумма двоичных единиц в машинном слове, включая контрольный разряд, должна иметь определенную четность, т.е. быть либо всегда четной, либо всегда нечетной.Кодирование с использованием проверки по четности заключается в добавлении сообщению в виде слова длины m из символов 0 и 1 дополнительного символа, который равен сумме по модулю 2 всех символов этого передаваемого слова длины m. Декодирование полученного сообщения сводится к отбрасыванию последней цифры.Такойкод с проверкой четности сможет обнаружить ошибку, но не сможет ее устранить.

Для уменьшения вероятности ошибки в двоичных кодах используют код Грея, в котором каждые две позиции отличаются только одним разрядом, т.е. на 1 бит. Поэтому выходной сигнал может быть представлен лишь одним из двух состояний: истинный или ложный. Код Грея тоже использует лишь два знака 0 и 1, но соседние числа отличаются только в одном разряде, т.е. на 1 бит информации.

Наши рекомендации