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

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

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

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

Турбокод

Одним их последних значимых прорывов в развитии технологий FEC является класс кодов, называемых турбокодами. Это очень мощные коды, построенные из двух или большего числа кодов, меньших по размеру и более простых. Составные коды могут быть либо систематически-сверточными, либо блочными. Идея турбокодов состоит в том, чтобы единожды кодировать данные с помощью кодера 1, в некотором роде зашифровать порядок выходных битов, известных в приемнике, а затем кодировать эти биты вторым кодером. Передаются, соответственно, дважды закодированные биты. В приемнике процесс декодирования осуществляется в обратном порядке. Первое декодирование в соответствии с кодером 2, а второе декодирование в соответствии с кодером 1. Между двумя процессами декодирования операция скремблирования также происходит в обратном порядке. Возможность провести процесс декодирования повторно делает турбокод уникальным. Второй составной декодер хранит в себе адреса ошибок, оставшиеся от первого. При повторном обращении к первому декодеру сохраняются адреса ошибок, оставшиеся от второго декодера. Скремблирование или чередование операций гарантирует, что ошибки, содержащиеся в одном из декодеров, будут видимы на другом декодере. Для того чтобы максимально увеличить эффективность, процесс декодирования обычно повторяется несколько раз. Причина в том, что ошибка может возникнуть не только в информационном бите, но и в любом из проверочных, а местоположение ошибки неизвестно. Каждая итерация приближает к правильному ответу, выдавая новые метрики правдоподобия и приближая декодер к исходному закодированному значению. Однако получение 100%-ной достоверности для каждого слова требует большого количества времени, поэтому итоговая производительность декодирования будет варьироваться в зависимости от количества итераций. Для оптимальной работы итерационного процесса каждый составной декодер должен принимать метрики максимального правдоподобия (аналоговой обработки) и генерировать программируемый выходной сигнал, в соответствии с вероятностью нахождения каждого бита в закодированной последовательности. N‑выходные показатели учитывают избыточность кода, а также n‑программируемый входной сигнал. Декодер с использованием программируемого входного сигнала и генерации программируемого выходного сигнала уникален для турбокодов и значительно увеличивает сложность составных декодеров. Принцип работы турбокода, где с выхода одного декодера подается входной сигнал на следующий декодер, в чем-то напоминает работу турбокомпрессора в двигателях внутреннего сгорания. Турбокомпрессор использует выхлопные газы двигателя (выход) для питания вентилятора турбины (вход), усиливая тем самым подачу воздуха. Таким образом объясняется наличие термина «турбо» в названии технологии турбокода. Турбокоды — это циклично декодируемые коды. Технология турбокода наилучшим образом иллюстрируется на примере, где в качестве составных кодов используются блочные коды. Рассмотрим расширенный кода Хемминга (8,4), изображенный на схеме на рис. 3. Этот код использует четыре информационных бита, вычисляет 4 бит четности добавляет их к информационным битам для создания 8‑битного кодового слова для передачи: I1.1 I1.2 I1.3 I1.4 PH1.1 PH1.2 PH1.3 PH1.4 и т. д.

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

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