Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0 0=0 - передавали 0, ошибки нет, получили 0;

0 1=1 - передавали 0, ошибка есть, получили 1;

1 0=1 - передавали 1, ошибки нет, получили 1;

1 1=0 - передавали 1, ошибка есть, получили 0.

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 720 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинать всегда стоит с того, что сеет сомнения. © Борис Стругацкий
==> читать все изречения...

3466 - | 3265 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.