Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятие сообщения.docx
Скачиваний:
6
Добавлен:
06.08.2019
Размер:
25.36 Кб
Скачать

Асинхронное и синхронное кодирование.

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

В асинхронном режиме применяют коды, в которых явно выделены границы каждого символа (байта) специальными стартовым и стоповым символами. Подобные побайтно выделенные коды называют байт-ориентированными, а способ передачи - байтовой синхронизацией. Однако это увеличивает число битов, не относящихся собственно к сообщению.

В синхронном режиме синхронизм поддерживается во время передачи всего информационного блока без обрамления каждого байта. Такие коды называют бит-ориентированными. Для входа в синхронизм нужно обозначать границы лишь всего передаваемого блока информации с помощью специальных начальной и конечной комбинаций байтов (обычно это двухбайтовые комбинации). В этом случае синхронизация называется блочной (фреймовой).

Способы контроля правильности передачи данных: код с проверкой на четность, коды Хэмминга, циклические коды.

Код с проверкой на четность является простейшим и его возможности очень скромны. Он находит применение в каналах с очень малой вероятностью ошибок. Увеличивая избыточность и вводя дополнительные проверочные разряды, можно не только обнаруживать сам факт ошибки, но и определять позицию ошибки и исправлять ее. Для исправления ошибки надо всего лишь найти строку и столбец матрицы, в которых произошли нарушения четности числа единиц, и заменить символ, принадлежащий найденным строке и столбцу на противоположный. Рассмотренный код хорошо иллюстрирует принципы обнаружения и исправления ошибок, но для использования на практике он мало подходит, так как избыточность его очень велика, хотя она и сокращается с ростом длины информационной части слова.

Коды Хемминга являются самоконтролирующимися кодами, т.е кодами, позволяющими автоматически обнаруживать наиболее вероятные ошибки при передаче данных. Для их построения достаточно приписать к каждому слову один добавочный (контрольный) двоичный разряд и выбрать цифру этого разряда так, чтобы общее количество единиц в изображении любого числа было, например, четным. Одиночная ошибка в каком-либо разряде передаваемого слова (в том числе, может быть, и в контрольном разряде) изменит четность общего количества единиц. Счетчики по модулю 2, подсчитывающие количество единиц, которые содержатся среди двоичных цифр числа, могут давать сигнал о наличии ошибок. При этом, разумеется, мы не получаем никаких указаний о том, в каком именно разряде произошла ошибка, и, следовательно, не имеем возможности исправить её. Остаются незамеченными также ошибки, возникающие одновременно в двух, в четырёх или вообще в четном количестве разрядов. Впрочем, двойные, а тем более четырёхкратные ошибки полагаются маловероятными.

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