Сверточные коды. 4 Дисер с 15 СК и Мягкое дек с 55. Программноаппаратная реализация оптимального алгоритма декодирования каскадных кодов на базе кодов рида соломона в адаптивных системах обмена данными
Скачать 5.5 Mb.
|
Разработка системы адаптации кодекаДля поддержания высокой скорости обмена данными при заданном уровне надежности принимаемой информации необходимо разработать систему адаптации кодеков к изменяющимся параметрам в канале связи. При этом кодек должен анализировать помеховую обстановку и выбирать тот уровень корректирующей способности кода, который соответствовал бы текущему уровню помех [118, 120]. Разрабатываемая СПК предназначена для внедрения в систему радиосвязи между боевыми кораблями Военно-Морского Флота Российской Федерации. Проводимые испытания СПК показали, что при стоянке кораблей, их маневрировании и плавном отдалении, растет количество группирующихся ошибок, при этом количество одиночных ошибок практически не изменяется. В связи с этим имеет смысл проводить адаптацию только по внутреннему коду РС. Существует различные подходы к реализации механизма адаптации СПК. Наиболее простым из них является предварительная заготовка набора кодеков и динамическое переключение между ними в зависимости от уровня помех в канале связи. Такой подход прост в реализации, однако требует нерациональных затрат вычислительных ресурсов. Подобный подход не всегда является оптимальным, так как при переходе с одного кода на другой, изменять, зачастую, необходимо лишь некоторые параметры кода, то гораздо более эффективным методом реализации АСК является динамическая перестройка только тех параметров кода, которые отвечают за его корректирующую способность. Способы поиска и оптимизации таких алгоритмов различны для разных видов кодирования и требуют от разработчика более глубокого понимания механизмов работы кодека. Представленная выше архитектура miBM полностью оптимизирована под динамическую смену режима кодирования. Для этого сдвиговый регистр (рисунок 3.17) строится длиной 3tmax, где tmax– корректирующая способность наиболее помехоустойчивого кода из набора кодеков АСК. Все промежуточные коды с корректирующей способностью 1 ≤ t < tmaxреализуются путем переключения связей этого регистра блоком CONTROL. При этом структура регистра не меняется, а значит, сложность адаптивного KES-блока равна сложности наиболее помехоустойчивого KES-блока. По такому же принципу строятся и остальные блоки декодера, что делает его сложность независимой от количества промежуточных ступеней кодирования. Такой подход позволяет максимально оптимизировать разрабатываемую АСК. Система управления режимами кодирования реализовывается на базе встраиваемого в ПЛИС процессора Nios-II. Также процессор решает задачи по оценке помеховой обстановки в канале связи и принимает решение о выборе того или иного режима кодирования. Управление режимами кодека осуществляется с помощью специального регистра управления, запись в который может осуществлять только процессор. Кодек записывает статистику по каналу связи в регистр состояния. Опираясь на эту статистику, процессор дает команду кодеку о смене режима. Рассматриваемая система передачи данных работает в полудуплексном режиме связи, то есть прием и передача разнесены во времени. Каждый сеанс связи начинается с процедуры синхронизации. Во время нее СПД1 отправляет СПД2 режим кодирования (mode_1), в котором будет проходить обмен в течение всего сеанса связи. Этот режим определяется на основе статистики (stat_1), полученной СПД1 за предыдущие сеансы связи. После чего СПД1 переходит в режим приема, а СПД2 – в режим передачи, и процедура повторяется. Схема работы СПД представлена на рисунке 3.22. Рисунок 3.22 – Схема работы системы передачи данных Передача режима кодирования по каналу связи осуществляется в наиболее помехозащищенном режиме. В разрабатываемой АСК такому режиму соответствует передача информации с помощью шумоподобных сигналов (ШПС). Декодер ШПС способен восстанавливать сигнал при отношении сигнал-шум -3дБм [91]. Для анализа помеховой обстановки в канале связи декодер кодов РС собирает блочную статистику, то есть считает количество неверно декодированных блоков кода РС. Как правило, формализованные сообщения, передаваемые по каналу связи, имеют размер, больший блока РС, следовательно, такие сообщения состоят из нескольких блоков РС. Если хотя бы один блок был декодирован с ошибкой, то такое сообщение полностью отбраковывается и подлежит перевыдаче. Таким образом, блочная статистика отображает количество непринятых сообщений (st_frame). Одной блочной статистики недостаточно для определения режима кодирования, необходимо иметь символьную статистику внутри блока. Каждый сеанс связи декодер записывает в регистр состояния максимальное количество искаженных байт в блоке РС (st_byte) . Блок-схема алгоритма адаптации кодека представлена на рисунке 3.23. Сначала процессор осуществляет сбор статистических данных st_frame и st_byte, а также проверяет текущий режим работы кодеков mode (ШПС или РС) и корректирующую способность кода t. Для сбора этих данных процессор обращается в регистр состояния. Затем параметры st_frame и st_byte усредняются за определенный промежуток времени для получения более точных статистических данных (st_frame и st_byte , соответственно). Если кодек работает в максимально помехозащищенном режиме (mode == ШПС), и при этом все сообщения декодируются без ошибок (st_frame 0 ), то имеет смысл перейти в менее избыточный режим кодирования (mode == РС) для увеличения скорости. Так как в режиме ШПС символьная статистика недоступна, то определить необходимую избыточность для кода РС невозможно, и кодек выбирает код с наибольшей корректирующей способностью (t:=tmax). Если же ошибочные сообщения приходят в режиме ШПС (st_frame ! 0 ), то смены режима не происходит, и процессор возвращается к сбору статистических данных о канале связи. Если кодек работает в режиме РС (mode != ШПС), то процессор оценивает процент искаженных сообщений и сравнивает их с некоторым пороговым значением Lim . Если порог превышен (st_frame Lim ), то кодек переключается в более помехозащищенный режим. Если корректирующая способность кода РС была максимальной (t==tmax), то выбирается режим ШПС (mode == ШПС), в противном случае (t:=tmax) выбирается код РС с максимальной избыточностью (t:=tmax). Если процент утерянных сообщений не превысил порога (st_frame Lim ), то процессор анализирует символьную статистику. При этом выбирается интервал значений корректирующей способности t res_best st_byte t res_worst , при которой смены кода не осуществляется, где res_best и res_worst – запасы корректирующей способности кода на случай улучшения и ухудшения помеховой обстановки в канале связи, соответственно. Иными словами, при приближении количества ошибочных символов в блоке РС к корректирующей способности кода ближе, чем на значение res_worst, корректирующую способность необходимо повысить. При уменьшении количества ошибочных символов ниже порога t – res_best, избыточность кода следует уменьшить. В обоих случаях смены режима, корректирующая способность рассчитывается согласно выражению (3.13), где st_byte – целая часть от st_byte.
Во всех других случаях корректирующая способность остается без изменений. Значения параметров res_best и res_worst выбираются эмпирически и не изменяются для текущего канала связи. Во избежание зацикливания алгоритма, при котором процессор будет менять режим каждый сеанс, важно выбирать эти параметры согласно условию:
После каждой смены режима, процессор обнуляет статистику и начинает накапливать ее заново. Если же смены режима не было, то статистика обновляется, учитывая данные, полученные в последнем сеансе связи. Начало Сбор данных: st_frame; st_byte; mode; t; Усреднение статистики: st_frame ; st_byte ; mode ШПС Нет Да st_frame 0 Нет Да Да Смена режима: mode: РС ; t : tmax ; st_frame Lim Нет Да t t max Нет Смена режима: mode: ШПС ; Смена режима: t : tmax ; st_byte > t - res_worst Да OR st_byte < t - res_best Смена режима: Нет t : st_byte 2 ; Рисунок 3.23 – Алгоритм смены режима кодирования |