1. Определение кода и способа ... кодирования информации. Основные параметры кодов.

advertisement
1. Определение кода и способа корректирующего (помехоустойчивого)
кодирования информации. Основные параметры кодов.
Код есть форма представления информационного сообщения, не зависящая от его
физической сущности или код представляется (выражается) совокупностью кодовых
символов, между которыми искусственно введены корреляционные связи.
Помехоустойчивое кодирование представляет собой процесс преобразования
передаваемых информационных символов по определенному
алгоритму или по
определенным правилам, и в результате чего формируются последовательности кодовых
символов, отображающие передаваемые информационные сообщения.
Основными характеристиками помехоустойчивых кодов являются:
1. Длина кодовой последовательности (n=k+l) - равна количеству двоичных
символов (бит) в данной кодовой последовательности. Для сверточных кодов: n0 –
миниблок кодовых символов; nА=(m+1)*n0 - длина кодового ограничения, где m – max
степень порождающих полиномов; ne=1/2*J2+1/2*J+1 – эффективная длина кодового
ограничения;
2. Количество информационных символов (k) - это количество двоичных
символов несущих полезную информацию;
3. Количество проверочных символов (l) – кол-во двоичных символов, необходимых
для обеспечения заданной достоверности передачи информации;
4. Скорость передачи кода R=k/n. Для сверточных R=k0/n0;
5. Кодовое расстояние (d) - равно количеству позиций которыми отличаются две
сравниваемые кодовые последовательности. d0 – минимальное кодовое расстояние
(расстояние Хэмминга). Если общее количество кодовых комбинаций Кобщ=2n, то общее
число кодовых расстояний может быть более чем 2n/2. Для сверточных кодов d0=J+1, где J –
кол-во ортогональных проверок, необходимых для коррекции tисп ошибок;
d0−1(2)
𝐽
6. tисп≤
. Для сверточных: tисп≤ ;
2
2
7. tобн≤d0-1;
8. Относительная избыточность кода r=(n-k)/n*100%;
𝑛(𝑛𝑒)
9. Вероятность ошибочного декодирования Pош=∑𝑖=𝑡исп+1 С𝑖𝑛 ∗ 𝑃𝑘𝑖 ∗ 𝑞 𝑛(𝑛𝑒)−1 .
2. Общая классификация кодов, способов построения и алгоритмов
декодирования.
1. По основанию кода или по количеству единичных элементов, используемых для
формирования кодовой последовательности, коды делятся на двоичные (т.е. q=2,
GF(q)=GF(2)) и недвоичные, когда q>2; GF(2m,m≥2);
2. По способу формирования кодовых последовательностей – на равномерные и
неравномерные коды. В равномерных кодах все кодовые последовательности
помехоустойчивого кода имеют одинаковую длину, т.е. "n"=const. У неравномерных кодов
один и тот же помехоустойчивый код может иметь кодовые последовательности с разной
длиной, т.е. "n"≠const;
3. По структуре кодовых последовательностей – на разделимые и неразделимые. К
разделимым кодам относятся такие помехоустойчивые коды у которых есть четкое
деление на блоки из "k" информационных символов, l - проверочных символов и на
кодовые последовательности из "n" символов; такое деление справедливо для всех
кодовых последовательностей. К неразделимым кодам относятся такие коды у которых нет
четкого деления на информационные, проверочные блоки и на кодовые послед-и;
4. По способу передачи кодовых символов – на систематические и несистематические. В
систематических кодах в канал связи первоначально передаются информационные
символы, а затем проверочные. В несистематических кодах инф-ные и пров-ные символы
передаются по случайному закону;
5. По типу формирования проверочных символов – на алгебраические (формируются путем
суммирования инф-ных символов по модулю 2) и неалгебраические (формируются путем
суммирования инф-ных символов по модулю отличному от 2);
6 По количеству используемых кодов – на однокаскадные и многокаскадные.
Способы построения кодов делятся на 4 группы: 1) алгебраические (реализуются на
основе использования правил теории Высшей алгебры); 2) неалгебраические (-//- теории
вероятностей); 3) арифметические (-//- теории чисел и множеств); 4) геометрические (-//n-мерного пространства и проективной геометрии).
Алгоритмы декодирования:
- алгебраические (синдромное, мажоритарное, с использованием остатка от деления
R(x)=F(x)/P(x));
- вероятностные (Витерби, Фано и последовательное декодирование);
- арифметические (с использованием формирования контрольных сумм, в основном
используется в ЭВМ);
- проективно-геометрические (алгоритмы Си-Берли-Кампо, Рудольфа).
3. Линейные блоковые коды: определение и основные свойства.
Линейным блоковым кодом называется такой помехоустойчивый код, у которого l
(l≥1)проверочные символы формируются путем суммирования по модулю два
информационных символов (k≥1), расположенных на определенных позициях, а сумма
двух кодовых последовательностей и произведение кодовой последовательности на
элемент поля образуют также кодовые последовательности.
Линейный блочный код формирует:
1)Краз=2к разрешаемых кодовых комбинаций;
2)Кобщ=2n общее количество кодовых комбинаций (мощность линейного блока кода);
3)Кзапр=2n-k=2l запрещенных код-вых комбинаций, кол-во кот-рых определяет
корректирующую способность ЛБК кода.
Основные свойства:
- линейность кода: линейность кода определяется специально выбираемой структурой
кода. Линейность кода существенно упрощает процедуру кодирования и декодирования,
позволяя выразить каждую кодовую последовательность в виде “линейной” комбинации
небольшого числа выделенных кодовых последовательностей, так называемых базисных
векторов;
- сумма по модулю два двух кодовых последовательностей также является кодовой
последовательностью;
- линейный блоковый код всегда содержит кодовую последовательность, состоящую
целиком из нулей;
- если сложить по модулю два некоторую кодовую последовательность со всеми кодовыми
последовательностями, то снова получится множество всех кодовых последовательностей,
расположенных, быть может, в другом порядке;
- вес кодовой последовательности (wкп) всегда должен быть ≥d0;
- вес проверочной части кодовой последовательности (wкп.пр) должен быть всегда ≥ (d0-1);
- вес суммы по модулю два двух разрешенных кодовых последовательностей
(w∑кп) должен быть всегда ≥ (d0-1), но допускается ≥(d0-2);
- групповой двоичный линейный блоковый код полностью задается как
порождающей Gn,k(x), так и проверочной Hl,n(x) матрицами.
4. Порождающая матрица группового кода (G( x)) : определение, назначение,
классификация и основные свойства.
Порождающая матрица G(x) представляет собой сокращенную форму записи кода, а
именно количество строк G(x) определяет длину или кратность информационного блока (т.
е. k). Количество столбцов G(x) определяет длину кодовой комбинации n. Вес строки G(x)
определяет кодовое расстояние d и минимальное кодовое расстояние d0.
Порождающая матрица G(x) имеет основное назначение для формирования кодовых
последовательностей по принципу F(x)=Q(x)*G(x), где Q(x)=xk-1+xk-2+…+1
- блок
n-1 n-2
передаваемых информационных символов в виде полинома, а F(x)= x +x +…+1 полученная кодовая комбинация.
В общем виде порождающая матрица может быть записана так:
Представленную матрицу G(x) можно привести к каноническому виду:
Существует сокращенная запись канонической порождающей матрицы, а именно:
где Ik,k – единичная матрица рангом k*k, а R(n-k),k – подматрица
рангом (n-k)*k, составленная из (n-k) проверочных символов исходных кодовых
последовательностей, т.е. она выполняет функции проверочной подматрицы.
Основные свойства G(x):
- вес строки должен быть ≥ d0;
- сумма по модулю 2 двух строк должна быть равна d0-1;
- строки и столбцы матрицы можно менять местами;
- порождающая матрица не должна содержать строк, состоящих из одних «0» или «1»;
- порождающая матрица не должна иметь двух одинаковых строк или столбцов;
- GT(x)*H(x)=HT(x)*G(x)=0.
5. Проверочная матрица группового кода: определение, назначение,
классификация, основные свойства и ее взаимосвязь с порождающей матрицей.
Проверочная матрица H(x) представляет собой сокращенную форму записи кода, а
именно количество строк H(x) определяет длину проверочных символов l. Количество
столбцов H(x) определяет длину кодовой комбинации n.
Проверочная матрица H(x) позволяет выполнить систему проверок, а также
определяет алгоритм декодирования.
В общем виде проверочная матрица может быть записана так:
Проверочная матрица H(x) в основном используется при декодировании по правилу:
где S(x)- двоичный вектор размерности (длины) l двоичных
символов, который носит название синдрома: (синдром- это совокупность признаков, а
для ЛКБК синдром – это совокупность нулевых и ненулевых символов). Если S(x)=0, то это
означает отсутствие ошибок в принятой кодовой комбинации.
Основные свойства H(x):
- количество ненулевых символов в каждой строке должно быть не менее d0;
- количество ненулевых символов в каждом столбце должно быть ≥ tисп;
- проверочная матрица H(x) не должна иметь двух одинаковых строк или столбцов;
- GT(x)*H(x)=HT(x)*G(x)=0.
(6-7) 6. Порождающие полиномы групповых кодов ( P( x)) : определение,
назначение и взаимосвязь их с проверочными полиномами. 7 Проверочные полиномы
групповых кодов: определение, назначение и взаимосвязь их с порождающими
полиномами.
Порождающие и проверочные полиномы – примитивные полиномы, которые
обладают свойством не разложения на полиномы меньшей степени и делятся только на
самих себя или на единицу.
Порождающие полиномы в основном используются для формирования кодовых
последовательностей. Проверочные полиномы могут использоваться как для
формирования кодовых последовательностей так и для декодирования.
P(x)=xl+xl-1+…1 - порождающий полином;
h(x)=xl-1+xl-2+…1 - проверочный полином.
P(x)*h(x)=xn+1.
При использовании порождающих полиномов могут использоваться разделимые и
неразделимые кодовые комбинации.
Для неразделимой кодовой комбинации используется выражение:
F(x)=Q(x)*P(x), где Q(x) - блок передаваемых информационных символов в виде
полинома, F(x) - полученная кодовая комбинация, P(x) - порождающий полином.
Для разделимой кодовой комбинации используется выражение:
𝑄(𝑥)∗𝑥 𝑙
F(x)=
𝑃(𝑥)
+ 𝑄(𝑥) ∗ 𝑥 𝑙 , где Q(x) - блок передаваемых информационных символов в
виде полинома, F(x) - полученная кодовая комбинация, P(x) - порождающий полином,
𝑄(𝑥)∗𝑥 𝑙
𝑃(𝑥)
=R(x) - проверочные символы.
В качестве примеров можно самому придумать 2 полинома Q(x) и P(x) и
сформировать разделимую и неразделимую кодовую последовательности соответственно
согласно формулам.
8. Циклические коды: определение, классификация, основные свойства и способы
задания или построения.
Циклические коды являются подклассом в классе линейных блоковых кодов,
удовлетворяющих определенным требованиям. Были предложены Прейнджом. Свое
название данные коды получили по причине того, что основной операцией построения
кодовых последовательностей (Fi(x)) является цикл, а точнее циклическая перестановка
двоичных символов разрешенных кодовых последовательностей. На основе цикла
обеспечивается как формирование код-вых последовательностей так и декодирование.
Циклическим кодом называется такой групповой линейный код, у которого в
результате циклического сдвига кодовых символов в разрешенной кодовой комбинации на
1,2,…,k-1 разрядов формируются разрешенные кодовые комбинации. Циклический код
может задаваться с использованием порождающей и проверочной матриц, порождающего
и проверочного полиномов, а также корней порождающего полинома и остатков от
деления.
Основные свойства циклических кодов:
1. Вес (wк.п) разрешенной кодовой последовательности ≥ d0;
2. Вес проверочной части wпр.ч разрешенной кодовой последовательности ≥ d0-1;
3. Сдвиг кодовых символов разрешенной кодовой последовательности влево или
вправо на 1, 2,…, (k-1) символ вновь приводит к разрешенной кодовой
последовательности. Если же при циклическом сдвиге всегда будет получатся новая
кодовая последовательность, то такой код будет называться квазициклическим;
4. Разрешенная кодовая последовательность без ошибок Fр'(x) при делении на
полином P(x) дает нулевой остаток, т.е. Fр'(x)/P(x)=R(x)=0 и R(x) не равно 0 – при наличии
ошибок;
5. Сумма по модулю два символов 2, 3,…, (k-1) разрешенных кодовых
последовательностей вновь образует разрешенную кодовую последовательность;
6. Двучлен вида xn +1 должен делиться на порождающий полином P(x) без остатка
(имеется в виду обычная операция деления многочленов);
7. Результат деления двучлена xn+1 на образующий полином P(x) дает полином,
который носит название проверочного полинома и обозначается как h(x), т.е.
h(x)=(xn+1)/P(x);
8. Если все операции над полиномами (кодовыми последовательностями)
проводятся в двоичном поле Галуа (GF(2)), т.е. действия над коэффициентами полиномов
осуществляется по модулю два, а умножение полиномов производитсяпо модулю
образующего полинома P(x), то применение указанных операций не приводит к кодовым
последовательностям, длина которых больше длины заданного кода, т.е. “n”;
Классификация циклических кодов:
1. Коды Хэмминга, как правило используемые для коррекции случайных ошибок;
2. БЧХ-коды – дальнейшее развитие кодов Хэмминга. Используются для коррекции
случайных и пакетных ошибок;
3. Коды Файра. Используются для коррекции пакетных ошибок;
4. Коды Рида-Майлера. Исп-ся для коррекции ошибок (случайных и пакетных), а
также для формирования сложных сигналов;
5. Коды Рида-Соломона. Исп-ся для коррекции модульных ошибок.
9. Классификация алгоритмов декодирования циклических кодов. Поясните
сущность коэффициента энергетического выигрыша кодирования.
Циклические коды декодируются с помощью следующих алгоритмов:
1. алгебраических (декодирование по максимуму правдоподобия, мажоритарное
декодирование, синдромное декодирование);
2. вероятностных (декодирование по минимуму обобщенного расстояния);
3.
комбинированных(мажоритарно-синдромное,
синдромно-мажоритарное
декодирование и т.д. ).
10. БЧХ-коды: определение, способы построения, алгоритм декодирования,
достоинства и недостатки.
Коды Боузе-Чоудхури-Хоквингема (БЧХ-коды) являются дальнейшим развитием
линейных блоковых кодов Хэмминга, относятся к классу циклических кодов и
обеспечивают коррекцию как независимых, так и группирующихся (пакетных) ошибок.
Циклический двоичный код длины n=2ε–1 двоичных символов называется
примитивным БЧХ-кодом с конструктивным кодовым расстоянием d=2·t+1, если его
образующий полином равен P(x)=НОК[m1(x), m3(x), …, m2t-1(x)], где mi(x) – минимальный
примитивный полином степени ε=log2(n + 1). Максимальная степень P(x) и, следовательно,
число проверочных символов не более l<ε·tисп двоичных символов (tисп – кратность
исправляемых ошибок), а число информационных символов равно k=n–ε·tисп двоичных
символов.
БЧХ-коды могут задаваться с использованием порождающей и проверочной матриц,
порождающего (образующего) и проверочного полиномов, а также корнями
порождающего (образующего) полиномов.
При декодировании БЧХ-кодов сложность схем коррекций при t≥3 резко возрастает.
Поэтому коррекция многократных ошибок с помощью БЧХ-кодов на практике используется
достаточно редко.
11. РС-коды: определение, способы построения, основные параметры, алгоритмы
декодирования и области применения.
Коды Рида–Соломона.
РС – не двоичные, групповые, циклические коды, которые задаются порождающим
полиномом следующего вида
P(x)=(x-aj0)(x-aj1)… (x-aj+2t-1)
(x-aij) – двучлен определяющий максимальную длину кодовой последовательности
t – кратность исправляемых ошибок
На практике широкое применение для задания РС кода, получили проверочная
матрица
Н(x)= [ h0 h1 h2 … hf IВ 0]
IВ – единичная проверочная матрица
0 2 4
2f
[ h h h … h 0 IВ]
РС код дальнейшее развитие БЧХ кода
hi – подматрица рангом кратности, корректируемых ошибок(модульных)
tn (пакет ошибок)
t m (модуль ошибок)
Ранг проверочной подматрицы равен кратности корректируемого модуля
Основные параметры
n= t m *(2^ t m + 1) бит (длина кодовой комбинации)
к= t m *(2^ t m – 1) бит (информационный символ)
d0 = n-k+1
L=2* t m +1 Количество проверочных символов
Формирование кодовой комбинации
F(x)=Q(x)*G(x)
Q(x)=x^(k-1)+ x^(k-3)+…+1
S(x)=F’(x)*HT(x)
Область применения
Обеспечивает коррекцию пакетных ошибок,
Широкое применение в алгоритме (чето там – Месси)
На практике используются укороченные коды РС
Используются в цифровом наземном телевидении РС коды (204,188,32)
Данные коды являются подмножеством БЧХ-кодов и задаются с помощью
порождающего полинома:
g ( x)  ( x   i )( x   i 1 )...( x   i 2t 1 ), r  n  k  2t , d  n  k  1 , i – любое, t – кратность
корректируемого модуля ошибок.
Например, найдем g (x) для (15;11) PC-кода с t  2 над GF (16) . Пусть i  1 , тогда
g ( x )  ( x   )( x   2 )( x   3 )( x   4 )  x 4   13 x 3   6 x 2   3 x   0 .
Следовательно, r=n-k=4, k = 11 r  n  k  11 из GF (16) , что эквивалентно 44
двоичным символам.
Пусть i  4 , найдем g (x) для PC-кода (7;3) с t  2 над GF (8) . Тогда
g ( x)  ( x   4 )( x   5 )( x   6 )( x   0 )  x 4   6 x 3   6 x 2   3 x   .
Информационный многочлен – последовательность восьмеричных символов (что
эквивалентно девяти битам).
Предположим, что i( x)  ( 4 x 2  x   3 ) .
В этом случае кодовое слово неразделимого циклического кода имеет вид
c( x)  i ( x) g ( x)  ( 4 x 2  x   3 )( x 4   6 x 3   6 x 2   3 x   ) 
  4 x 6  x 5   6 x 4  0  x 3  0  x 2   5 x   4 ,
что представляет собой последовательность семи восьмеричных символов (73=21
бит). Кодирование и декодирование циклических PC-кодов осуществляется так же, как и
БЧХ-кодов, и реализуется на основе регистров сдвига без и с обратными связями.
Рассмотрим далее коррекцию пакетов ошибок. Если кодирование и декодирование
при перемежении линейных кодов сводятся к соответствующим операциям
над
исходными кодами, исправляющими случайные ошибки, то для циклических кодов это
делать необязательно. Известно, что код перемежения степени b циклического кода,
порождаемого многочленом g (x) , будет циклическим кодом с порождающим
многочленом g ( x b ) .
Алгоритм декодирования циклического кода, исправляющего одиночные пакеты
ошибок длины b , состоит в следующем.
1. Вычисляется синдром S (x) принятого сообщения A * ( x ) .
2. Если S ( x)  0 – считаем, что ошибок не произошло.
3. При i  0 , S ( 0) ( x)  S ( x) .
4. Определяется степень S (i ) многочлена S (i ) ( x) .
5. Если S i  b , то считаем, что многочлен ошибок Ei ( x)  S (i ) ( x) , и производится
операция коррекции A( x)  A *( x)  Ei ( x) .
6. Если S i  b , то вычисляем S (i 1) ( x)  xS (i ) ( x) mod g ( x) и переходим к п.4 с i  i  1.
Коды Рида–Соломона
Коды Рида–Соломона (PC-коды) получили широчайшее применение в различных
системах передачи и хранения информации, особенно в качестве подкодов каскадных
кодов для контроля зависимых ошибок. При коррекции однократного модуля ошибок
матрица Н состоит из двух частей (H=[Н1:Н2]Т), поэтому их в этом случае определяют как
двухизбыточные коды с r=2b и d=3 (кодовое расстояние в q-м поле). При r=3b и d=4 PCкоды (трехизбыточные коды) по аналогии с кодами Хэмминга с d=4, кроме коррекции
модуля ошибок, позволяют идентифицировать однократный модуль от двукратного
модуля ошибок.
Значение элементов поля GF (24)
Первое Результат
значений второго слагаемого
0
1
2
3
4
5
6
слагаем сложения
h h h h h для
h h h7 h8 h9 h10 h11 h12 h13 h14
ое
h4 h0 h14 h8 h12
h0
0
10
12
4
14
0
h1
h4 h
0 h h h
8
7
4
12
8
h
h2
h8 h
h5 h
0 h h
5
3
2

h
h3
h14 0
h9 h
h6 h
0 h
10
2
12
0
h
7 fhf
h4
h114 h
h02 h
h10
h
0
10
6
h
h
h
h
gjh
h5
h10
h21 h10 h11
h8 0
9
9
h
h
h
h
11
3
2 fjjg
12
h6
h13
h9 0
6 h11 h13 h5 h
h9 h14 h12 h4 fj3 13 10
h7
h h8 h5 h13 h3 h h 0
02 h10 h0 h13 h5 4 14 11
8
h
h h13 h7 h h7 h h h 0
h h h h
h11 h3 h13 h13
3
11
7

h9
h10
h11
h12
h13
h14
h7
h5
h12
h11
h6
h3
h3
h8
h6
h13
h12
h7
h11
h4
h9
h7
h14
h13
h1
h12
h5
h10
h8
h0
h14
h2
h13
h6
h11
h9
h6
h0
h3
h14
h7
h12
h5
h7
h1
h4
h0
h8
h0
h6
h8
h2
h5
h1
h12
h1
h7
h9
h3
h6
0
h13
h2
h8
h10
h4
0
h14
h3
h9
h11
0
h0 0
h4 h1 0
h10 h5 h2 0
Проверочные матрицы для этих кодов имеют вид
 Ib

H2   _
 Ib

 Ib

_
H 3   Ib

_
I
 b
h1
_
h2
h1
_
h2
_
h3
h2
_
h4
_
h6
h2
_
h4
...
_
...
_
...
...
_
...
hf
_
h2 f
hf
_
h2 f
_
h3 f
0

_ .
I b 
Ib
_
0
Ib
_
0
_
0
0
_
Ib
_
0
0
_
0
_
Ib
(6)


_
.

_


(7)
Число информационных позиций k=b(2b-1), f=2b-2.
Представленные проверочные матрицы Н РС-кодов могут быть преобразованы путем
нормализации. (Нормализация – это перемножение каждого элемента столбца на
инверсию его верхнего элемента). Благодаря проделанной операции можно получить
матрицу Н, все элементы первой строки которой состоят из единичных подматриц:
 Ib
H   _
 h0  I b
Ib
Ib
...
Ib
Ib
_
h1
_
h2
_
...
_
hf
_
0
0
_  .
I b 
Например, для длины модуля b=3 образуется (n;k)= (27;21) код, задаваемый
проверочной матрицей
 I3
H  
 I 3
I3
I3
I3
I3
I3
I3
I3
h1
h2
h3
h4
h5
h6
0
0
,

I 3 
где
0 0 0
0  0 0 0  ,
0 0 0 
1 0 0 
I 3  0 1 0  ,
0 0 1 
0 1 0
h       1 0 1  ,
1 0 0 
1
3
2
1
h 2   4 3 2  , h3   5 4 3  , h 4   6 5 4  , h5   0 6 5  , h6   1 0 6  ,
где i – остаток от деления хβ+b-i на примитивный полином g(x)=xз+x+l. Проверочная
матрица PC-кода, корректирующего t-кратные модули ошибок, имеет вид
H=[hi h2i h3i h4i …h2ti]Т.
12. Матричные коды: определение, способы построения (формирования), основные
параметры, достоинства и недостатки.
Образуют группу так называемых многомерных или спектральных помехоустойчивых
кодов
Многомерные помехоустойчивые коды – формируются с помощью специальных
таблиц и матриц, называемых многомерными таблицами и матрицами.
Матричные коды – многомерные коды, которые формируются с помощью
специальных матриц путем организации проверок по строкам столбцам и диагоналям на
четные и нечетные символы.
Способы построения
путем организации проверок по строкам столбцам и диагоналям на четные и нечетные
символы.
Параметры
Могут быть квадратные и прямоугольные матрицы
К – общее количество информационных символов = к1*к2
N=n1*n2 (количество кодовых символов двумерного матричного кода)
R=K/N скорость передачи
d0m = d01 * d02 – минимальное кодовое расстояние двумерного матричного кода
d01 и d02 - минимальное расстояние по строкам и столбцам
Одномерный матричный код – код с проверкой на четность.
Рассчитать параметры 2-мерногоматричного кода , если к1=к2=7 бит,
0 1 0 1 1 0 1
а7
а1 1
0 0 1 1 1 0 0 1
1
1
1
1
1
1
1
1
а7
а1 1
0 0 1 0 1 1 1 1
d0=1, d0>=t+1, d0=1+1=2
n1=n2=k1+1=8, K=k1*k2=49
N=n1*n2=64
R=K/N=0.64
r=(1-R)*100%=36%
d01=d02
tисп<=(d0m-2)/2=1
tобн<=d0m-1=4-1=3
Достоинства
Простота построения, минимальная сложность алгоритмов декодирования
Недостатки
Высокая избыточность, низкая корректирующая способность
Практически не используются
13. Итеративные коды: определение, способы построения, основные параметры,
достоинства и недостатки.
Многомерные коды, которые носят название произведения двух или более исходных
помехоустойчивых кодов с параметрами n1 и n2. В результате чего формируется
многомерный код с последовательностью N=n1*n2
Строками данного итеративного кода n1
Столбцами данного кода n2
Параметры
Рассчитываются так же как и для матричного кода
К – общее количество информационных символов = к1*к2
N=n1*n2 (количество кодовых символов двумерного матричного кода)
R=K/N скорость передачи
d0m = d01 * d02 – минимальное кодовое расстояние двумерного матричного кода
d01 и d02 - минимальное расстояние по строкам и столбцам
(n,k,d0)=(7,3,4)
К2
ОЗУ
Вход->
инф.
симв
K1
b4 b3 b2 b1 a3 a2 a1
b4 b3 b2 b1 a3 a2 a1
b4 b3 b2 b1 a3 a2 a1
b1
b2
b3
b4
Kn=k1*k2=3*3=9
Nn=n1*n2=7*7=49
R=9/49=0.23
r=(1-R)*100%=76%
d0m=d01*d02=4*4=16
tисп<=(16-2)/2=14 бит
tобн<=16-1=15 бит
Достоинства
Высокая корректирующая способность, возможность аппаратурной и программной
реализации.
Недостатки
Высокая избыточность, сложность организации цикловой синхронизации кодеков
Применение
Мобильные сети связи, системы записи информации, в спутниковой системе связи
Итеративные коды
Кодовые слова итеративных кодов (кодов произведения) записываются в виде таблиц
кодирования, причем строки кодируются одним каким-либо кодом C1, а столбцы – кодом
C2. Кодовое расстояние итеративного кода равно произведению кодовых расстояний
кодов, составляющих его: d=d1d2. Длина кода n=n1n2. Когда C1 и C2 – коды с общей
проверкой на четность с d=2, то таблица кодирования для k=16 имеет вид
a1
a2
a3
a4
a17
a5
a9
a13
a21
a6
a10
a14
a22
a7
a11
a15
a23
a8
a12
a16
a24
a18
a19
a20
Символы a1–a16 являются информационными, а a17 –a24 – проверочными, т.е. для
данного примера (n; k)=(24; 16). При (a1–a16)=(1 1 1 0 ¦ 1 0 0 1 ¦ 1 0 0 0 ¦ 0 0 1 0), (a17 –a24)=(1
0 1 1 ¦ 1 1 0 1); таблица кодирования выглядит следующим образом:
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
При записи данных в виде таблицы кодирования длины составляющих кодов
небольшие, что упрощает обработку кодов. Однако это сопряжено с увеличением
избыточности. Например, если необходимо исправлять в данных с k=121 четырехкратные
ошибки, то можно использовать укороченный БЧХ-код с d=9,
(n; k)=(153; 121),
образованный из кода (255; 223). Если же кодировать итеративным кодом, в качестве
подкодов C1 и C2 которого выбраны коды Хэмминга, параметры которых (15; 11), так как
d=33=9; k=1111=121. Отсюда следует, что длина итеративного кода n=1515=225, т. е.
параметры итеративного кода (225; 121). Видно, что число проверочных разрядов у
итеративного кода существенно больше, чем у БЧХ-кода. Любой таблице кодирования
можно сопоставить свою проверочную матрицу, которая строится по уравнениям
кодирования. Например, для вышерассмотренной таблицы кодирования эти уравнения и
матрица H имеют вид
a17=a1+a2+a3+a4, …, a24=a4+a8+a12+a16,
Данная матрица содержит в каждом столбце 2–3 единицы и поэтому получила
название низкоплотной (слабозаполненной матрицы). Среди таких кодовых матриц
наиболее известны коды, построенные Галлагером.
Итеративные коды и их модификации наиболее просто декодируются синдромным
или мажоритарным методом.
a1 a2 a3 a4
1 1 1 1

HC1



H     

1

HC 2 1
1


1

a5 a6 a7 a8
... a17 a18 a19 a20
a21 a22 a23 a24


| 1 1 1 1 | ...
1
|


|
| ...
1
|

|
| ...
1 |

|     |      |     .

| 1
| ...
| 1


|
1
| ...
|
1

|
1
| ...
|
1 
|
1 | ...
|
1 
|
| ... 1
|
14. Каскадные коды: определение, классификация, основные параметры, достоинства и
недостатки.
Формируются путем последовательного кодирования как информационных так и
кодовых символов, количество используемых кодов определяется как количество каскадов
При использование двух кодов – двухкаскадный код.
На практике используются 2-х каскадные коды
Параметры как в матричных и итеративных
К – общее количество информационных символов = к1*к2
N=n1*n2 (количество кодовых символов двумерного матричного кода)
R=K/N скорость передачи
d0m = d01 * d02 – минимальное кодовое расстояние двумерного матричного кода
d01 и d02 - минимальное расстояние по строкам и столбцам
При построении используются разные типы помехоустойчивых кодов, а именно
циклические и сверточные
РС
СК
n(t)
Внешний кодер
Внешний
декодер
Внутренний
кодер
модулятор
Внутренний
декодер
демодулятор
+
Также стрелки указывают вход и выход информационных символов
Достоинства: высокая корректирующая способность
Недостатки: увеличение избыточности
Использование: сети wi-fi, наземное, спутниковое, цифровое телевидение.
15. Турбокоды: определение, назначение, классификация, основные параметры
двухкомпазиционного сверточного турбокода с R  1/ 2 и d 0  3 , достоинства и недостатки.
Многомерные помехоустойчивые коды представляют собой модификацию принципа
построения итерактивных и каскадных кодов
Турбокоды – композиционные коды
Важнейшими операциями турбокодов явлеются
- перемежениена передающей стороне турбосимволов
- вторичное кодирование данных символов с передачей в канал связитолько
проверочных символов
Турбокоды могут иметь 2,3… ступеней кодирования, декодирования
Принцип построения турбокодов зависит kак от типов кода, так и от алгоритма
декодирования
Так например структурная схема кодека двухпозиционного турбокода с
использованием сверточного кода имеет следующее построение
Сверточный код с R=1/2, L=50%
ИИ
перемежитель
i-тый перемеж.
ФПСк1 р1
ФПСк2 р2
МХ
d0=4 dотк=d01*d02=16
k0=1 n0=k0+2=3
p1+p2=2
RTK= k0\n0=1\3
ZTK=66%
ko- колектор ошибки
DMX
ko1
МЭ
p1’
декодир.устр-во
1-ой степени
деперемеж-ль
выход
инф.символ
ko2
ДКУ
2-ой степ.
МЭ- мажоритар.элемент
p2’
Достоинства: высокая корректирующая способность, возможность построения
кодеков с использованием разных типов кода, применение жесткого и мягкого алгоритмов
декодирования, закрытие информации от несанкционированного доступа.
Недостатки: высокая избыточность, более высокая задержка информации при
декодировании
Применение: мобильные телефоны(не все стандарты), система записи,
воспроизведение информации, wi-fi сети
16. Поясните сущность алгоритмов жесткого и мягкого
помехоустойчивых кодов, достоинства и недостатки данных алгоритмов.
декодирования
перемежитель
Тракт
передачи
данных
обобщенная
структ.схема
перемежитель
Достоинства: обеспечивается миним.сложность реализации демодулятора и
декодера.
Недостатки: уменьшение корректирующ.способности или проигрыш в
уменьшении энергии Рс/Рм = 2 дБ
Жесткое принятие решение эквивалентно принятию решения на 2 уровня.
ЭВК = (Рс/Рм) Бк – (Рс/Рм)к
17. Поясните сущность мажоритарного алгоритма декодирования циклического кода
при формировании систем раздельных и связанных проверочных уравнений.
Относится к группе алгебраического кодирования
Мажорит.дек-ие м.б. реализовано с использованием как систем связанных
проверок, так систем раздельной проверки ( декод.символ входит во все
проверочные уравнения, а все остальные входят по одному разу).
Количество разрешенных кодов провер. уравнение носит название коэф-ов
связанности.
Общий принцип построения СРП, ССВП
(n; k; d0) = (7;3;4;), P(x) = x3+x2+x1
Надо построить соответствующую проверочную матрицу
a1
Hi (x) = 1
1
1
a2
1
0
0
a3
0
0
1
a4 a5 a6 a7
1 0 0 0
0 1 1 0
0 0 0 1
M = 2*tош +1
П1=а1’ =а1
П2=а2 + а4
СРП (система раздельной проверки)
П3=а5 + а 6
П4=а3 + а 7
Тисп <= d0-2\2 = 1 бит
Достоинства : миним.сложность при коррекции случайных ошибок,
миним.задержка инф-ции при декодировании
Недостатки: возможно размножение ошибок при использовании цепи
обратной связи, увеличение сложности реализации при ССВП
П1=а1 =а1’
П2=а3 + а4 + а5
ССВП
П3=а2 + а3 + а6
П4=а2 + а5 + а7
N=(n- 1)*(d0-1)
Сущность мажоритарного декодирования базируется на системе проверочных
равенств, вытекающих из основного уравнения кодирования. Поскольку код избыточен, то
система неравенств может быть разрешена относительно каждой из переменных не
единственным образом. Мажори-рование есть голосование по большинству правильных
проверочных уравнений.
Существует три способа построения систем проверочных уравнений при
мажоритарном декодировании:
– системы с разделенными проверками;
– системы с -связанными проверками;
– системы с квазиразделенными проверками.
В системах с разделенными проверками некоторый символ, относительно которого
разделяется система уравнений, входит во все уравнения. Любой другой символ входит не
более чем в одну проверку. Отсюда следует, что для коррекции t ошибок система должна
состоять из (2t + 1) уравнений и иметь на столько же входов мажоритарные элементы.
Пример 3. Пусть имеется код (8; 4), задаваемый следующей проверочной матрицей:
1
0
H 
0

1
1 0 0
1 1 0
0 1 1
0 0 1
1 0 0 0
0 1 0 0 
.
0 0 1 0

0 0 0 1
Декодирование сводится к умножению принятого вектора А*= (a1* a2*a3* a4* a5* a6* a7*
a8*) на матрицу HT. В результате приравнивания данного произведения нулю получим
систему уравнений:
a1* + a2* + a5* = 0,
(4)
*
*
*
a2 + a3 + a6 = 0,
(5)
*
*
*
a3 + a4 + a7 = 0,
(6)
*
*
*
a1 + a4 + a8 = 0.
(7)
Из этой системы можно записать систему проверочных равенств, где равенство ai = ai*
называется уравнением истинности:
для a1 из (7.4) и (7.7):
a1 = a2* + a5*,
a1 = a4* + a8*,
a1 = a1*,
для a4 из (6) и (7):
a4 = a3* + a7*,
a4 = a1* + a8*,
a4 = a4*.
Видно, что каждый из принятых символов ai входит в данные системы один раз, и,
следовательно, если он ошибочен, то ошибочным будет одно из трех уравнений системы;
два остальных – правильны. По большинству правильных проверок мажоритарный
элемент принимает правильное решение об оценке состояния разряда.
Для данного примера мажоритарный элемент реализует функцию
M  a1a2 a3va1a2 a3va1a2 ava1a2a3 .
Минимизировав эту логическую функцию каким-либо из известных методов,
получим M  a1a2va1a3va2 a3 , что легко реализуется на элементах И-ИЛИ.
С ростом числа корректируемых ошибок растет число уравнений в системе и,
следовательно, увеличивается сложность мажоритарного элемента. Например, для
пятивходового мажоритарного элемента требуется (без минимизации) уже 16 элементов И
для реализации функции:
M  a1a2 a3a5va1a2 a3a4 a5v...va1a2a3a4a5va1a2a3a4a5v...va1a2a3a4a5 .
Минимальную сложность мажоритарного элемента реализует схема счетчика и
арифметического сумматора.
Рассмотрим мажоритарное декодирование кодов с квазиразделенными проверками.
Система проверок называется квазиразделенной, если она разделима относительно
некоторой суммы символов.
Пусть, например, имеем код, задаваемый матрицей H:
a1 a2 a3 a4
1
0
H 
0

0
0
1
0
0
0
0
1
0
0
0
0
1
a5 a6 a7
1
1
1
0
1
1
0
1
1
0
1
1


 ,



Для суммы (a1+ a2) можно записать
a1 + a2= a1 + a2,
a1 + a2= a3 + a6,
a1 + a2 = a5 + a7.
Положим, a1 + a2 = C0.
Увеличим индексы при ai на единицу (это имеет место при мажоритарном
декодировании циклических кодов); в результате получим a2 + a3 = C1.
Тогда для a2 будем иметь следующую систему уравнений:
a2= a1 + C0,
a2= a3 + C1,
a2 = a2 .
Видно, что при мажоритарном декодировании с квазиразделенными проверками
истинное значение символов осуществляется двухэтапно (может использоваться и
большее число этапов): на первом этапе система разрешается относительно суммы
элементов, а на втором – относительно конкретного символа ai.
При мажоритарном декодировании с помощью -связанных проверок один символ,
относительно которого разрешается система уравнений, входит в каждое уравнение
системы. Любой другой символ входит не более чем в  уравнений. Для того чтобы можно
было бы корректировать t ошибок, необходимо (2t + 1) уравнений в системе проверок и
соответственно мажоритарный элемент с таким числом входов.
Пример 4. Пусть имеется проверочная матрица кода (7; 4)
a1 a2 a3 a4
a5 a6 a7
1 0 0
1 1 1 0
H  0 1 1 1
0 1 0  .
1 0 1 1
0 0 1 
Из матрицы следует, что
a1 + a2 + a3 + a5 = 0,
(8)
a2 + a3 + a4 + a6 = 0,
(9)
a1 + a3 + a4 + a7 = 0.
(10)
Разрешим данную систему относительно a1:
a1 = a1,
a1 = a2 + a3 + a5,
a1 = a3 + a4 + a7 .
Анализ данной системы проверок показывает, что символ a3 входит в два уравнения
системы. Следовательно, система разделенных проверок не реализуется. Необходимо
найти еще как минимум два уравнения. Для этого просуммируем уравнения (8) и (9), а
также (9) и (10). В результате получим
a1 = a4 + a5 + a6,
(11)
a1 = a2 + a6 + a7.
(12)
То есть система проверок, разрешенная относительно a1 и состоящая из пяти
уравнений, имеет =2, и, следовательно, с ее помощью можно исправить любую
одиночную ошибку. Аналогичным образом могут быть реализованы системы проверок и
для других информационных символов (a2, a3, a4).
18. По заданной порождающей матрице и коэффициенте расширения (укорочения)
G( x) L  2 циклического кода сформировать расширенную и укороченную G(x) .
Определить параметры расширенного и укороченного кодов.
1 0 0 0 1 1 0 1
0 1 0 0 1 1 1 1 
.
G (x)  
0 0 1 0 1 0 1 0 


0 0 0 1 1 0 1 1 
Параметры (n,k,d0)=(8,4,4)
Для построения укороченной матрицы необходимо исключить две строки которые
должны начинаться с ненулевых символов и на старших позициях этих
строк должно быть L-2 (допускается L-1)ненулевых двоичных символов, а
затем исключить L=2 левых столбцов
В результате получаем
1 0 0 0 1 1 0 1
0 1 0 0 1 1 1 1 

G (x)  
0 0 1 0 1 0 1 0 


0 0 0 1 1 0 1 1 
G2,6(x)= 1 0 1 0 1 0
011011
Параметры (n,k,d0)=(6,2,3)
Для построения расширенной матрицы необходимо
короче необходимо добавление слева столбца из нулей после этого, сверху строка из
единиц, если коэффициент расширения равен двум то потом эту процедуру походу нужно
повторить
19. По заданным значениям P(x) и Q(x) циклического кода сформировать разделимую и
неразделимую кодовые последовательности и определите параметры кода:
P( x)  x 5  x 4  x  1, Q( x)  x 4  x 2 .
Для формирования неразделимой кодовой последовательности необходимо перемножить
полиномы следующим образом
F(x)=P(x)*Q(x)
Q(x) представляем в двоичном виде Q(x)=(10100)
Перемножаем полиномы
F(x)= ( x 5  x 4  x  1 )*( x 4  x 2 )=x9+x8+x7+x6+x5+x4+x3+x2
Представляем полученное значение кодовой последовательности в двоичном виде
F(x)=11111 11100
Видим что в последовательности нет Q(x)=(10100), значит последовательность
неразделимая.
Формирование разделимой последовательности
Q(x) ∗ 𝑥 L
𝐹(𝑥) =
+ Q(x) ∗ 𝑥 L
P(x)
Где R(x)=
Q(x)∗𝑥 L
P(x)
- остаток от деления, где L=5 – максимальная степень порождающего
полинома P(x)
Q(x) ∗ 𝑥 L =( x 4  x 2 )*x5 = x9+x7
x9+x7
| x5  x4  x  1
x9+x8+x5+x4 |x4 +x3 +1
x8+x7+x5+x4
x8+x7+x4+x3
x5+x3
x5  x4  x  1
x4+x3+x+1
R(x)
F(x)=R(x)+Q(X)*xL= x9+x7+ x4+x3+x+1, представляем в двоичном виде (10100 11011),
Видим что последовательность имеет Q(x)=(10100), значит последовательность
разделимая.
Параметры
к=5
L=5
n=10
R=k/n=1/2
d0 =5 приблизительно равно L
tош=(5-1)/2=2
20. По данным значениям G(x) и Q(x) сформировать кодовую последовательность и
определить ее принадлежность к типу кода.
1
0
G (x)  
0

0
0 0 0 1 0 1 1
1 0 0 0 1 1 1
и Q( x)  x 3  x 2  x.
0 1 0 1 1 1 1

0 0 1 1 1 0 1
3
2
Из Q( x)  x  x  x. видим, что к=4, т.к. максимальная степень Q(x) равна (к-1)
Представляем Q(x) в виде 0 и 1, получаем следующее Q(x) =(1110)
Для формирования кодовой последовательности необходимо
F(x)=Q(x)*G(x)
1
0

F(x)= 0

0
0 0 0 1 0 1 1
1 0 0 0 1 1 1
0 1 0 1 1 1 1 *[1110]=[1110 0011]

0 0 1 1 1 0 1
n – определяется количеством столбцов порождающей матрицы
k – определяется количеством строк порождающей матрицы
Параметры (n,k,d0) =(8,4,4),
тип кода – групповой
21
Построить функциональную схему формирователя проверочных символов
(ФПС) кодера циклического кода с нумерацией ячеек памяти справа налево, если Р(x) =
x5 + x4 + x +1 и k=4.
ФПС кодера циклического кода выполняется ввиде последовательного регистра
сдвига со встроенными сумматорами по модулю 2 и с использование цепи обратной связи.
В соответствии с этим ФПС кодера выполняет одновременно операции умножения и
деления полиномов.
Длина регистра сдвига (количество ячеек памяти) определяется максимальной
степенью порождающего полинома. В нашем случае n=5. Количество сумматоров по
модулю 2 на 1 меньше количества ненулевых членов порождающего полинома. (4-1=3).
Для нормального функционирования схемы необходимо использовать ключи
управления.
В соответствии с этим ФПС кодера будет иметь следующий вид:
ФПС кодера работает следующим образом:
Для нужной работы нужно подать соответствующий сигнал управления для кода с
параметрами (n;k;d0) = (9;4;4) .
В первоначальный момент времени ключи k1 и k2 замкнуты, а ключ k3 разомкнут.
Информационные символы поступают в канал связи. Для открытия ключей нужно подать
высокий уровень. После четвертого такта ключи переключаются. В течении следующих 5
тактов считываются проверочные символы, после 9-ти тактов ключи опять меняют свои
положения.
22 Определение, параметры и классификация сверточных кодов
Сверточные коды (СК) имеют большой научный и практический интерес для
современных систем и сетей телекоммуникаций. Это определяется многими их
достоинствами, а именно: высокой скоростью обработки информации (десятки и сотни
Мбит/с), высокой корректирующей способностью как случайных, так пакетных ошибок,
реализацией эффективных кодеков и систем ветвевой синхронизации распределителей
информации, эффективного использования в каналах связи с фазовой неопределенностью
и др.
Сверточный код — это рекуррентный код с периодической полубесконечной
структурой символов кодовой последовательности.
В общем виде кодирование информации СК может быть представлено следующим
образом:
k0
T(i)(x) = ∑j=1
I (j) (x) ∙ g (j) (x) j=l,2...k0, i = j + 1
(6.1)
где I(x) - последовательность передаваемых информационных символов;
х - оператор задержки: (оператор задержки иногда обозначают через латинскую
букву D);
g(x)— порождающий или образующий полином (многочлен);
k0 - блок информационных символов, одновременно поступающих на вход
кодирующего устройства (k0≥l).
К основным характеристикам СК относятся:
- R=k0/n0=1/2; 2/3; 3/4 и т.д. или R= k0/n0=1/2; 1/3; 1/4 и т. д. - скорость передачи
кода, которая для СК записывается в виде дроби;
- J ≥ 2 - количество ортогональных проверочных уравнений;
- d0=J+1 - минимальное кодовое расстояние;
- dсв - свободное кодовое расстояние;
- tисп ≤ J/2 - кратность или количество исправляемых ошибок;
- tобн ≤ d0-l=J - кратность обнаруживаемых ошибок;
- nА
=(m+1)*n0длина
кодового
ограничения
или
длина
кодовой
последовательности, соответствующая кодированию информационных блоков из k0
символов в течение (m+1) такта;
- kA=R*nA - количество информационных символов, приходящих на nA кодовых
символов.
Сверточные коды, как и блоковые линейные коды, бывают:
- двоичные и недвоичные;
- алгебраические и неалгебраические;
- линейные и нелинейные;
- систематические и несистематические;
- ортогональные и неортогональные и т.д.
Алгоритм формирования кодовых символов СК таков, что любому входному
информационному блоку из k0 двоичных символов и "m" (m- максимальная степень
порождающего полинома g(x)) предшествующих информационных символов, хранящихся
в регистре сдвига (RG) кодера, соответствует выходной кодовый блок из n0 двоичных
символов. В связи с тем, что в процессе формирования n0 кодовых символов участвуют "m"
предшествующих информационных символов (введенных m тактами ранее), то такой
алгоритм кодирования называют кодированием с памятью.
У несистематических СК в кодовых блоках из n0 двоичных символов нет в "явном
виде" (невозможно выделить) информационных символов или блоков из k0 двоичных
символов. Кодирование входной информации осуществляется с памятью и процесс
кодирования может быть бесконечно продолжительным.
В зависимости от способа формирования проверочных уравнений СК бывают
ортогональными, самоортогональными и ортогонализируемыми.
Ортогональными СК (ОСК) называют такие коды, у которых система из J (J ≤ 2)
проверочных уравнений ортогональна относительно декодируемых k0 информационных
символов и неортогональна относительно информационных символов, входящих в данные
проверочные уравнения.
Самоортогональные СК (ССК) - коды, у которых декодируемый информационный
символ входит одновременно во все проверочные уравнения, а все остальные символы,
участвующие в декодировании в данный момент времени, входят не более, чем в одно
проверочное уравнение, т.е. СК формирует, так называемую, систему разделенных
проверок.
Ортогонализируемыми СК называются такие коды, у которых при декодировании
информационного или k0 символов требуется выполнить дополнительные линейные
преобразования над проверочными символами для получения дополнительных, так
называемых, составных проверок.
23 Перечислите и поясните физическую сущность достоинств и недостатков
сверточных кодов с алгоритмом порогового декодирования.
В высокоскоростных (В ≥ 17,184 Мбит/с) цифровых системах связи широкое
применение получили сверточные коды с алгоритмом порогового декодирования (ПД). ПД
сверточных кодов позволяет значительно упростить схемные реализации кодеков при
коррекции как независимых, так и пакетов ошибок. Наибольшей простотой реализации
отличаются самоортогональные сверточные коды (ССК).
В общем случае ПД ССК имеют следующие преимущества:
- простоту реализации;
определяется тем, что пороговый алгоритм декодирования является разновидностью
мажоритарного алгоритма.
Принципиальное отличие между пороговым и мажоритарным алгоритмом
декодирования состоит в том, что при использовании мажоритарного алгоритма
декодирования используется мажоритарный элемент, на выходе которого при пороге
принятия решения П ≥ µ/2 + 1 (для четного значения) или П ≥ (µ-1)/2 +1 (для нечетного
значения) формируется информационный символ.
При использовании порогового алгоритма декодирования используется пороговый
элемент , количество входов которого = числу формируемых ортогональных проверок J,
при этом порог принятия решения П1 ≥ J-1при J=3; при J=2 П=J=2; при J ≥ 4 П ≥ J/2 +1.
При использовании порогового алгоритма декодирования на выходе порогового
элемента формируется сигнал коррекции, который поступает на соответствующий вход
корректора ошибок.
- большое количество кодов;
- минимальная задержка информации при декодировании.
Объясняется тем, что используется одна алгебраическая операция – умножение.
- способность работать в каналах связи, как с независимыми, так и с пакетами
ошибок;
- способность работы на очень высоких скоростях передачи информации;
- сверточные коды могут одновременно обеспечивать коррекцию k0≥2, если R=1\2,
то k0=1.
- сверточные
коды с пороговым алгоритмом декодирования обеспечивает
возможность организации эффективных устройств ветвевой (цикловой) синхронизации без
введения для этих целей дополнительной избыточной информации.
- Возможность организации непрерывного контроля качества канала связи
Обеспечивается тем, что при использовании сверточных кодов дописывается
формирующийся поток проверочных символов.
Недостатками ПД ССК являются:
сравнительно низкая корректирующая способность по сравнению с алгоритмом
декодирования по максимуму правдоподобия (алгоритм Витерби)
Установлено, что в среднем энергетический выигрыш кодирования (ЭВК) порогового
алгоритма приблизительно = (3,5 ÷ 4)дБ при Рк =10-3 – 10-4, у алгоритма Витерби этот
параметр составляет ЭВК=7дБ
- уменьшение количества числа кодов с требуемой корректирующей способности
при увеличении скорости кода;
- сложность реализации кодека с увеличением скорости кода;
- уменьшение исправляющей способности кодов с увеличением скорости кода;
- размножение ошибок на выходе декодера при возникновении в канале связи
ошибок, превышающих корректирующую способность выбранного кода.
24 Поясните сущность порогового алгоритма декодирования сверточных кодов.
Определите значение порога и кратность исправляемых ошибок, если j=7.
Пороговый элемент выполняется в виде комбинационного автомата. Это означает,
что, если количество ненулевых символов превышает (либо не превышает) значение
порога, то на выходе формируется 1 (либо 0).
Определите значение порога и кратность исправляемых ошибок, если j=7.
П ≥ J/2 +1 = 3,5 +1= → 4+1=5
→ 3+1=4
tисп ≤ J/2 =7/2=3- кратность или количество исправляемых ошибок;
В зависимости от порога существенно меняется сложность реализации порогового
элемента.
Пороговый элемент может быть реализован 2-мя способами:
- с помощью комбинационного автомата;
- с помощью двоичного счетчика с дешифратором ненулевых символов.
J=4
N
1
2
3
4
5
П ≥ J/2 +1=4/2 +1=3
X1
X2
1
1
1
1
1
1
1
0
0
1
Число проверок J<10
X3
1
1
0
1
1
X4
1
0
1
1
1
Если J>10, то ставится двоичный счетчик и дешифратор:
Y
1
1
1
1
1
25 По разностным треугольникам (1,5,6) и (2,4,7) определите параметры
сверточного кода с алгоритмом порогового декодирования.
Задание количества разностных множеств определяет k0. В нашем случае 2
разностных множества, следовательно k0=2.
n0= k0 +1=2+1=3
скорость передачи кода R=k0/n0=2/3
q1=1+D+D5+D6
q2=1+D2+D4+D7
число ортогональных проверок (количество ненулевых символов порождающего
полинома) – J=4
d0=J+1=4+1=5
tисп ≤ J/2=4/2=2 - кратность или количество исправляемых ошибок;
tобн ≤ d0-l=J=4 - кратность обнаруживаемых ошибок;
nА =(m+1)*n0=(7+1)*3=24- длина кодового ограничения или длина кодовой
последовательности, соответствующая кодированию информационных блоков из k0
символов в течение (m+1) такта
nе =1/2*J2 + 1/2* J +1=8+2+1=11 – количество кодовых символов, которые участвуют в
принятии решения о достоверности k0=2 принятых информационных символов.
r=(1-R)*100%=(1-0,66)*100%=33%
26 Построить функциональную схему формирователя проверочных символов
кодера сверточного кода, если q1=1+D4+D6+D7
q2=1+D2+D5+D9. Определите длину кодового ограничения кода (na).
Задание количества разностных множеств определяет k0 (блок информационных
символов, одновременно поступающих на вход кодирующего устройства). В нашем случае
2 разностных множества, следовательно k0=2.
Найдем n0= k0 +1=2+1=3. Таким образом скорость передачи кода R=k0/n0=2/3.
nА =(m+1)*n0- длина кодового ограничения или длина кодовой последовательности,
соответствующая кодированию информационных блоков из k0 символов в течение (m+1)
такта, где m- муксимальная степень полинома.
nА =(m+1)*n0=(9+1)*3=30
Так как R=2/3, то функциональную схему формирователя проверочных символов
кодера сверточного кода будем выполнять по схеме Месси (со встроенным сумматором по
модулю 2).
СХЕМА
27
Постройте
функциональную
схему
анализатора
синдромной
4
6
7
последовательности сверточного кода, если если q1=1+D +D +D
q2=1+D2+D5+D9. Определите значение порога декодера сверточного кода.
28 Поясните физическую сущность синдромной последовательности S(D)
сверточного кода. Для сверточного кода с параметрами R,=1/2, q(D)=1+D3+D6+D7
запишиите структуру синдромной последовательности при наличии в принятой
последовательности двух типов ошибок (одиночной и двукратной).
29 Определите значение порога и постройте функциональную схему порогового
элемента сверточного кода, если число ортогональных проверок кода J=4.
30 По заданным порождающим полиномам сверточного кода q1(D)=1+D3+D5 и
q2(D)=1+D2+D4 постройте проверочные треугольники и определите скорость передачи
кода и число ортогональных проверок кода.
Задание количества разностных множеств определяет k0 (блок информационных
символов, одновременно поступающих на вход кодирующего устройства). В нашем случае
2 разностных множества, следовательно k0=2.
Найдем n0= k0 +1=2+1=3. Таким образом скорость передачи кода R=k0/n0=2/3.
Число ортогональных проверок (число ненулевых символов порождающего
полинома) J=3.
Проверочный треугольник можно построить с помощью разностного.
Разностный треугольник представляет собой совокупность целых, действительных и
неповторяющихся чисел, записанных в форме треугольника. Для систематического СК с R =
k0/n0 количество разностных треугольников равно числу k0. Для всех разностных
треугольников общим числом является "0", который не указывается в совокупности чисел,
однако учитывается при выборе степеней ненулевых членов порождающих полиномов.
Очевидно, что число "0" определяет нулевую степень первого ненулевого члена
порождающих полиномов. Степени ненулевых членов порождающих полиномов по
заданным или построенным разностным треугольникам можно найти путем выбора чисел:
левого крайнего столбца разностного треугольника, считывая их сверху вниз и дополняя
числом "0" или, верхней строки разностного треугольника в следующей
последовательности: первое число - показатель степени второго ненулевого члена
порождающего полинома, сумма первого и второго числа первой строки разностного
треугольника определяют показатель степени третьего ненулевого члена порождающего
полинома и т.д.
Таким образом разностные треугольники будут выглядеть следующим образом:
q1(D)=1+D3+D5
q2(D)=1+D2+D4
q1(D)=D0+ D3 +D5
q2(D)= D0+D2+D4
3
2
2
2
Download