Лекции / Рекуррентные коды
.docРекуррентные коды.
Рекуррентные ( непрерывные ) цепные коды.
Кодирование каждого ai осуществляется индивидуально.
Рекуррентные коды предназначены в основном для исправления пакетов ошибок.
Операции кодирования и декодирования осуществляются над непрерывной последовательностью символов.
…aj …ai …a5 a4 a3 a2 a1
1. При действии в к.с. ( канал связи ) пачек ошибок данный метод имеет существенные преимущества перед блочными кодами, т. к. предоставляет большие возможности для наиболее полного использования введенной избыточности.
Пояснение: Для блочных кодов возможности обнаружения и исправления определяются избыточностью, которая введена в данную кодовую комбинацию. Поскольку ошибки встречаются относительно редко, то избыточность большинства кодовых комбинаций не используется. В то же время при появлении пачки ошибок введенной избыточности не хватает.
При применении рекуррентных кодов достигается усреднение влияния помехи на большую последовательность передаваемых информационных символов.
-
В рекуррентных кодах, так же как и в блоковых, проверочные символы получаются в результате проведения линейных операций ( чаще всего суммирование по mod2 ) над определенными информационными символами.
В процессе кодирования проверочные символы размещаются между информационными так, чтобы на каждые k непрерывно передаваемых информационных символов приходилось r проверочных.
-
Структуру рекуррентного кода, размещение проверочных и информационных символов в общий кодовой последовательности рассмотрим на примере цепных кодов.
Цепные коды – простейшие рекуррентные коды, обладающие коэффициентом избыточности : r/n=0.5. Т. е. коды, имеющие одинаковое число информационных и проверочных символов
-
Корректирующие способности кода определяются параметром, который называется шагом сложения: t.
Шаг сложения – расстояние между двумя информационными элементами, суммируемыми по mod 2 для получения проверочных элементов bj.
Рассмотрим процедуры кодирования и декодирования и через основной параметр t определим структуру и основные параметры цепного кода.
Структурная схема кодирующего устройства
…ai+3 ai+2 ai+1 ai… …ai+2 bi+2 ai+1bi+1 ai bi…
ai+2t …. ai+t …. ai
-
Каждый информационный элемент ai участвует в формировании 2х проверочных элементов bi:
bi-t = ai ai+t
bi-2t = ai-t ai
Вместе с тем, каждый проверочный элемент формируется двумя информационными ai+2t , ai+t. Т.о.
количество информационных {ai} и проверочных {bi}элементов в кодовой последовательности, поступающей в к. с. – всегда одинаково.
-
Проверка на наличие ошибки (и корректировке в случае наличия) осуществляется для каждого ai – индивидуально на приемной стороне в декодирующем устройстве.
Структурная схема декодирующего устройства
Примечание: ai, bi – до поступления в к.с.
ai’, bi’ – после к.с., т.е.
с возможными ошибками
Основной принцип проверки – очень прост: формирование bi-“нов” и сравнение с выделенными символами: bi’.
Наличие не сравнения является признаком ошибки.
-
Для цепных кодов ( k=r=1 ) проверка на наличие ошибок осуществляется для каждого ai индивидуально.
Данная проверка проводится в соответствии с формулами:
Проверка элемента ai
L1: сравнение bi-t, нов с bi-t’ => L1= bi-t’ (ai’ + ai+t’) (*)
L2: сравнение bi-2t, нов c bi-2t’ => L2 = bi-2t’ (ai-t’ + ai’) (**)
4. Анализируя полученное выражение, определим алгоритм коррекции и структуру цепного кода.
а.) В корректировке ai участвуют ai+t’, ai-t’, bi-t’, bi-2t’, которые в кодовой пследовательности расположены следующем образом :
…..ai+t bi+t ….. ai bi …..ai2tbi2t …..ai-2tbi-2t …..
При этом возможны следующие варианты:
а.) ai’ – ошибочен. Тогда это однозначно может быть обнаружено в том случае, если все остальные элементы, входящие в формулу (**) – принять без ошибок.
Тогда: 1.) Признаком того, что ai’ – ошибочен, является: L1=1, L2=1 => F=L1L2=1
2.) Пакет ошибок не должен «накрывать» вместе с ai – ai+t, ai-t, bi-t, bi-2t, а это налагает ограничения на возможную длину пакета ошибок: l 2t.
б.) F=0. Т.е. L1=0 или L2=0 или L1=L2=0.
При этом ai принят правильно, и он проходит без всякой коррекции.
в.) Возможен случай, когда в кодовой последовательности (в выделенном нами выше фрагменте) ошибочными оказались крайние : ai+t и bi-2t (а остальные правильные) – случай начала одной пачки и конца другой. Исходя из формулы (**), имеем F=1 и корректируем ai (по алгоритму п. ai-ого), что является ошибочным. Чтобы не происходило ложного исправления символов – требование к интервалу между пачками ошибок:
Расстояние между последним символом предыдущей пачки ошибок и первым символом следующей пачки ошибок L должно удовлетворять соотношению :
L 3*2t+1 ( 3*2t – длина воспроизводимого фрагмента,
внутри которого осуществляется коррекция ai)
Структура цепного кода.
В качестве конкретного примера построим функциональные схемы кодирующего и декодирующего устройств цепного кода, исправляющего 4-х разрядные пакеты ошибок:
l=4; t=2; L 13
Функциональная схема кодирующего устройства.
Функциональная схема декодирующего устройства.
Исправление ошибок осуществляется в соответствии с выражением (**).