vopros-otvet (519806), страница 18
Текст из файла (страница 18)
Примечание. Не всегда коррекция остатка проходит так удачно: из остатка двойной смежной ошибки получается остаток для одиночной ошибки, а он превращается в ноль. Для более сложных случаев возможно следующее решение:
Рис. 6.19
Таким образом, происходит исправление двух ошибок подряд, если ошибки смежные, и одной ошибки, если смежных нет.
42. Рекуррентный код. Кодирующее и декодирующее устройства. Пример.
Практическая ценность рассматриваемых кодов обусловлена широким распространением каналов передачи информации, в которых преобладают импульсные помехи, вызывающие искажение целого ряда следующих друг за другом символов.
Рекуррентные коды предназначены в основном для исправления пачек (пакетов) ошибок.
При этом предполагается наличие опреденного числа не искаженных символов, как до поступления первого искаженного символа пачки, так и после поступления последнего искаженного символа пачки.
Для рекуррентных кодов характерно, что операции кодирования и декодирования осуществляются над непрерывной последовательностью символов. Такой метод имеет определенные преимущества, так как предоставляет бóльшие возможности для использования вводимой избыточности.
Действительно, в случае применения блоковых кодов возможности обнаружения и исправления ошибок определяются только той избыточностью, которая введена в данную кодовую комбинацию. Поскольку ошибки встречаются относительно редко, то избыточность большинства кодовых комбинаций не используется. В то же время при появлении пачки ошибок введенной избыточности часто не хватает.
В рекуррентных кодах, так же как и в блоковых, проверочные символы получаются в результате проведения линейных операций над определенными информационными символами.
В процессе кодирования проверочные символы размещаются между информационными так, чтобы на каждые n непрерывно передаваемых выходных символов приходилось k информационных. Простой класс составляют (n; n – 1) – рекуррентные коды, у которых на k информационных символов приходится только один проверочный.
В рассмотренном классе рекуррентных кодов за каждым информационным символом следует проверочный символ (n = 2; k = 1). Коды этого класса способны исправить пачку ошибок длины не более b при условии, что две соседние пачки разделены между собой защитным промежутком (3b + 1), т.е. между последним символом данной пачки и первым символом следующей пачки должно быть не менее (3b + 1) безошибочных символов. Наибольшая длина пачки b кратна двум. Конкретно исследуется код, обладающий способностью исправлять пачки ошибок длиной не более 4. Характеристики некоторых подобных кодов приведены в таблице 7.1.
Таблица 7.1
Максимальная длина исправляемой пачки ошибок (b) | Число ячеек | Защитный промежуток (3b + 1) | |
в кодирующем устройстве (b) | в декодирующем устройстве (2.5b) | ||
2 | 2 | 5 | 7 |
4 | 4 | 10 | 13 |
6 | 6 | 15 | 19 |
8 | 8 | 20 | 25 |
10 | 10 | 25 | 31 |
12 | 12 | 30 | 37 |
Схемы кодирующего и декодирующего устройств приведены на рис. 7.3.
Рис. 7.3. Схема кодирующего и декодирующего устройств
Будем считать, что на вход поступает последовательность информационных символов (контрольная точка К1):
100100111001.
Синхронный коммутатор СК1 выдает на выход поочередно информационные символы и проверочные символы вырабатываемые сдвигающим регистром. Число ячеек памяти в кодирующем регистре равно b(4).
Процесс формирования проверочных символов показан в таблице 7.2.
Таблица 7.2
№ такта | Состояние ячеек регистра | Проверочные символы на выходе сумматора | ||||
1 | 2 | 3 | 4 | |||
| 0 | 0 | 0 | 0 |
| |
1 | 1 | 0 | 0 | 0 | 0 | |
2 | 0 | 1 | 0 | 0 | 0 | |
3 | 0 | 0 | 1 | 0 | 1 | |
4 | 1 | 0 | 0 | 1 | 0 | |
5 | 0 | 1 | 0 | 1 | 1 | |
6 | 0 | 0 | 1 | 0 | 1 | |
7 | 1 | 0 | 0 | 1 | 0 | |
8 | 1 | 1 | 0 | 0 | 1 | |
9 | 1 | 1 | 1 | 0 | 1 | |
10 | 0 | 1 | 1 | 1 | 1 | |
11 | 0 | 0 | 1 | 1 | 0 | |
12 | 1 | 0 | 0 | 1 | 1 | |
13 |
|
|
|
| 1 |
Следовательно, последовательность проверочных символов (контрольная точка К2):
0010110111011.
Общая последовательность символов на выходе кодирующего устройства (контрольная точка К4), в которой на первом месте информационные, затем соответствующие проверочные:
100001100101101111010011.
Изменение значений символов в передаваемой последовательности, отражающей влияние помехи, осуществляется с помощью сумматоров по модулю два.
Предположим, что в канале связи произошло искажение 7-го, 8-го и 9-го символов (см. контрольную точку К3).
Последовательность на выходе канала связи (см. контрольную точку К5) имеет вид:
1000010111101101111010011,
где искаженные символы подчеркнуты.
Последовательность информационных символов на входе декодирующего устройства (см. контрольную точку т.в):
100010111001.
Последовательность проверочных символов соответственно имеет вид (т.с):
0011110111011.
Декодирующее устройство состоит из двух частей. Первая часть вырабатывает опознаватель ошибки (синдром), а вторая анализирует синдром и производит само исправление (узел коррекции). Процесс формирования последовательности символов в точке а показан в таблице 7.3.
Таблица 7.3
№ такта | Состояние ячеек регистра | Символы в точке а | ||||
1' | 2' | 3' | 4' | |||
1 | 1 | 0 | 0 | 0 | 0 | |
2 | 0 | 1 | 0 | 0 | 0 | |
3 | 0 | 0 | 1 | 0 | 1 | |
4 | 0 | 0 | 0 | 1 | 0 | |
5 | 1 | 0 | 0 | 0 | 1 | |
6 | 0 | 1 | 0 | 0 | 0 | |
7 | 1 | 0 | 1 | 0 | 1 | |
8 | 1 | 1 | 0 | 1 | 0 | |
9 | 1 | 1 | 1 | 0 | 0 | |
10 | 0 | 1 | 1 | 1 | 1 | |
11 | 0 | 0 | 1 | 1 | 0 | |
12 | 1 | 0 | 0 | 1 | 1 | |
13 |
|
|
|
| 1 |
Сформированная в точке а последовательность сравнивается с последовательностью проверочных символов, поступающих из канала связи, в результате чего на выходе (см. контрольную точку К7) вырабатывается опознаватель ошибки – синдром.
Последовательность проверочных символов:
0011110111011.
Последовательность в точке а: