- •Теоретические основы информационных процессов введение
- •1.Кодирование сообщений
- •§1. Информационные процессы
- •§2. Передача и кодирование данных в аис
- •§3. Сжатие данных как информационный процесс
- •§4. Сжатие на основе смыслового содержания данных
- •§5. Переход от естественных обозначений к более компактным.
- •§6. Подавление повторяющихся символов
- •§7. Кодирование часто используемых данных
- •§8. Сжатие данных на основе сравнения
- •§9. Целесообразность сжатия данных
- •§10. Сжатие на основе статистических свойств данных и неравномерные коды
- •§11. Двоичное кодирование и бинарные деревья
- •§12. Кодирование сообщений словами переменной длины
- •§13. Процедура Шеннона-Фано
- •§14. Процедура Хафмана
- •§15. Кодирование последовательностей символов
- •§16. Помехоустойчивость данных
- •§17. Методы обеспечения помехоустойчивости
- •§18. Способность кодов обнаруживать и исправлять ошибки
- •2. Поиск данных
- •§1. Проблема поиска данных
- •§ 2. Виды зу
- •§3. Поиск на основе преобразования ключа в адрес
- •§4. Перемешивание
- •§5. Поиск на основе сравнения ключей
- •§6. Последовательный поиск
- •§7. Блочный поиск
- •§8. Двоичный поиск
- •§9. Поиск по бинарному дереву
- •§10. Чистый бинарный поиск
- •§11. Помехоустойчивый поиск
- •§12. B-деревья: общие сведения
- •§13. B-деревья: добавление ключей
- •§14. B-деревья: удаление ключей
§17. Методы обеспечения помехоустойчивости
Основными методами обеспечения помехоустойчивости данных, используемыми в настоящее время, являются:
1. Метод контроля четности. Данный метод является простейшим способом обнаружения некоторых из возможных ошибок. В качестве разрешенных используется половина возможных 2n кодовых комбинаций, а именно те из них, которые имеют четное число единиц. При передаче через канал связи возникновение однократной ошибки неизбежно приведет к нарушению четности, что и будет обнаружено на выходе канала. Ясно, что ошибки нечетной кратности (однократные, трехкратные, пятикратные, …) могут быть обнаружены этим методом, а ошибки четной кратности (двукратные, четырехкратные, …) – не могут.
Метод контроля четности реализуется на практике следующим образом. Из последовательности символов, подлежащих передаче через канал связи, выбирается очередной блок из (k-1) символов, называемых информационными, и к нему добавляется k-й символ, называемый контрольным. Значение контрольного символа выбирается таким, чтобы обеспечить четность получаемой кодовой комбинации из k символов, т.е. сделать ее разрешенной.
В тех случаях, когда вероятность появления более чем одной ошибки мала, метод контроля четности представляет собой значительную ценность – ведь если наверняка знать, что прием сопровождался ошибкой, то можно просто проигнорировать полученное сообщение и, если это допустимо, повторить передачу. В то же время скорость передачи данных, особенно при больших k, уменьшается незначительно (в k/(k-1) раз).
2. Метод контрольных сумм. Рассмотренный выше метод контроля четности можно применять несколько раз для каждого передаваемого кодового слова и это уже позволяет во многих случаях не только обнаруживать, но и исправлять обнаруженные ошибки. Рассмотрим пример.
Каждые четыре информационных символа a1, … , a4 будем дополнять тремя контрольными a5, a6, a7 так, чтобы оказались четными следующие три суммы:
S1 = a1 + a2 + a3 + a5
S2 = a1 + a2 + a4 + a6
S3 = a1 + a3 + a4 + a7
Контроль четности сумм S1, S2 и S3 на выходе канала связи позволяет однозначно установить, была ли допущена однократная ошибка и, если была, то какой из переданных символов был искажен:
если один из семи символов искажен при передаче, то хотя бы одна из сумм обязательно окажется нечетной, так что четность всех трех сумм свидетельствует об отсутствии однократных ошибок;
лишь одна сумма будет нечетной тогда и только тогда, когда искажен входящий в эту сумму один из трех контрольных символов (a5, a6 или a7);
нечетность двух из трех сумм S1, S2 и S3 будет означать, что искажен тот из символов a2, a3 или a4, который входит в обе эти суммы;
и, наконец, нечетность всех трех сумм означает, что неверно принят входящий во все суммы первый символ a1.
Нетрудно видеть, что разрешенными являются следующие кодовые комбинации:
0000000 1000111
0001011 1001100
0010101 1010010
0011110 1011001
0100110 1100001
0101101 1101010
0110011 1110100
0111000 1111111
Их использование сокращает скорость передачи данных в 7/4=1.75 раза и позволяет исправлять все однократные ошибки (но не ошибки большей кратности).