Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сети радиодоступа. Ч.1. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
81
где E(X) = (e1, e2, e3, … , en)– n – битовый полином ошибок, содержащий 1 в каждом двоичном разряде , где в Z(X) имеется ошибка.
Если Z(X) проходит через регистр порождающего полинома, то фактически в нем производится деление Z(X)/P(X), что в результате дает синдром S(X) = (s1, s2,s3, …, s
n-k
) длиной (n-k) бит
( ) ( )
( ) ,
( ) ( )
Z X S X
BX
P X P X
=+
(4.16)
где B(X) – частное, S(X) – остаток деления. Следовательно, S(X) является функцией Z(X). Теперь определим, каким образом полученный результат можно использовать для исправления ошибок. Запишем уравнение (4.16) с учетом выражений (4.12) – (4.15) и получим выражение (4.17), из которого видно, что деление E(X)/P(X) дает тот же остаток, что и Z(X)/P(X). Таким образом, значение синдрома S(X) зависит только от ошибочных битов и не зависит от начальной последовательности битов (переданного значения T(X)). Если ошибочные биты E(X) можно получить из синдрома S(X), то ошибки в Z(X) можно исправить с помощью простого сложения
( ) ( ) ( ) ( ) ( ) ( ).Z X E X T X E X E X T X+ = + + =
( ) ( )
( ) ,
( ) ( )
( ) ( ) ( )
( ) ,
( ) ( )
( ) ( )
( ) ( ) ,
( ) ( )
( ) ( )
( ) ( ) .
( ) ( )
Z X S X
BX
P X P X
T X E X S X
BX
P X P X
E X S X
Q X B X
P X P X
E X S X
Q X B X
P X P X
=+
+
=+
+ = +
= + +
(4.17)
Поскольку S(X) зависит только от E(X), возможности блочного циклического кода определить очень легко. Синдром состоит из (n-k) бит,
следовательно он может принимать
2
nk−
возможных значений. Если все биты
синдрома равны нулю, это указывает на отсутствие ошибок. Следовательно,
всего можно исправить
21
nk−
−
различных ошибочных комбинаций.
82
Чтобы с помощью блочного кода (n, k) можно было исправить все
возможные однобитовые ошибки, должно выполняться неравенство
(2 1)
nkn−
−
.
Исправление всех 1- и 2-битовых ошибок требует выполнения следующего неравенства
( 1)
(2 1).
2
nk
nn
n
−
−

+ −
 
(4.18)
Способ получения E(X) из S(X) может зависеть от используемого кода. Наиболее простой подход – построить таблицу, которая ставила бы в соответствие значениям E(X) значения S(X) (таблица 4.2). После этого потребуется простой способ выполнения поиска в этой таблице.
Таблица 4.2 – Циклический код (7, 4) с коррекцией однобитовых ошибок
а) Таблица используемых кодовых слов
Блок данных
Кодовое слово
0000
0000000
0001
0001101
0010
0010111
0011
0011010
0100
0100011
0101
0101110
0110
0110100
0111
0111001
1000
1000110
1001
1001011
1010
1010001
1011
1011100
1100
1100101
1101
1101000
1110
1110010
1111
1111111
б) Таблица синдромов, соответствующих однобитовым ошибкам
Ошибочная комбинация
Синдром
0000001
001
0000010
010
0000100
100
0001000
101
83
Продолжение таблицы 1.2
0010000
111
0100000
011
1000000
110
4.3 Коды Хэмминга
Коды Хэмминга – это семейство блочных кодов с коррекцией одиночных ошибок, которые характеризуются следующими параметрами:
min
Длина блока 2 1;
Количество битов данных 2 1;
Количество контрольных битов ;
Минимальное расстояние 3.
r
r
n
kr
r n k
d
=−
= − −
=−
=
(4.19)
Для кодов Хэмминга r  3. Согласно (4.19) существуют коды Хэмминга при r = 3 – (7,4), r = 4 – (15,11), r = 5 – (31,11) и т.д.
Коды Хэмминга просты в использовании и легко поддаются анализу,
поэтому рассмотрим этот тип кодов, чтобы проиллюстрировать на их
примере некоторые фундаментальные принципы работы блочных кодов.
Коды Хэмминга созданы для исправления 1-битовых ошибок. Для
начала определим необходимую длину кода. Коды Хэмминга реализуются
так же, как методы обнаружения ошибок (рисунок 1.1) – в процессе кодирования сохраняются k бит данных и добавляются r = (n-k)
контрольных битов. При декодировании используются две
последовательности из r = (n-k) бит, одна из которых является кодовым
словом входящего сигнала, а другая рассчитывается на основе полученных
битов данных. Последовательности побитно сравниваются с помощью
логического исключающего ИЛИ. Результат сравнения называют синдромом. Биту синдрома присваивается значение 0, если биты двух
последовательностей совпадают, и 1 – в противном случае. Синдром – это r =
(n-k) – битовое слово в диапазоне от 0 до 2
(n-k)
- 1. Значение 0 свидетельствует
об отсутствии ошибки. Если же ошибка присутствует, ее местоположение
определяется из синдрома.
Для удобства генерируемый синдром должен обладать следующими
свойствами:
• если синдром состоит только из нулей — ошибки не обнаружены;
84
• если один и только один бит синдрома равен 1 — ошибка присутствует
в одном из контрольных битов; в этом случае исправлять ошибку не нужно;
• если синдром содержит более одного бита со значением 1, он является
указателем на положение ошибки в слове, для исправления которой указанный
бит инвертируется.
Поскольку ошибочным может быть любой из k бит данных или r = (n-k) проверочных битов, должно выполняться следующее соотношение
()
2 1 ( ) .
nk
k n k n
−
− + − =
(4.20)
Приведенное уравнение определяет количество битов, необходимое
для исправления 1-битовой ошибки в слове, содержащем k бит данных.
Из (4.20) следует
2
( ) log ( 1).r n k n= − +
(4.21)
Из (4.19) и (4.21) следует, что в коде Хэмминга возможны комбинации (n,k): (7,4); (15,11); (31,26); (63,57) и т.д.
Возможна реализация кодов Хэмминга и с другими значениями количества бит данных и проверочных бит для исправления одиночных
ошибок (таблица 4.3).
Таблица 4.3 – Соотношение между битами данных и проверочных
Биты данных k
от 3 до 4
от 5 до
11
от 12 до
26
от 27 до
57
от 27 до
57
Проверочные
биты r
3 4 5 6 7
В качестве примера рассмотрим реализацию кода Хэмминга для
r = (n-k)
= 3. Из (4.19 – 4.21) и таблицы 4.3 следует, что в этом случае необходимо использовать код (7,4), т.е. каждый блок содержит n = 7 бит, из которых k = 4 информационных бита, которые дополняются r = (n-k) = 3
проверочными битами. Проверочные (контрольные) биты определяются (рассчитываются) путем сложения по модулю 2 (исключающее ИЛИ) информационных бит. При определении каждого из проверочных бит информационные биты участвуют, по крайней мере, дважды. Для рассматриваемого примера при заданных четырех информационных битах
85
1 2 3 4
( , , , )i i i i
каждое кодовое слово дополняется тремя проверочными битами,
определяемыми равенствами
1 1 2 3
2 2 3 4
3 1 2 4
,
,
.
r i i i
r i i i
r i i i
=
=
=
(4.22)
Шестнадцать разрешенных семибитовых кодовых слов (7,4) – кода
Хэмминга
1 2 3 4 1 2 3
( , , , , , , )i i i i r r r
представлены в таблице 4.4.
Схемная реализация кодера (7,4) – кода Хэмминга в соответствии с формулой (4.22) и таблицей 4.4 представлена на рисунке 4.10.
При вычислении проверочных бит
1 2 3
( , , )r r r
согласно (4.22) и рисунка
4.10 осуществляется проверка на четность комбинации из трех
информационных бит, если рассматриваемая комбинация четная, то ri = 0, если нечетная – ri = 1.
Таблица 4.4 – Разрешенные комбинации
(7,4) – кода Хэмминга
0000000
1000101
0001011
1001110
0010110
1010011
0011101
1011000
0100111
1100010
0101100
1101001
0110001
1110100
0111010
1111111
При передаче по каналу связи возможно появление ошибок, поэтому
принятое семибитовое кодовое слово
1 2 3 4 1 2 3
( , , , , , , )i i i i r r r
. По изображенному
на рисунке 4.10 алгоритму вычисляются биты
1 1 1 2 3
2 2 2 3 4
3 3 1 2 4
,
,
.
s r i i i
s r i i i
s r i i i
= + + +
= + + +
= + + +
(4.23)
86
i
1
i
2
i
3
i
4
i
1
i
2
i
3
i
4
r
1
r
2
r
3
4- битовое
слово данных
7- битовое
кодовое слово
Рисунок 4.10 – Кодер (7,4) – кода Хэмминга
Если в канале отсутствуют ошибки, то согласно (4.22) и (4.23) биты s1, s2, s3 будут равны нулю, что и свидетельствует об отсутствии ошибок.
Трехбитовая последовательность
1 2 3
( , )s s s
называется синдромом, структура
которого зависит от конфигурации ошибок в принимаемом сигнале. Всего
имеется восемь значений синдрома – один для случая отсутствия и по одному
для каждой из семи возможных одиночных ошибок, при этом каждая из ошибок имеет только свой единственный синдром. Рассмотрим синдромы для
четырехбитового слова данных (рисунок 4.11).
На рисунке 4.11 темным цветом выделены ошибочно принятые биты. Из рисунка 4.11 видно, что при наличии ошибки в одном из информационных
1 2 3 4
( , , , )i i i i
бит синдром имеет в своем составе две единицы. Если же ошибки
происходят в проверочных битах
1 2 3
( , , )r r r
, то синдром имеет в своем составе
одну единицу.
На основе вычисленного в декодере Хэмминга синдрома (рисунок 4.11)
корректирующая логика вырабатывает сигнал
1 2 3 4
( , , , )e e e e
для исправления
87
ошибок в информационных битах
1 2 3 4
( , , , )i i i i
. Очевидно, что ошибки в
проверочных битах
1 2 3
( , , )r r r
исправлять не нужно.
Принятая кодовая комбинация и значение
Принятая кодовая комбинация и значение
Принятая кодовая комбинация и значение
Принятая кодовая комбинация и значение
Принятая кодовая комбинация и значение
Принятая кодовая комбинация и значение
Принятая кодовая комбинация и значение
Принятая кодовая комбинация и значение
0 1 1 0
Передаваемое четырехбитовое слово
данных
0 1 1 0
i
1i2i3i4
i
1i2i3i4
0 0 1
r1r2r
3
Семибитовое слово на выходе кодера
Хэмминга
0 1 1 0
i
1i2i3i4
0 0 1
r1r2r
3
синдрома при отсутствии ошибок
0 0 0
s1s2s
3
0 1 1 1
i
1i2i3i4
0 0 1
r1r2r
3
синдрома при ошибке в i
4
0 1 1
s1s2s
3
0 1 0 0
i
1i2i3i4
0 0 1
r1r2r
3
синдрома при при ошибке в i
3
1 1 0
s1s2s
3
0 0 1 0
i
1i2i3i4
0 0 1
r1r2r
3
синдрома при при ошибке в i
2
1 1 1
s1s2s
3
1 1 1 0
i
1i2i3i4
0 0 1
r1r2r
3
синдрома при при ошибке в i
1
1 0 1
s1s2s
3
0 1 1 0
i
1i2i3i4
1 0 1
r1r2r
3
синдрома при при ошибке в r
1
1 0 0
s1s2s
3
0 1 1 0
i
1i2i3i4
0 1 1
r1r2r
3
синдрома при ошибке в r
2
0 1 0
s1s2s
3
0 1 1 0
i
1i2i3i4
0 0 0
r1r2r
3
синдрома при ошибке в r
1
0 0 1
s1s2s
3
Рисунок 4.11 – Пояснения к работе декодера Хэмминга при наличии
ошибок в принятой кодовой комбинации
Рассмотрим работу корректирующей логики. Очевидно, что для исправления ошибки в информационном бите необходимо с выхода корректирующей логики подать «1» на сумматор по модулю 2 в ветвь соответствующего символа. По этому принципу
построена корректирующая логика, схема которой представлена на рисунке 4.12.
На вход корректирующей логики поступают символы синдрома ошибок
1 2 3
( , )s s s
, которые подаются на каждый из трех входов четырех схем совпадения
(трехвходовые схемы И). Вход со значком
o
означает инверсию входного
символа синдрома ошибки. При наличии ошибки в первом информационном символе i1 символ «1» (импульс) появится на выходе первой схемы совпадения,
так как при этом значение синдрома в соответствии с рисунком 4.11
1 2 3
( , )s s s
=
101, а после инверсии второго символа синдрома
2
1s =
получим на трех входах
первой схемы совпадения
1 2 3
( , , ) 111s s s =
, что даст на выходе этой схемы
1
1e =
.
88
При подаче этой «1» на сумматор по модулю 2 в цепи первого
информационного символа получим
i
1i2i3i4
( ) = 0 1 1 0( )
Принятая кодовая комбинация при
отсутствии ошибок
i'1i
2i3i4
( ) = 1 1 1 0( )
Принятая кодовая комбинация при ошибке
в i
1
e
1
= 1
Сигнал на выходе первой схемы
совпадения корректирующей логики
i
1i2i3i4
( ) = 0 1 1 0( )
Кодовая комбинация после исправления
ошибки в i
1
s
1
s
2
s
3
e
4
e
3
e
2
e
1
1
23
4
Рисунок 4.12 – Структурная схема корректирующей логики декодера (7,4)
– кода Хэмминга
В кодах Хэмминга с увеличением длины кодовой комбинации n растет
сложность декодирования. Коды Хэмминга в силу этой причины используются для исправления одиночных ошибок при небольшом числе информационных
символов.
4.4 Код Голея
Код Голея –7, это двоичный линейный код (23, 12) с d
min
= 7.
89
Одним из наиболее практичных блочных кодов является расширенный двоичный линейный код Голея (24, 12) с d
min
=8 получается из кода Голея
путем добавления ко всем кодовым комбинациям проверочного символа.
Использование расширенного кода Голея (24, 12) дает скорость кодирования
12
c
R =
, реализовать которую проще (с точки зрения
использования двоичной логики), чем обычный код Голея (23, 12) со скоростью кодирования
12 23
c
R =
. Расширенный код Голея значительно мощнее
рассмотренного ранее кода Хэмминга. Цена, которую приходится платить за повышение эффективности кода, заключается в более сложном декодере и, соответственно, более высокой скорости передачи и более широкой полосе, занимаемой сигналом. Для расширенного кода Голея
min
8d =
, поэтому код
гарантирует исправление всех трехбитовых ошибок.
Линейный код Голея (23, 12) можно генерировать посредством порождающего полинома
11 9 7 6 5
( ) 1.P X X X X X X X= + + + + + +
4.5 Коды БЧХ
Коды Боуза-Чоудхури-Хоквенгема (Bose-Chadhuri-Hocquenghem – ВСН,
БЧХ) являются результатом обобщения кодов Хэмминга, которое позволяет исправлять множественные ошибки. Они составляют мощный класс циклических кодов, который обеспечивает достаточную свободу выбора длины блока, степени кодирования, размеров алфавита и возможностей коррекции ошибок. Коды БЧХ очень важны, поскольку при блоках, длина которых равна порядка несколько сотен бит, коды БЧХ превосходят своими качествами все другие блочные коды с той же длиной блока и степенью кодирования. В наиболее часто применяемых кодах БЧХ используется двоичный алфавит и блок
кодового слова
n = 2m -1 n – k ≤ mt
d
min
= 2t +1
Длина блока
Количество контрольных битов
Минимальное расстояние
90
С помощью такого кода можно исправить все слова, содержащие t (или
менее) ошибок. Порождающий многочлен кода БЧХ можно создать из
множителей полинома
21
( 1)
m
X
−
+
.
В таблице 4.5 приведены параметры кодов БЧХ (n, k, t) для
7 255n
.
В таблице 4.6 приводятся наиболее часто употребляемые при создании кодов БЧХ генераторные (производящие) полиномы
()PX
с разными
значениями
, иn k t
для блоков длиной до 255. Коэффициенты полиномов
()PX
представлены многочленом, двоичными и восьмеричными числами.
Восьмеричные числа оформлены так, что при преобразовании их в двоичные символы крайние правые разряды отвечают коэффициенту нулевой степени в
()PX
. С помощью таблицы 4.5 можно легко проверить свойство циклического
кода – генераторный полином имеет порядок (п – k)
Так, коэффициентами порождающего полинома для кода (15, 5, 3) в восьмеричной форме является число 2467, что соответствует двоичной форме
10 100 110 111
. В результате перехода от записи двоичной формы
представления порождающего полинома к записи многочлена получим
10 8 5 4 2
( ) 1X P X X X X X X= + + + + + +
.
Таблица 4.5 – Параметры кодов БЧХ
n k t n k t n k t n k t n k t 7 4 1 63
30 6 127
64
10
255
207
6
255
99
23
15
11 1
24 7
57
11 199
7 91
25
7 2 18
10 50
13 191
8 87
26 5 3
16
11 43
14 187
9 79
27
31
26 1
10
13 36
15 179
10 71
29 21 2 7 15 29
21 171
11 63
30 16 3 127
120
1 22
23 163
12 55
31 11 5
113
2 15
27 155
13 47
42 6 7
106
3 8
31 147
14 45
43
63
57 1
99 4 255
247
1 139
15 37
45 51 2
92 5
239
2 131
18 29
47 45 3
85 6
231
3 123
19 21
55 39 4
78 7
223
4 115
21 13
59 36 5
71 9
215
5 107
22 9
63
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]