- •Помехоустойчивое кодирование
- •1. Помехоустойчивые коды и их основные параметры
- •1.1 Принцип построения помехоустойчивых кодов
- •1.2 Основные параметры помехоустойчивых кодов
- •1.3 Граничные соотношения между параметрами помехоустойчивых кодов
- •2. Линейные блоковые коды
- •2.1 Способы задания линейных кодов
- •2.2 Основные свойства линейных кодов
- •2.3 Стандартное расположение группового кода
- •3. Коды Хэмминга
- •4. Циклические коды
- •4.1 Основные понятия
- •4.2 Матричное задание кодов
- •4.3 Коды бчх
- •4.4 Способы кодирования и схемная реализация кодирующих устройств
- •4.5 Способы декодирования с обнаружением ошибок и схемная реализация декодирующих устройств
- •4.6 Способы декодирования с исправлением ошибок и схемная реализация декодирующих устройств
- •4.7 Коды Рида-Соломона (рс)
4.7 Коды Рида-Соломона (рс)
Коды РС являются недвоичными циклическими кодами, символы кодовых слов которых берутся из конечного поля GF(q). Здесь q степень некоторого простого числа, например q=2m.
Допустим, что РС-код построен над GF(8), которое является расширением поля GF(2) по модулю примитивного многочлена f(z)=z3+z+1. В этом случае символы кодовых слов кода будут иметь значения, представленные в таблице 6.
Таблица 6
|
<TBODY>000 |
0 |
0 |
011 |
z+1 |
3 |
|
001 |
1 |
0 |
110 |
z2+z |
4 |
|
010 |
z |
1 |
111 |
z2+z+1 |
5 |
|
100 |
z2 |
2 |
101 |
z2+1 |
6</TBODY> |
Кодовые слова РС-кода отображаются в виде многочленов
V(x)=VN-1xN-1+ ... +V1x1+V0; где N - длина кода; Vi - q-ичные коэффициенты (символы кодовых слов), которые могут принимать любое значение из GF(q). Эти коэффициенты как это следует из таблицы, также отображаются многочленами с двоичными коэффициентами Vi=am-1zm-1+ ... +a1z1+a0.
Коды РС являются максимальными, т.к. при длине кода N и информационной последовательности k они обладают наибольшим кодовым расстоянием d=N-k+1. Порождающим многочленом g(x) РС-кода является делитель двучлена xN+1 степени меньшей N с коэффициентами из GF(q) при условии, что элементы этого поля являются корнями g(x). Здесь - примитивный элемент GF(q). На основе этого определения, а также теоремы Безу, выражение для порождающего многочлена РС-кода будет иметь вид g(x)=i=1d-1(x-i). Степень g(x) равна d-1=N-k=R. В РС-кодах принадлежность кодовых слов данному коду определяется выполнением d-1 уравнений в соответствии с выражением
i=0N-1Vizim=0;(m=m0; m0+1; ... m0+d-2) (*)
где Vi - символы-коэффициенты из GF(q); z0, z1... zN-1 - ненулевые элементы GF(q). Элементы z0, z1... zN-1 называются локаторами, т.е. указывающими на номер позиции символа кодового слова. Например, указателем i - позиции является локатор zi или элемент i GF(q). Так как все локаторы должны быть различны и причем ненулевыми, то их число в GF(q) равно q-1. Следовательно, такое количество символов должно быть в кодовых словах кода. Поэтому обычно длина РС-кода определяется из выражения N=q-1.
Пример. Допустим, что длина РС-кода равна N, кодовое расстояние d=3, то в соответствии с (*) проверочными уравнениями будут
VN-1(N-1)1+VN-2(N-2)1+ ... +V1(1)1+V0(0)1=0;
VN-1(N-1)2+VN-2(N-2)2+ ... +V1(1)2+V0(0)2=0;
Свойства РС-кодов:
1. Циклический сдвиг кодовых слов, символы которых принимают значение из GF(q), порождает новые кодовые слова этого же кода.
2. Сумма по mod2 двух и более кодовых слов дает кодовое слово, принадлежащее этому же коду.
3. Кодовое расстояние РС-кода определяется не по двоичным элементам, а по q-ичным символам.
4. В РС-коде, исправляющем tu ошибок порождающий многочлен определяется из выражения g(x)=(x-m0)(x-m0+1)...(x-m0+2tu-1). Обычно m0 принимают равным 1. Однако, с помощью разумного выбора значения m0, иногда можно упростить схему кодера.
5. Корректирующие способности РС-кода определяются его кодовым расстоянием: t0d-1; T0(t0-1)m+1; tud-1/2; Tu(tu-1)m+1; где T0, Tu - длина пакетов, в которых обнаруживаются и исправляются ошибки. Обнаружение ошибок в кодовых словах состоит в определении синдрома S=Sd-2 ... S1S0, элементы которого определяются из выражения Sj =i=0N-1 Vi zim0+j; (j=0, ... , d-2).
Пример. Требуется сформировать кодовое слово РС-кода над GF(23), соответствующее двоичной информационной последовательности a(1,0)=000000011100101.
Так как m=3, то каждый q-ичный символ кода состоит из трех двоичных элементов. Поэтому с учетом таблицы 6 a(x)=3x2+2x+6. Определяем параметры кода: N=q-1=7; k=5; R=2; d=N-k+1=3;
g(x)=i=1d-1(x-i)=(x-1)(x-2)=x2+(1+2)x+3=x2+4x+3.
Кодовое слово формируется в соответствии с выражением: V(x)=a(x)xR+R(x); где R(x)=Rg(x)[a(x)xR]=Rg(x)[(3x2+2x+6)x2]=Rg(x)[3x4+2x3+6x2]=6x+6.
В результатеV(x)=3x4+2x3+6x2+6x+6 или в двоичной форме V(1,0)=000.000.011.100.101.101.101.
Таблица 2 Элементы поля GF(16) как расширение GF(2) по примитивному многочлену (z)=z4+z+1
|
В двоичном виде |
В виде многочлена |
В виде степени |
|
В двоичном виде |
В виде многочлена |
В виде степени |
|
0000 |
0 |
0 |
|
1011 |
z3+z+1 |
7 |
|
0001 |
1 |
0 |
|
0101 |
z2+1 |
8 |
|
0010 |
z |
1 |
|
1010 |
z3+z |
9 |
|
0100 |
z2 |
2 |
|
0111 |
z2+z+1 |
10 |
|
1000 |
z3 |
3 |
|
1110 |
z3+z2+z |
11 |
|
0011 |
z+1 |
4 |
|
1111 |
z3+z2+z+1 |
12 |
|
0110 |
z2+z |
5 |
|
1101 |
z3+z2+1 |
13 |
|
1100 |
z3+z2 |
6 |
|
1001 |
z3+1 |
14 |
Таблица 3 Элементы поля GF(16) как расширение GF(4) по примитивному многочлену f(z)=z2+z+2
|
В четвертичном виде |
В десятичном виде |
В виде многочлена |
В виде степени |
|
00 |
0 |
0 |
0 |
|
01 |
1 |
1 |
0 |
|
10 |
4 |
z |
1 |
|
12 |
6 |
z+2 |
2 |
|
32 |
14 |
3z+2 |
3 |
|
11 |
5 |
z+1 |
4 |
|
02 |
2 |
2 |
5 |
|
20 |
8 |
2z |
6 |
|
23 |
11 |
2z+3 |
7 |
|
13 |
7 |
z+3 |
8 |
|
22 |
10 |
2z+2 |
9 |
|
03 |
3 |
3 |
10 |
|
30 |
12 |
3z |
11 |
|
31 |
13 |
3z+1 |
12 |
|
21 |
9 |
2z+1 |
13 |
|
33 |
15 |
3z+3 |
14 |
Таблица 4 Элементы поля GF(4) как расширение GF(2) по примитивному многочлену f(z)=z2+z+1
|
В двоичном виде |
В виде многочлена |
В виде степени |
В десятичном виде |
|
00 |
0 |
0 |
0 |
|
01 |
1 |
0 |
1 |
|
10 |
z |
1 |
2 |
|
11 |
z+1 |
2 |
3 |
Таблица 5 Операции сложения и умножения элементов в поле GF(4)
|
+ |
0 |
1 |
2 |
3 |
|
1 |
2 |
3 |
|
0 |
0 |
1 |
2 |
3 |
1 |
1 |
2 |
3 |
|
1 |
1 |
0 |
3 |
2 |
2 |
2 |
3 |
1 |
|
2 |
2 |
3 |
0 |
1 |
3 |
3 |
1 |
2 |
|
3 |
3 |
2 |
1 |
0 |
|
|
|
|
Таблица 6 Элементы поля GF(8) как расширение GF(2) по примитивному многочлену f(z)=z3+z+1
|
В двоичном виде |
В виде многочлена |
В виде степени |
|
В двоичном виде |
В виде многочлена |
В виде степени |
|
000 |
0 |
0 |
|
011 |
z+1 |
3 |
|
001 |
1 |
0 |
|
110 |
z2+z |
4 |
|
010 |
z |
1 |
|
111 |
z2+z+1 |
5 |
|
100 |
z2 |
2 |
|
101 |
z2+1 |
6 |
Таблица 7 Непримитивные элементы поля GF(2m)
|
№ |
m |
GF(2m) |
|
N |
|
1 |
4 |
GF(24) |
3 |
5 |
|
5 |
3 | |||
|
2 |
6 |
GF(26) |
3 |
21 |
|
7 |
9 | |||
|
9 |
7 | |||
|
3 |
8 |
GF(27) |
3 |
85 |
|
5 |
51 | |||
|
15 |
17 | |||
|
17 |
15 | |||
|
4 |
9 |
GF(29) |
7 |
73 |
|
5 |
10 |
GF(210) |
3 |
341 |
|
11 |
93 | |||
|
31 |
33 | |||
|
33 |
31 | |||
|
6 |
12 |
GF(212) |
3 |
1365 |
|
5 |
819 | |||
|
7 |
585 | |||
|
9 |
455 | |||
|
13 |
315 | |||
|
15 |
273 | |||
|
21 |
195 | |||
|
45 |
91 | |||
|
63 |
65 | |||
|
65 |
63 |
