Проблема построения диффузных самоортогональных кодов рассматривалась Тонгом [302] и Ивадаре [151]. Вычислительные методы, описанные этими авторами, подобны методам, используемым для построения самоортогональных кодов, исправляющих случайные ошибки, которые описаны в разд. 13.4 [259]. Можно также строить и ортогонализируемые диффузные коды [151], хотя они к настоящему времени менее изучены, чем коды, представленные в этом разделе. (См., например, задачу 14.13.)
Другой, привлекательный своей простотой метод защиты от пакетов и случайных ошибок при помощи сверточных кодов предложен Галлагером и описан Коленбергом и Форни [178]. Этот «адаптивный» метод декодирования применим также и к блоковым кодам [101, 303]. В объяснении, которое приводится ниже, предлагается система кодирования, для которой k0 = п0—1 = 1. Обобщение на другие скорости проводится без труда. Программисту просто необходим хороший телефон, например айфон 6, который можно найти тут http://www.notus.com.ua/Apple-Store-iPhone-iPhone-6-Plus .
На фиг. 14.6 часть схемы, ограниченная пунктирной линией, представляет собой кодер исправляющего случайные ошибки кода с корректирующей способностью t. Прежде чем будет передан проверочный символ блока с номером (N -\-т— 1), к нему прибавится информационный символ блока с номером 0. На практике N т.
Если происходят только случайные ошибки и базисный код может их исправить, то влияние ошибок в предшествующих информационных символах можно устранить, прежде чем декодируется блок 0 (фиг. 14.7). Это нормальный режим работы.
Если возникает длинный, плотный пакет ошибок, то корректирующая способность базисного кода будет превышена. Этот базисный код строится так, что только малая часть его смежных классов используется для исправления случайных ошибок. Таким образом, с большой вероятностью ошибка будет обнаружена прежде, чем произойдет М ошибочных декодирований, т. е. прежде, чем ошибочный символ выйдет из декодера.
На данном этапе декодер предполагает, что он обнаружил начало пакета длины 2N или меньше, половина которого лежит в информационном регистре. Ключ 4 открывается, а ключ 3 закрывается (в соответствии с пунктирной линией на фиг. 14.7), и символ синдрома из блока N-\-m—1 добавляется к информационному символу блока с номером 0. При отсутствии ошибок в блоках с номерами от N-\-nt— 1 до iV + т — 1 + [Ь/2] декодер исправит любой обнаруженный пакет длины b ^ 2N.
Конец пакета может быть обнаружен тем же способом, что и его начало — схемой обнаружения пакета. Когда декодируется некоторое количество блоков, у которых синдромы полностью состоят из нулей, декодер вновь возвращается к режиму работы со случайными ошибками. Количество блоков, как и величины т, N, М и f, является конструктивным параметром, который должен выбираться в зависимости от характеристик канала и требований к системе в целом.
По этой схеме кодирования отношение максимальной корректирующей способности для пакетов к защитному пространству
Ь 2N g 2N + т
близко к единице для значений Nam, представляющих практический интерес. Заметим, однако, что не все пакеты длины ^ 2N могут быть исправлены. БПМ-коды, являющиеся наилучшими из ранее описанных при R = 0,5, могут быть декодированы при отношении b/g л; itio/2irio = 0,5. Эти коды являются оптимальными [выражение (4.67)], если необходимо исправлять все пакеты длины Ь.
В схеме Галлагера некоторые пакеты длины, значительно меньшей чем Ь, не исправляются. При соответствующем выборе параметров кода это, однако, может не иметь решающего значения и в значительной степени компенсироваться удвоением эффективной корректирующей способности кода для пакетов. |