А3 = 10 0 Å 1 = 1 нечетн. – 1
А4 = 11 1 Å 1 = 0
Определим кодовую комбинацию
А1ÅА2 Å d = 1 А3ÅА4 Å d = 1
01 01
Для кода 2
А1=000 А2ÅА4 011 А3ÅА2 101
А2=011 110 d = 2 011 d = 2
А3=101 101 110
А4=110
Ошибку можно не только обнаружить, но и исправить, если принятая кодовая комбинация ближе к исходной, чем к любой другой разрешённой комбинации.
Пример: Построим код: К коду 2 добавим два символа, повторив первых два символа получим код 3:
Код 2
А1=000
А2=011
А3=101
А4=110
Код 3
00 01 10 11 |
000 101 110 011 |
информационные разряды контрольные разряды
Определим кодовое расстояние между комбинациями
Строим матрицу кодовых расстояний
А1 |
А2 |
А3 |
А4 |
d0 = 3 |
|
А1 |
0 |
3 |
3 |
4 |
|
А2 |
0 |
4 |
3 |
||
А3 |
0 |
3 |
|||
А4 |
0 |
Пусть передаётся комбинация А3, и она содержит ошибку
матрица кодовых расстояний
А1 |
А2 |
А3 |
А4 |
|
Vx |
4 |
3 |
1 |
2 |
vx ближе всего к А3, следовательно посылалась А3 и мы ошибку исправили.
Корректирующая способность кода зависит от минимального кодового расстояния d0. Если
d0 = 3, то он может исправлять ошибку, то есть корректирующую способность кода можно повышать, если увеличивать минимальное кодовое расстояние.
Для построения кодов, которые обнаруживают и исправляют одиночную ошибку d0 = 3, должно выполняться неравенство:
, где
nи – количество информационных разрядов
n – значность кода
nк – количество контрольных разрядов
n = nи + nк
Поэтому результаты сведем в таблицу:
n |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
nи |
2 |
3 |
4 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
nк |
3 |
3 |
3 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
Предположим, что строим код на тридцать два сообщения nи = 5, выделяем столбец
nк = 4
n = 9
Расчеты можно вести по формуле.
Для кода, который обнаруживает двойную ошибку, а исправляет одиночную:
- значения округляются в большую сторону
- до большего целого числа
Обозначим буквой:
r – кратность обнаруживающих ошибок;
s – кратность исправляемых ошибок;
Тогда для кодов обнаруживающих и исправляющих ошибки:
d0 = r + s + 1,
для кодов, которые только обнаруживают ошибки d0 = n + 1,
для кодов, которые только исправляют ошибки d0 = 2s + 1 (когда r > s).
Если
d0 r s
1 0 0 отличие комбинации
2 1 0 обнаружение одиночной ошибки
3 1 1 обнаружение одиночной ошибки и исправление одиночной ошибки
3 2 0 обнаруживающий 2-ую ошибку
Количество контрольных разрядов и значность кода для разных минимальных кодовых расстояний, связано соотношением:
Для кодов, обнаруживающих все трехкратные ошибки.
количество обнаруженных ошибок
Для кодов, исправляющих двойные ошибки
Для кодов, исправляющих тройные ошибки:
Для кодов, исправляющих S ошибок:
Пример: Требуется передавать, обнаруживающим трёхкратные ошибки, все комбинации пятизначного двоичного кода. Чему равна общая длина кода ?
r – кратность обнаруживающих ошибок.
s – кратность исправляемых ошибок.
nи = 5; nк = 1 + log[6 + log6] = 5
n = nи + nк = 10
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.