- •Методические указания (проект) к измененной курсовой работе по тэс-2.
- •«Ацп (Кодер 1)»
- •Раздел «Кодер-2» (вместо прежнего «Кодер»)
- •Кодовая таблица кода (10,5)
- •Кодовая таблица кода (15,5)
- •Алгоритмы кодирования кодов (10,5) и (15,5)
- •Процесс кодирования в кодере-2.
- •Процесс декодирования в декодере-2.
- •Доп. Замечания по демодулятору.
- •Литература
- •Цап (декодер-1).
Процесс декодирования в декодере-2.
Происходит в промежутке между 10-м и 11-м импульсами сдвига, когда распределение символов по ячейкам регистра будет соответствовать показанному на Рис. 2. Поэтому 1-й этап декодирования – ввод всей кодовой комбинации b1’÷b5’ и с1’÷с5'в регистр декодера. Здесь штрихи означают, что в символах могут быть ошибки. 2-й этап – вычисление новых проверочных символов по тем же формулам
3-й этап – вычисление контрольного числа – синдрома Х пятиразрядного двоичного числа для кода (10,5) или десятиразрядного для кода (15,5).
Если в демодуляторе не было ошибок, вызванных шумом в канале, то сi’,сi" не будут отличаться и все xi =0.
Следовательно, нулевой синдром является индикатором отсутствия ошибок в кодовой комбинации.
Таблицы синдромов для обоих кодов представлены в таблицах 3 и 4.
Число ненулевых синдромов должно соответствовать числу вариантов ошибочных комбинаций, подлежащих исправлению в декодере-2. Так, для кода (10,5) число вариантов исправляемых ошибок будет 25-1=31; 32-й вариант соответствует нулевому синдрому (когда нет ошибок). Для кода (15,5) возможно исправление 3-х ошибок в пятиэлементной комбинации, число вариантов ошибок, подлежащих исправлению, будет 210=1024. В это число входят ошибки и в информационной и в проверочной части.
Ошибки только в проверочной части кода исправлять бессмысленно, т.к. после исправления ошибок все проверочные символы должны быть обнулены. Практический интерес представляет ситуация, когда исправлению подлежат одиночные, двойные и тройные ошибки в информационной части кода (15,5). Таких ситуации 25, из них одиночных ошибок – 5, двойных – 10 и тройных – 10.
Для кода (10,5), который позволяет исправлять только одну ошибку в информационной части кода, таких ситуаций всего 5. Оставшиеся неиспользованные 31-5=26 синдромов могут быть использованы для частного исправления двойных и тройных ошибок (только в информационной части кода).
Для исправления однократных, двукратных и трехкратных ошибок в коде (15,5) требуется 170 синдромов (любые три ошибки могут быть в любой части кода).
4-й этап декодирования – вычисление векторов ошибки – нахождение координат ошибочно принятых символов в кодовой комбинации.
Векторы ошибки могут быть найдены путем дешифровки синдромов:
Рис. 2 Дешифровка синдромов
Вектор ошибки – это двоичное 5- или 10- разрядное число, в котором единицы стоят на позициях, соответствующих номеру ошибочно принятого символа. Например, синдром 11001 соответствует вектору ошибки 10000, т.е. неверно принят первый символ. Для исправления ошибки этот символ должен быть инвертирован. Эта операция происходит при очередном импульсе сдвига в регистре, когда перезапись из предыдущей ячейки регистра в последующую происходит через логический элемент «исключающее «или», связывающий соседние ячейки регистра, например Т4 и Т3 (Рис. 3):
Рис.3 Принцип исправления ошибки
Здесь
элемент
«искл. «или»
(сумма по модулю 2) выполняет функцию
перемычки между ячейками, если на нижний
вход е4
подан 0 (т.е. е4=0),
если же е4=1,
то элемент
выполняет функцию инвертора (сигнал
b4’
попадает на вход ячейки Т3 в инвертированном
виде) и после очередного импульса
синхронизации (импульса сдвига) символ
b4’
запишется в ячейку Т3 в инвертированном
виде, то есть ошибка в этом символе будет
исправлена. Таким же образом могут быть
исправлены до трех ошибок для кода
(15,5).
Таким образом, исправление ошибок производится после 16-го импульса сдвига для кода (15,5) или 11-го для кода (10,5). Сразу же после этих импульсов сдвига ячейки, в которых хранились сигналы векторов ошибки, должны быть обнулены, иначе будут инвертированы последующие (правильно принятые) символы.
Таблица 3
Таблица синдрома для кода (10,5)
-
№
Сидром х1÷х5
Ошибка в символе
Вектор ошибки е1 е2 е3 е4 е5
0
00000
Нет
00000
1
11001
1
10000
2
10110
2
01000
3
01011
3
00100
4
11111
4
00010
5
10101
5
00001
Таблица 4
Таблица синдрома для кода (15,5)
-
№
Синдром х1÷х10
Искаженные символы
Вектор ошибки е1 е2 е3 е4 е5
1
0000000000
Нет
00000
2
1111010110
2
01000
3
0111101011
3
00100
4
1001101110
4
00010
5
0100110111
5
00001
6
0101001101
1 и 2
11000
7
1101110000
1 и 3
10100
8
1010011011
1
10000
9
1110101100
1 и 5
10001
10
0011110101
1 и 4
10010
11
1000111101
2 и 3
01100
12
0110111000
2 и 4
01010
13
1011100001
2 и 5
01001
14
1110000101
3 и 4
00110
15
0011011101
3 и 5
00101
16
1101011001
4 и 5
00011
17
0010100110
1 и 2 и 3
11100
18
0001010011
2 и 3 и 4
01110
19
1010110010
3 и 4 и 5
00111
20
1001000111
1 и 3 и 5
10101
21
1100100011
1 и 2 и 4
11010
22
0001111010
1 и 2 и 5
11001
23
0100011110
1 и 3 и 4
10110
24
0010001111
2 и 4 и 5
01011
25
1100001010
2 и 3 и 5
01101
26
0111000010
1 и 4 и 5
10011
Последний этап декодирования – обнуление всех ячеек, где хранились проверочные символы, ибо их функция уже завершена; далее с каждым новым импульсом сдвига на выходе декодера будет появляться очередной информационный символ b1÷b5.
