Алгоритмы прямой коррекции ошибок и особенности их применения. Турбо-код

2
Сегодня требования, предъявляемые к качеству передачи данных, ведут к необходимости увеличения пропускной способности каналов, устойчивости системы к ошибкам и уменьшению времени отклика. Соответственно, разработчики телекоммуникационных систем ищут новые способы расширения доступной полосы пропускания и повышения качества передачи. Один из них — применение технологии прямой коррекции ошибок (FEC). Различные варианты архитектуры этой технологии используются уже в течение многих лет, чтобы обеспечить эффективную, высококачественную передачу данных по зашумленным каналам, таким как спутниковые и сети сотовой связи.

Развитие технологий

На данный момент развитие технологий прямой коррекции ошибок позволило современным телекоммуникационным системам достичь значительных результатов в приближении к верхней границе максимального количества передаваемых безошибочных цифровых данных (пределу Шеннона). Теоретически это понятие представляет собой максимальный уровень информационного контента для любого канала передачи. Нужно отметить, что использование технологии прямой коррекции ошибок не ведет к увеличению пропускной способности канала, наоборот, она даже несколько уменьшается из-за избыточных данных, так как ключевой особенностью технологии FEC является добавление дополнительных данных к передаваемому потоку, что позволяет принимающему устройству выявлять и исправлять ошибки, возникающие при передаче. Выигрыш в объеме информации, посылаемой по некоему каналу с помощью прямой коррекции ошибок (в отличие от каналов без нее), достигается исключительно благодаря тому, что данные гарантированно доходят до получателя. Другими словами, не нужны многократное дублирование, повторная отправка запроса на передачу и т. п., что с лихвой компенсирует их избыточность.

Эффективность кода

Эффективность кода очень зависит от зашумленности канала передачи данных. Чтобы облегчить сравнение одного кода с другим, используется модель, когда шум добавляется к антиподальным сигналам. В этой модели шум является аддитивным белым гауссовым шумом (АБГШ). Несвязанные выборки шума добавлены к антиподальными символам канала (рис. 1). Дисперсия шума связана с мощностью спектральной плотности шума (No). Антиподальная сигнализация, показывает, где будут передаваться единицы и нули, посылаемые как +Z и –Z. В канале передачи Z может быть представлена в виде 1V. Так, единицы и нули будут передаваться как +1V и –1V соответственно. Полученная энергия на передаваемый бит данных (Еb) пропорциональна Z2. Важным параметром в системе представляется отношение уровня сигнала к шуму — отношение Eb/No. Модель (АБГШ) точно демонстрирует множество типов реальных каналов. Различные виды ошибок, многократно проявляющиеся в канале, также имеют АБГШ-подобный вид.

FEC-коды

FEC-коды бывают двух основных типов: сверточные и блочные. Рассмотреть их работу можно на примере абстрактных устройств, не вдаваясь в их схемотехнику. В простом сверточном кодере последовательность информационных битов проходит через регистр сдвига, и для каждого бита информации генерируются два выходных бита. Затем два выходных бита передаются. По существу, декодер оценивает состояние кодера для каждого набора из двух получаемых символов канала. Если декодер точно знает последовательность состояний кодера, он также знает исходную последовательность информации. Пример сверточного кода — разработанный В 1967 году Эндрю Витерби алгоритм декодирования, основанный на принципе максимального правдоподобия, позднее названный его именем.

Блочный код немного проще. Кодовый блок будет принимать K информационных битов и генерировать один или несколько битов четности. Эти биты четности добавляются к информационным битам, в результате чего образуется группа из N битов, где N > K. Закодированный модуль из N битов называется кодовым словом, и это кодовое слово передается целиком. На рис. 2 показан принцип работы (n, k) = (8, 4) кодового блока кодера. Приемник получает метрики канала n, а декодер оценивает наиболее вероятную последовательность (которых существуют 2000) согласно собранным данным. В блоках декодера, как правило, используется сложная алгебраическая структура, которая может быть применима для облегчения расшифровки. Пожалуй, наиболее популярным из ныне существующих блочных кодов является совместный код Рида — Соломона. Зачастую используют укороченный вариант, где n = 2040 кодов (255 байт). До недавнего времени самые мощные коды были построены из конкатенации сверточного кода и кода Рида — Соломона.

Турбокод

Одним их последних значимых прорывов в развитии технологий FEC является класс кодов, называемых турбокодами. Это очень мощные коды, построенные из двух или большего числа кодов, меньших по размеру и более простых. Составные коды могут быть либо систематически-сверточными, либо блочными. Идея турбокодов состоит в том, чтобы единожды кодировать данные с помощью кодера 1, в некотором роде зашифровать порядок выходных битов, известных в приемнике, а затем кодировать эти биты вторым кодером. Передаются, соответственно, дважды закодированные биты. В приемнике процесс декодирования осуществляется в обратном порядке. Первое декодирование в соответствии с кодером 2, а второе декодирование в соответствии с кодером 1. Между двумя процессами декодирования операция скремблирования также происходит в обратном порядке.

Возможность провести процесс декодирования повторно делает турбокод уникальным. Второй составной декодер хранит в себе адреса ошибок, оставшиеся от первого. При повторном обращении к первому декодеру сохраняются адреса ошибок, оставшиеся от второго декодера. Скремблирование или чередование операций гарантирует, что ошибки, содержащиеся в одном из декодеров, будут видимы на другом декодере. Для того чтобы максимально увеличить эффективность, процесс декодирования обычно повторяется несколько раз. Причина в том, что ошибка может возникнуть не только в информационном бите, но и в любом из проверочных, а местоположение ошибки неизвестно. Каждая итерация приближает к правильному ответу, выдавая новые метрики правдоподобия и приближая декодер к исходному закодированному значению. Однако получение 100%-ной достоверности для каждого слова требует большого количества времени, поэтому итоговая производительность декодирования будет варьироваться в зависимости от количества итераций.

Вам могут понравиться

Сегодня требования, предъявляемые к качеству передачи данных, ведут к необходимости увеличения пропускной способности...
Существует огромное количество всевозможных схем для получения двухполярного питания - от примитивных, до весьма нестандартных, использующих совершенно неочевидные схемот......
Выберете количество