где V - скорость передачи информации, бит/с; B - скорость модуляции, Бод.
Очевидно, что чем меньше k, тем больше отношение m/n приближается к 1, тем меньше отличается V от B, т.е. тем выше пропускная способность системы связи.
Извеcтно также, что для циклических кодов с минимальным кодовым расстоянием dmin = 3 справедливо соотношение
k³log2(n+1).(1.37)
Видно, что чем больше n , тем ближе отношение m/n к 1. Так, например, при n = 7, k = 3, m = 4, m/n=0,571; при n = 255, k = 8, m = 247, m/n = 0,964; при n = 1023, k = 10, m = 1013, m/n = 0,990.
Приведенное утверждение справедливо и для больших dmin, хотя точных соотношений для связей между m и n нет. Существуют только верхние и нижние оценки, которые устанавливают связь между максимально возможным минимальным расстоянием корректирующего кода и его избыточностью.
Так, граница Плоткина даёт верхнюю границу кодового расстояния dmin при заданном числе разрядов n в кодовой комбинации и числе информационных разрядов m, и для двоичных кодов:
(1.38)или
при .(1.39)Верхняя граница Хемминга устанавливает максимально возможное число разрешённых кодовых комбинаций (2m) любого помехоустойчивого кода при заданных значениях n и dmin:
,(1.40)где
- число сочетаний из n элементов по i элементам.Отсюда можно получить выражение для оценки числа проверочных символов:
Для значений (dmin/n) ≤ 0,3 разница между границей Хемминга и границей Плоткина сравнительно невелика.
Граница Варшамова-Гильберта для больших значений n определяет нижнюю границу для числа проверочных разрядов, необходимого для обеспечения заданного кодового расстояния:
.(1.42)Все приведенные выше оценки дают представление о верхней границе числа dmin при фиксированных значениях n и m или оценку снизу числа проверочных символов k при заданных m и dmin.
Из изложенного можно сделать вывод, что с точки зрения внесения постоянной избыточности в кодовую комбинацию выгодно выбирать длинные кодовые комбинации, так как с увеличением n относительная пропускная способность
R = V/B = m/n(1.43)
увеличивается, стремясь к пределу, равному 1.
В реальных каналах связи действуют помехи, приводящие к появлению ошибок в кодовых комбинациях. При обнаружении ошибки декодирующим устройством в системах с РОС производится переспрос группы кодовых комбинаций. Во время переспроса полезная информация не передается, поэтому скорость передачи информации уменьшается.
Можно показать, что в этом случае
где Poo - вероятность обнаружения ошибки декодером (вероятность переспроса):
;(1.45)Рпп - вероятность правильного приема (безошибочного приема) кодовой комбинации
;М - емкость накопителя передатчика в числе кодовых комбинаций
,(1.46)где tp - время распространения сигнала по каналу связи, с;
tк – время передачи кодовой комбинации из n разрядов, с.
Знак < > означает, что при расчете М следует брать большее ближайшее целое значение.
Время распространения сигнала по каналу связи и время передачи кодовой комбинации рассчитываются в соответствии с выражениями
tp = (L/с);
tк = (n/B),
где L - расстояние между оконечными станциями, км;
с - скорость распространения сигнала по каналу связи, км / с (с = 3х105);
В - скорость модуляции, Бод.
При наличии ошибок в канале связи величина R является функцией Р0, n, k, В, L, с. Следовательно, существует оптимальное n (при заданных Р0, В, L, с), при котором относительная пропускная способность будет максимальной.
Для вычисления оптимальных величин n, k, m удобнее всего воспользоваться программным пакетом математического моделирования, таким как MathLab или MathCAD, построив в нем график зависимости R(n). Оптимальное значение будет в том случае, когда R(n) – максимально. При определении величин n, k, m необходимо также обеспечить выполнение условия:
,(1.47)где
- эквивалентная вероятность ошибки приема единичного разряда при применении помехоустойчивого кодирования с РОС.Величину
можно определить воспользовавшись соотношением, что при передаче без применения помехоустойчивого кодирования вероятность ошибочной регистрации кодовой комбинации Р0кк длины n равна .(1.48)В тоже время при применении помехоустойчивого кодирования
,(1.49)где
- вероятность необнаруженных ошибокДополнительно к выполнению условия (1.47) необходимо обеспечить
V ³ Ht. (1.52)
Из казанного выше следует, что процесс поиска значений В, n, m, k является итерационным и его удобнее всего оформить в виде таблицы, образец которой приведен в табл. 1.2
Таблица 1.2
Ht = , Pдоп = . | ||||||
to | n | m | K | В | V | |
1 | ||||||
2 | ||||||
3 | ||||||
… |
Для обнаружения ошибок выбираем циклический код. Из всех известных помехоустойчивых кодов циклические коды являются наиболее простыми и эффективными. Эти коды могут быть использованы как для обнаружения и исправления независимых ошибок, так и, в особенности, для обнаружения и исправления серийных ошибок. Основное их свойство состоит в том, что каждая кодовая комбинация может быть получена путём циклической перестановкой символов комбинаций, принадлежащей этому же коду.
Циклические коды значительно упрощают описание линейного кода, поскольку для них вместо задания
элементов двоичной матрицы Ρ требуется задать (n-k+1) двоичных коэффициентов многочлена g(D). Кроме того, они упрощают процедуру кодирования и декодирования для обнаружения ошибок. Действительно, для осуществления кодирования достаточно выполнить перемножение полиномов, что реализуется с помощью линейного регистра, содержащего k ячеек памяти и имеющего обратные связи, соответствующие многочлену h(D) [4].Циклический код гарантированно обнаруживает ошибки кратностью
и исправляет . Поэтому в системах с решающей обратной связью применяется кодирование циклическим кодом.При обнаружении ошибки на приемной стороне по обратному каналу связи посылается запрос на блок, в котором она была обнаружена, и тогда этот блок передаётся повторно. Так продолжается до тех пор, пока данный блок не будет принят без обнаруженной ошибки. Такая система называется системой с решающей обратной связью (РОС), поскольку решение о приёме блока или о его повторной передаче производится на приёмной стороне. Система с РОС являются эффективным способом повышения помехоустойчивости передачи информации.
При описании процедуры кодирования и декодирования циклическим кодом удобно использовать математический аппарат, основанный на сопоставлении множества кодовых слов с множеством степенных полиномов. Этот аппарат позволяет выявить для циклического кода более простые операции кодирования и декодирования.
Среди всех полиномов, соответствующих кодовым словам циклического кода, имеется ненулевой полином P(x) наименьшей степени. Этот полином полностью определяет соответствующий код и поэтому называется порождающим.
Степень порождающего полинома P(x) равна n - m, свободный член всегда равен единице.
Порождающий полином является делителем всех полиномов, соответствующих кодовым словам циклического кода.
Нулевая комбинация обязательно принадлежит любому линейному циклическому коду и может быть записана как (xn Å 1) mod (xn Å 1) = 0. Следовательно, порождающий полином Р(x) должен быть делителем бинома xn Å 1.
Это даёт конструктивную возможности построения циклического кода заданной длины n: любой полином, являющийся делителем бинома xn Å 1, можно использовать в качестве порождающего.
При построении циклических кодов, пользуются таблицами разложения биномов xn Å 1 на неприводимые полиномы, т.е. полиномы, которые нельзя представить в виде произведения двух других полиномов (см. приложение А).