Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания / 3.Помехозащищенное кодирование, распределенная обработка данных, потоки.doc
Скачиваний:
55
Добавлен:
02.05.2014
Размер:
3.33 Mб
Скачать

2.4 Код Хэмминга для исправления одиночных ошибок и обнаружения двойных ошибок /1/

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

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

2.5 Циклические коды /1/

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

Принцип обнаружения ошибок с применением циклического кода состоит в том, что в качестве разрешенных слов используются только такие слова, полиномы которых F(x) делятся без остатка на некоторый заранее выбранный полином P(x). Если после искажения отдельных разрядов слова представляющий это слово полином F *(x) не будет делиться без остатка на P(x), то фиксируется факт наличия ошибки.

Кодирование информационной части слова, представленной полиномом G(x), происходит в соответствии с соотношением

F(x)=G(x) xk + R(x),

где R(x)- остаток от деления G(x) xk на порождающий полином P(x) степени k.

Существо кодирования состоит в следующем. Информационная часть слова за счет умножения G(x) на xk сдвигается на k разрядов влево. В освободившиеся k младших (контрольных) разрядов записывается остаток R(x) от деления G(x) xk на P(x), который и представляет контрольную часть слова.

Получение контрольной части слова, соответствующей полиному R(x), практически осуществляется путем последовательного вычитания (сложения) по модуля 2 из сдвинутой информационной части слова другого слова, соответствующего порождающему полиному P(x).

3 Порядок выполнения работы

1. Ознакомиться с теоретической частью к лабораторной работе.

2. Представить алгоритмы, по которым происходит кодирование передаваемого сообщения с использованием кодов представленных в 2.2...2.5 на передающей стороне.

3. Представить алгоритмы, по которым происходит декодирование принимаемого сообщения с использованием кодов представленных в 2.2...2.5 на приемной стороне.

4. Написать программу по пункту1 для передаваемого сообщения (приложение А) с использованием алфавита кода КОИ-7 (приложение Б).

5. Написать программу по п.2 для принимаемого сообщения (приложение А) с использованием алфавита кода КОИ-7 (приложение Б).

6. Исследовать канал передачи сообщения при наличии одной ошибки в передаваемом сообщении (приложение В) с использованием кодов представленных в пунктах 2.2...2.5.

7. Исследовать канал передачи сообщения при наличии двух ошибок в передаваемом сообщении (приложение В) с использованием кодов представленных в 2.2...2.5.

8. Исследовать канал передачи сообщения при наличии трех ошибок в передаваемом сообщении (приложение В) с использованием кодов представленных в 2.2...2.5.

9. Представить отчет .

Примечание - Для циклического кода использовать порождающий полином P(x) = x3 + x + 1.