5.10.4. Перфорированные равномерные коды
Равномерные коды имеют очень высокую корректирующую способность при низкой скорости передачи. Скорость передачи можно повысить путем выбрасывания некоторых проверочных символов, ухудшив при этом несколько корректирующую способность. Этот метод построения кодов был использован Робинсоном [36]. Рассмотрим решетку, узлами которой являются
двоичные векторы, соответствующие различным проверочным соотношениям (порождающим многочленам) и соединенные определенным образом друг с другом стрелками. Например, решетка равномерного кода с параметрами
имеет вид
Узел 111 этой решетки представляет следующие три проверочных соотношения:
Стрелка, соединяющая узлы 111 и 101, указывает шаг процесса ортогонализации кода, позволяющий путем сложения символа синдрома
с
получить такую составную проверку, что
Аналогично стрелка, соединяющая узлы 110 и 111, указывает шаг процесса ортогонализации, позволяющий путем сложения символа синдрома
с
получить такую проверку, что
Последняя стрелка указывает шаг ортогонализации, позволяющий путем сложения символа синдрома
получить составную проверку, такую, что
Общее правило построения решетки состоит в следующем: вектор
яруса соединяется с вектором
яруса, если покомпонентная сумма по модулю 2 этих векторов или
одного из них с некоторым сдвигом другого является вектором веса 1. Вектор, расположенный на самом высоком ярусе, имеет вес а векторы, расположенные на самом нижнем ярусе, имеют вес 2.
Рассмотрим, каким образом можно повысить скорость передачи за счет выбрасывания проверочных символов. На фиг. 5.10 показана решетка кода с параметрами
Удалим вектор 11111, расположенный в четвертом ярусе. Заметим, что в этом случае оставшимся узлам решетки соответствуют символы синдрома, ортогонализация которых осуществляется без использования символов синдрома, соответствующих вектору 11111, а следовательно, ортогонализацию полученного кода можно провести точно так же, как и исходного кода.
Фиг. 5.10. Решетчатая структура кода с
Поскольку выброшенный узел имел вес 5, то минимальное расстояние кода уменьшается с 48 до 43; скорость передачи при этом возрастает с
Далее без нарушения процесса ортогонализации можно выбросить произвольный вектор, расположенный в 3-м ярусе. После того как будут выброшены все векторы 3-го яруса, можно перейти к выбрасыванию векторов 2-го яруса.
Однако можно воспользоваться другой процедурой выбрасывания, позволяющей получить коды с большим минимальным расстоянием. Эта процедура заключается в следующем. При выбрасывании любого узла решетки число проверочных символов кода уменьшается на единицу, а минимальное расстояние — на вес элемента, соответствующего выброшенному узлу. Если обратиться к процессу ортогонализации, когда в результате сложения двух символов синдромов образуются составные проверки, то можно заметить, что узел решетки можно выбросить, если он не связан с оставшимися узлами более высоких ярусов. Рассматривая каждый вектор как двоичную запись некоторого десятичного числа (старшим разрядом будем считать самый правый символ), упорядочим узлы решетки в порядке убывания
этих десятичных чисел (номеров). При построении кода узлы решетки будем выбрасывать в порядке убывания их номеров. Это всегда можно делать, поскольку вектор
яруса, имеющий номер
не связан ни с одним из векторов
яруса, имеющим номер, меньший чем
Например, с помощью этого алгоритма выбрасывания может быть получен код с параметрами
этом из решетки, изображенной на фиг. 5.10, выбрасываются узлы 11111, 10111, 11011, 11101). Получающиеся таким образом коды называются перфорированными равномерными кодами.
Задачи
(см. скан)