5.9. Сверточные коды, исправляющие пачки ошибок и независимые ошибки (диффузные коды)
Рассматриваемые в этом разделе коды позволяют с помощью порогового декодирования исправлять как пачки ошибок, так и независимые ошибки. Эти коды требуют для исправления пачек ошибок несколько больший защитный интервал, чем коды, исправляющие только пачки ошибок, и в этом смысле они несколько хуже последних, но могут исправлять любые две независимые ошибки. Коленбург [9] и Месси
первыми исследовали такие коды и назвали их диффузными. Вначале эти коды были построены лишь для скорости
однако в дальнейшем Тонг [13] предложил относительно регулярный метод их построения и при других значениях параметров
5.9.1. Два типа пачек ошибок
Диффузные коды в отличие от кодов, рассматривавшихся в предыдущем разделе, все ошибки, возникшие в блоке, исправляют одновременно точно так же, как самоортогональные коды исправляют независимые ошибки. При изучении таких кодов удобно пользоваться следующим определением пачки ошибок.
Фиг. 5.8. Пачки ошибок типа
Определение 5.5. Пачкой ошибок типа
длиной В называется совокупность ошибок, расположенных в В следующих подряд блоках, первый и последний из которых содержат соответственно первый и последний ошибочные символы.
Чтобы отличать пачки ошибок типа
от обычных пачек ошибок, последние называют пачками ошибок типа
На фиг. 5.8 показано несколько примеров пачек ошибок в случае по — 5. Здесь через X обозначены ошибочные символы, а через 0 — символы, свободные от ошибок. Конфигурация 1 на фиг. 5.8 представляет собой пачку ошибок типа
длиной 5 бит, но в то же время является пачкой ошибок типа
длиной 1 блок. Конфигурация 2 представляет собой пачку ошибок типа
длиной 2 бита и пачку ошибок типа
длиной 1 блок. И наконец, конфигурация 3, как и конфигурация 2, является пачкой ошибок типа
длиной 2 бита, но как пачка ошибок типа
она имеет длину 2 блока. Другими словами, пачка ошибок длиной
бит является пачкой ошибок типа
длиной
или
блоков. И, наоборот, любая пачка ошибок типа
длиной В блоков является пачкой ошибок типа
длиной
бит, где
5.9.2. Корректирующая способность
Корректирующая способность диффузных кодов определяется следующей теоремой.
Теорема 5.6. Сверточный код исправляет конфигурацию ошибок
если шумовые символы
воздействующие на информационные символы нулевого блока, удовлетворяют следующим условиям:
1) при
воздействию
подвержены не более чем
проверочных соотношений, в которые входит
2) при
не более чем
проверочных соотношений, в которые входит
подвержены воздействию шумовых символов, входящих в
и отличных от
Доказательство.
1) В этом случае число составных проверок
принимающих отличные от нуля значения, самое большее равно
и не достигает порога
2) Число проверок
принимающих ненулевые значения, здесь не меньше чем
и, следовательно, ошибка исправляется.
5.9.3. Простой пример
Примером диффузного кода со скоростью
исправляющего любые две независимые ошибки или пачки ошибок длиной 2 при наличии защитного интервала длины
является код, задаваемый порождающим многочленом
Декодер этого кода, показанный на фиг. 5.9, формирует четыре составные проверки:
ортогональные относительно
Это означает, что с помощью порогового декодирования такой код позволяет исправить любые две или менее случайные ошибки. Предположим, что появилась пачка ошибок длиной
или менее. Как видно из формул (5.87), в процессе движения пачки ошибок по декодеру слева направо, когда она еще не достигла выхода, ее воздействию подвержены не более двух составных проверок
, и, следовательно, в этот период времени выход порогового элемента всегда равен нулю. В частности, вначале, когда
пачка входит в декодер, она оказывает влияние лишь на проверки
После того как пачка достигнет выхода декодера, отличными от нуля шумовыми символами, воздействующими на составные проверки, оказываются лишь символы
и поскольку символы
и все остальные символы, следующие за ними, равны нулю. Следовательно, ошибка
может быть исправлена с помощью порогового декодирования. Аналогично исправляются остальные ошибки
Фиг. 5.9. Декодер диффузного кода.
5.9.4. Самоортогональные коды
В то время как рассмотренный в последнем примере код представляет собой ортогонализуемый код, коды, предложенные Тонгом [13], являются самоортогональными и строятся следующим образом:
1) Сначала строится код, исправляющий пачки ошибок и имеющий
проверок для каждого информационного символа нулевого блока.
2) Далее этот код с помощью теоремы 5.6 модифицируется таким образом, чтобы он мог исправлять
и менее независимых ошибок.
Поскольку в действительности построение кодов осуществляется главным образом методом проб и ошибок, то детали построения этих кодов здесь не рассматриваются (с ними можно ознакомиться по оригинальной работе Тонга [13]). Коды, построенные Тонгом, приведены в табл. 5.6.
Тонгом была получена также следующая нижняя граница для кодового ограничения самооргогональных кодов, исправляющих пачки ошибок типа
[13].
Теорема 5.7. Кодовое ограничение самоортогонального кода, исправляющего пачки ошибок типа
длиной В блоков, должно
удовлетворять следующему неравенству.
Коды, кодовое ограничение которых достигает этой границы при больших длинах пачек ошибок
называются квазиоптимальными. В частности, квазиоптимальными являются коды, приведенные в табл. 5.6.
Построенные Тонгом коды имеют скорость
однако аналогично можно построить коды со скоростью
Блоковые коды, исправляющие пачки ошибок и независимые ошибки, были построены также
Касами и Ченем [43]. Эти коды предназначены для составных каналов; асимптотически достигая нижней границы для длины блоковых кодов, исправляющих одиночные пачки ошибок, они позволяют исправлять несколько независимых ошибок. Указанная выше нижняя граница (5.88) для кодового ограничения самоортогональных кодов больше, чем нижняя граница для кодового ограничения кодов, исправляющих одиночные пачки ошибок. Однако сложность декодирования для кодов, построенных
Касами и Ченем, того же порядка, что и для БЧХ-кодов, тогда как рассмотренные выше коды допускают более простое пороговое декодирование.