Открыть сервис

Турбокоды

Турбокоды — это класс высокоэффективных корректирующих кодов, используемых в цифровой связи и хранении данных для обнаружения и исправления ошибок, возникающих при передаче информации по зашумленным каналам. Они основаны на принципе параллельного каскадирования двух или более систематических сверточных кодов, разделенных перемежителем, и итеративном алгоритме декодирования с мягким решением, который называется декодированием с распространением доверия или алгоритмом BCJR (Бала—Коке—Джелинека—Равива). Турбокоды были впервые представлены в 1993 году группой французских исследователей (Клод Берру, Ален Главиё и Пунья Тхитимаджсима) и произвели революцию в теории кодирования, приблизившись к пределу Шеннона — теоретическому максимуму пропускной способности канала связи. Их название происходит от принципа работы турбонаддува в двигателях внутреннего сгорания, где обратная связь усиливает мощность; в декодере турбокода итерации между компонентными декодерами последовательно улучшают оценку переданных данных.

История

Предпосылки и открытие

До появления турбокодов основными методами помехоустойчивого кодирования были сверточные коды с декодированием по алгоритму Витерби и блоковые коды (например, коды Рида—Соломона или БЧХ). Однако все они имели ограничения: для достижения высокой надежности требовалась большая избыточность, что снижало скорость передачи. Теоретический предел Шеннона, установленный в 1948 году, казался недостижимым на практике. В 1993 году на Международной конференции по связи в Женеве Берру, Главиё и Тхитимаджсима представили работу «Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes», где описали новый метод, позволяющий работать на расстоянии до 0,5 дБ от предела Шеннона при умеренной сложности декодирования. Это вызвало огромный интерес и привело к бурному развитию теории итеративного декодирования.

Развитие и стандартизация

В 1990-е годы турбокоды были адаптированы для спутниковой связи (стандарт DVB-RCS) и мобильных сетей. В 2000-е годы они стали основой для канального кодирования в стандартах 3G (UMTS/WCDMA) и 4G (LTE), где используются турбокоды с длиной блока до 6144 бит. В 2010-е годы для 5G NR были разработаны низкоплотностные коды с проверкой на четность (LDPC), которые частично вытеснили турбокоды в каналах данных, но турбокоды остаются в управляющих каналах 5G. В системах глубокого космоса (например, миссия NASA «Mars Reconnaissance Orbiter») турбокоды применяются для обеспечения надежной связи на огромных расстояниях.

Принцип работы

Кодирование

Турбокодер состоит из двух или более компонентных кодеров (обычно рекурсивных систематических сверточных кодеров, RSC), работающих параллельно. Исходная последовательность битов (информационная часть) подается на первый кодер напрямую, а на второй — через перемежитель, который переставляет биты в псевдослучайном порядке. Каждый кодер генерирует проверочные биты (избыточность). На выходе передаются: исходные информационные биты (систематическая часть) и проверочные биты от обоих кодеров. Таким образом, кодовая скорость может быть, например, 1/3 (один информационный бит на три переданных). Для повышения скорости может использоваться выкалывание (puncturing) — удаление части проверочных битов.

Декодирование

Декодер турбокода — итеративный. Он состоит из двух компонентных декодеров, каждый из которых реализует алгоритм BCJR (также известный как алгоритм MAP — Maximum A Posteriori). На вход каждого декодера поступают: мягкие значения (логарифмические отношения правдоподобия, LLR) от демодулятора, а также априорная информация от другого декодера. Первый декодер обрабатывает принятую последовательность, используя априорные сведения (изначально равные нулю), и вычисляет внешнюю информацию (экстринсик) — прирост достоверности, который не зависит от собственных априорных данных. Эта внешняя информация после перемежения подается на второй декодер как априорная. Второй декодер, в свою очередь, вычисляет свою внешнюю информацию, которая после обратного перемежения возвращается к первому. Процесс повторяется несколько итераций (обычно 4–8), пока оценки не сойдутся к стабильному решению. После последней итерации принимается жесткое решение по знаку LLR (положительный — бит «1», отрицательный — «0»). Ключевое свойство — чем больше итераций, тем точнее декодирование, но растет задержка и вычислительная сложность.

Характеристики и особенности

Преимущества

Недостатки

Применение

Мобильная связь

Турбокоды являются обязательным элементом канального кодирования в стандартах 3G (UMTS) и 4G (LTE). В LTE используются турбокоды с длиной блока до 6144 бит и кодовыми скоростями от 1/3 до 5/6. В 5G NR турбокоды применяются в каналах управления (например, физический канал управления восходящей линии связи, PUCCH), в то время как для каналов данных используются LDPC-коды.

Спутниковая и космическая связь

Стандарты DVB-S2 (спутниковое телевидение) и DVB-RCS (обратный канал) включают турбокоды. В системах связи с космическими аппаратами (например, миссии NASA и ESA) турбокоды обеспечивают надежную передачу на расстояния в миллионы километров при крайне низких отношениях сигнал/шум.

Беспроводные локальные сети и другие стандарты

Турбокоды используются в стандарте IEEE 802.16 (WiMAX) и в некоторых системах цифрового радиовещания (DAB). В проводных системах (например, DSL) они применяются реже из-за меньшей зашумленности канала.

Сравнение с другими кодами

Сверточные коды

Классические сверточные коды с декодированием Витерби проще в реализации и имеют меньшую задержку, но значительно уступают турбокодам по корректирующей способности (отставание от предела Шеннона составляет 2–3 дБ).

LDPC-коды

Низкоплотностные коды с проверкой на четность (LDPC) также приближаются к пределу Шеннона и имеют более низкий «ошибка пола» при больших длинах блока. Они быстрее декодируются (используют разреженные матрицы) и лучше подходят для каналов с высокой скоростью (например, 5G NR, Wi-Fi 6). Однако турбокоды проще в реализации для коротких блоков и имеют более предсказуемое поведение при малом числе итераций.

Коды Рида—Соломона

Эти блоковые коды эффективны против пакетов ошибок (burst errors), но не могут достичь предела Шеннона и требуют большей избыточности. Их часто комбинируют с турбокодами (каскадные схемы) для снижения «ошибка пола».

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →