- •Методические указания и задание на курсовую работу по дисциплине «системы передачи данных»
- •Задание на курсовую работу
- •Исходные данные
- •Синтез кодовой комбинации циклического кода
- •7.1 Составление информационного блока
- •7.2 Выбор образующего полинома циклического кода
- •7.3 Синтез кодовой комбинации циклического кода
- •7.4 Проверка правильности получения разрешенной кк
- •5 Кодирование и декодирование сверточных кодов
- •5.1 Построение схемы кодера и решетчатой диаграммы
- •5.2 Расчет параметров каскадного кода
- •5.2 Кодирование последовательности сверточным кодом
- •5.4 Декодирование последовательности по алгоритму Витерби
- •6 Построение кадров по процедуре hdlc
- •6.1 Типы кадров согласно процедуре hdlc
- •6.2 Формироввание I-кадра
- •6.3 Вставка битов
- •7 Расчет основных параметров системы передачи данных с решающей обратной связью
- •7.1 Структурная схема системы пд с рос
- •7.2 Расчет основных параметров системы с рос и построение временных диаграмм
- •8 Построение служебных кадров, необходимых для передачи данных
- •8.1 Режимы работы канала пд
- •8.2 Процесс передачи данных
- •8.3 Формат кадров
7.4 Проверка правильности получения разрешенной кк
Проверку правильности кодовой комбинации циклического кода проведем в двоичной форме. Для этого необходимо последовательность F(x) в двоичной форме сложить по модулю два с образующим полиномом Р(х), также взятым в двоичной форме (Р(х) 10011001). В случае правильности построения, получим нуль. Проверим это на приведенном выше примере.
|
1100000110111000101111110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
0101100010111000101111110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
001010000111000101111110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
0011100011000101111110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
01111010000101111110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
0110110100101111110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
010000110101111110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
00011111101111110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
01100100111110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
0101000011110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
001110001110110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
0111101010110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
011011000110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
01000001110110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
0001101010110 |
|||||||||||||
10011001 |
|
|||||||||||||
|
010011001 |
|||||||||||||
10011001 |
|
|||||||||||||
|
0 |
Так как остаток от деления получился равным нулю, то формирование разрешенной кодовой комбинации циклического кода было верным.
5 Кодирование и декодирование сверточных кодов
5.1 Построение схемы кодера и решетчатой диаграммы
Теоретические вопросы выбора оптимальных параметров и синтеза кодовых комбинаций циклического кода рассмотрены в [1,2,5].
Кодер двоичного сверточного кода (СК) содержит регистр сдвигов на К разрядов и сумматоры по модулю 2 для образования кодовых символов. Входы сумматоров определены разрядами регистра. Связи i-го сумматора с ячейками j-го регистра описывают порождающим многочленом (для кодов со скоростью R = 1/n)
,
причем = 1, если связь i-го сумматора с s-й ячейкой существует, и = 0, если такой связи нет.
Таким образом, кодер сверточного кода однозначно описывается набором коэффициентов ={ … }.
Сверточные коды обычно задаются полиномами в восьмеричной системе счисления, и для построения схемы кодера необходимо перевести полиномы в двоичную (полиномиальную) форму.
Рассмотрим простейший несистематический код (7, 5). Для получения образующих полиномов переведем цифры в двоичную и полиномиальную формы:
G(1) = 78 = 1112 D2 + D + 1,
G(2) = 58 = 1012 D2 + 1.
Схема кодера, соответствующая полиномам G(1) и G(2), приведена на рис. 2. На рисунке 3 показана описывающая его диаграмма состояний.
Сверточный кодер как конечный автомат с памятью описывают диаграммой состояний. Внутренними состояниями кодера считают символы, содержащиеся в (К – 1) разрядах регистра (начиная от входа кодера). Кодер на рис. 2 может находиться в одном из четырех состояний SxS2 = (00, 10, 11, 01), так как К = 3. Диаграмма представляет собой направленный граф, который содержит все состояния и описывает возможные переходы из одного состояния в другое, а также символы входов/выходов кодера, сопровождающие эти переходы. В кружках указаны состояния кодера, стрелками – возможные переходы. Около стрелок показаны символы на входе/выходе кодера u/v(1)v(2), соответствующие каждому переходу.
Развертка диаграммы состояний во времени образует решетчатую диаграмму (рис. 4). На решетке состояния показаны узлами, а переходы – соединяющими их линиями (ветвями). После каждого перехода из одного состояния в другое происходит смещение на один шаг вправо. Решетчатая диаграмма представляет все разрешенные пути, по которым может продвигаться кодер при кодировании.
Рисунок 4
Свободное кодовое расстояние df СК определяется числом символов, которыми отличаются все возможные кодовые последовательности, при условии, что им соответствуют две последовательности, имеющие отличие в одном символе. Поскольку СК являются линейными, то в качестве одной последовательности удобно взять нулевую, а в качестве второй – последовательность с одной единицей на первом месте. В этом случае определение df упрощается, так как можно воспользоваться выражением
df = Wt(hi) (8)
где Wt(hi)– вес отклика (импульсной реакции) кодера на единичное воздействие вида
.
Рассчитаем свободное кодовое расстояние, исходя из решетчатой диаграммы кода, выбирая путь наименьшего веса, начинающийся и заканчивающийся в состоянии 00 (и отличный от нуля). На рис. 4 этот путь обозначен пунктирной стрелкой. Вес этого пути и будет свободным расстоянием кода df = Wt(11 10 11) = 5.