Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В теории информации , турбо - кода (первоначально на французском Turbocodes ) представляют собой класс высокопроизводительного исправления ошибок (FEC) коды разработаны около 1990-91, но впервые опубликованного в 1993 году они были первыми практические коды вплотную подойти максимально канал пропускная способность или предел Шеннона , теоретический максимум для кодовой скорости, при котором надежная связь все еще возможна при определенном уровне шума. Турбокоды используются в мобильной связи 3G / 4G (например, в UMTS и LTE ) и в спутниках ( дальний космос ). коммуникации, а также другие приложения, в которых разработчики стремятся обеспечить надежную передачу информации по каналам связи с ограниченной полосой пропускания или задержкой при наличии искажающего данные шума. Турбокоды конкурируют с кодами проверки на четность с низкой плотностью (LDPC), которые обеспечивают аналогичную производительность.

Название «турбокод» возникло из-за контура обратной связи, используемого при обычном декодировании турбокода, который был аналогичен обратной связи по выхлопу, используемой для турбонаддува двигателя . Хагенауэр утверждал, что термин турбо-код является неправильным, поскольку в процессе кодирования нет обратной связи. [1]

История [ править ]

Основная заявка на патент для турбокодов была подана 23 апреля 1991 года. В патентной заявке Клод Берроу указан как единственный изобретатель турбокодов. Подача патента привела к получению нескольких патентов, в том числе патента США 5,446,747 , срок действия которого истек 29 августа 2013 г.

Первой публичной статьей по турбо-кодам была « Кодирование и декодирование с исправлением ошибок, близкое к пределу Шеннона: турбо-коды ». [2] Этот документ был опубликован в 1993 г. в Трудах Международной конференции по коммуникациям IEEE. Документ 1993 года был сформирован из трех отдельных документов, которые были объединены из-за нехватки места. В результате слияния газета перечислила трех авторов: Берру , Главье и Титимайшима (из Télécom Bretagne, бывшего ENST Bretagne , Франция). Однако из исходной заявки на патент ясно, что Берроу является единственным изобретателем турбо-кодов и что другие авторы статьи предоставили материал, отличный от основных концепций. [ неправильный синтез ]

Турбокоды были настолько революционными на момент своего появления, что многие эксперты в области кодирования не поверили полученным результатам. Когда производительность была подтверждена, произошла небольшая революция в мире кодирования, которая привела к исследованию многих других типов итеративной обработки сигналов.

Первым классом турбокода был параллельный каскадный сверточный код (PCCC). С момента появления оригинальных параллельных турбокодов в 1993 году были обнаружены многие другие классы турбокодов, включая последовательные версии последовательных конкатенированных сверточных кодов и коды с повторным накоплением . Методы итеративного турбодекодирования также применялись к более традиционным системам FEC, включая сверточные коды с коррекцией Рида – Соломона, хотя эти системы слишком сложны для практической реализации итерационных декодеров. Турбо-эквализация также вытекала из концепции турбо-кодирования.

В дополнение к турбокодам Берроу также изобрел рекурсивные систематические сверточные коды (RSC), которые используются в примерной реализации турбокодов, описанных в патенте. Турбокоды, которые используют коды RSC, кажутся более эффективными, чем турбокоды, которые не используют коды RSC.

До турбокодов лучшими конструкциями были последовательные конкатенированные коды, основанные на внешнем коде исправления ошибок Рида – Соломона в сочетании с внутренним сверточным кодом короткой длины с ограничениями, декодированным по Витерби , также известным как коды RSV.

В более поздней статье Берроу отнесся к интуиции «Дж. Баттейла, Дж. Хагенауэра и П. Хохера, которые в конце 80-х годов подчеркнули интерес к вероятностной обработке». Он добавляет, что « Р. Галлагер и М. Таннер уже представили методы кодирования и декодирования, общие принципы которых тесно связаны», хотя необходимые вычисления в то время были непрактичными. [3]

Пример кодировщика [ править ]

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

Эта реализация кодировщика отправляет три подблока битов. Первый субблок - это m- битовый блок данных полезной нагрузки. Второй подблок - это n / 2 битов четности для данных полезной нагрузки, вычисленных с использованием рекурсивного систематического сверточного кода (кода RSC). Третий подблок - это n / 2 битов четности для известной перестановки данных полезной нагрузки, снова вычисленной с использованием кода RSC. Таким образом, с полезной нагрузкой отправляются два избыточных, но разных подблока битов четности. Полный блок имеет m + n битов данных с кодовой скоростью m / ( m + n ) . перестановкаданных полезной нагрузки выполняется устройством, называемым перемежителем .

Аппаратно этот кодер турбокода состоит из двух идентичных кодеров RSC, С 1 и С 2 , как показано на рисунке, которые соединены друг с другом с использованием схемы конкатенации, называемой параллельной конкатенацией :

На рисунке M - регистр памяти. Линия задержки и перемежитель вынуждают входные биты d k появляться в разных последовательностях. На первой итерации входная последовательность d k появляется на обоих выходах кодера, x k и y 1k или y 2k из-за систематичности кодера. Если кодеры C 1 и C 2 используются в n 1 и n 2 итерациях, их скорости соответственно равны

Декодер [ править ]

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

Перемежитель, установленный между двумя декодерами, используется здесь для рассеивания пакетов ошибок, поступающих на выходе. Блок DI - это модуль демультиплексирования и вставки. Он работает как переключатель, перенаправляя входные биты в один момент и в другой. В выключенном состоянии, он питается как и входы с битами (нулями).

Рассмотрим канал AWGN без памяти и предположим, что на k -й итерации декодер получает пару случайных величин:

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

Избыточная информация демультиплексируется и отправляется через DI в (когда ) и (когда ).

дает мягкое решение; то есть:

и доставляет его . называется логарифмом отношения правдоподобия (LLR). - апостериорная вероятность (APP) бита данных, которая показывает вероятность интерпретации принятого бита как . Принятие во внимание LLR приводит к трудному решению; т.е. декодированный бит.

Известно, что алгоритм Витерби не может рассчитать APP, поэтому его нельзя использовать в . Вместо этого используется модифицированный алгоритм BCJR . Для этого подходит алгоритм Витерби .

Однако изображенная структура не является оптимальной, поскольку использует только надлежащую часть доступной избыточной информации. Для улучшения конструкции используется петля обратной связи (см. Пунктирную линию на рисунке).

Подход мягкого решения [ править ]

Интерфейс декодера выдает целое число для каждого бита в потоке данных. Это целое число является мерой того, насколько вероятно, что бит равен 0 или 1, и также называется мягким битом . Целое число может быть взято из диапазона [-127, 127], где:

  • −127 означает «конечно 0»
  • −100 означает «очень вероятно 0»
  • 0 означает «это может быть либо 0, либо 1»
  • 100 означает "очень вероятно 1"
  • 127 означает "конечно 1"

Это вводит вероятностный аспект в поток данных от внешнего интерфейса, но он передает больше информации о каждом бите, чем просто 0 или 1.

Например, для каждого бита внешний интерфейс традиционного беспроводного приемника должен решить, находится ли внутреннее аналоговое напряжение выше или ниже заданного порогового уровня напряжения. Для декодера турбокода внешний интерфейс будет обеспечивать целочисленную меру того, насколько далеко внутреннее напряжение от заданного порога.

Чтобы декодировать m + n -битовый блок данных, интерфейс декодера создает блок мер правдоподобия с одной мерой правдоподобия для каждого бита в потоке данных. Есть два параллельных декодеров, один для каждого из п / 2 четности -битный субблоков. Оба декодера используют подблок вероятностей m для данных полезной нагрузки. Декодер, работающий над вторым субблоком четности, знает перестановку, которую кодер использовал для этого субблока.

Решение гипотез для поиска битов [ править ]

Ключевым нововведением турбокодов является то, как они используют данные вероятности для согласования различий между двумя декодерами. Каждый из двух сверточных декодеров генерирует гипотезу (с полученными вероятностями) для шаблона из m битов в подблоке полезной нагрузки. Битовые комбинации гипотез сравниваются, и, если они различаются, декодеры обмениваются полученными вероятностями, которые они имеют для каждого бита в гипотезах. Каждый декодер включает полученные оценки правдоподобия из другого декодера для генерации новой гипотезы для битов в полезной нагрузке. Затем они сравнивают эти новые гипотезы. Этот итеративный процесс продолжается до тех пор, пока два декодера не выдвинут одну и ту же гипотезу для m- битного шаблона полезной нагрузки, обычно за 15–18 циклов.

Можно провести аналогию между этим процессом и решением кроссвордов, таких как кроссворд или судоку . Рассмотрим частично завершенный, возможно, искаженный кроссворд. Два решателя головоломки (декодера) пытаются решить эту задачу: у одного есть только «нисходящие» подсказки (биты четности), а у другого - только «поперечные» подсказки. Для начала оба решателя угадывают ответы (гипотезы) на свои собственные подсказки, отмечая, насколько они уверены в каждой букве (бит полезной нагрузки). Затем они сравнивают записи, обмениваясь ответами и рейтингами доверия друг с другом, замечая, где и чем они отличаются. Основываясь на этих новых знаниях, они оба придумывают обновленные ответы и рейтинги уверенности, повторяя весь процесс, пока не придут к одному и тому же решению.

Производительность [ править ]

Турбокоды работают хорошо благодаря привлекательной комбинации случайного появления кода в канале вместе с физически реализуемой структурой декодирования. На турбокоды влияет пол ошибок .

Практические приложения с использованием турбокодов [ править ]

Телекоммуникации:

  • Турбокоды широко используются в стандартах мобильной телефонии 3G и 4G ; например, в HSPA , EV-DO и LTE .
  • MediaFLO , система наземного мобильного телевидения от Qualcomm .
  • Взаимодействие канал по спутниковой связи систем, такие как DVB-RCS [4] и DVB-RCS2 .
  • Последнее НАСА миссия , такие как Mars Reconnaissance Orbiter использование турбо - коды в качестве альтернативы коррекции ошибок Рида-Соломона - декодер Витербите коды.
  • IEEE 802.16 ( WiMAX ), стандарт беспроводной городской сети, использует блочное турбо-кодирование и сверточное турбо-кодирование.

Байесовская формулировка [ править ]

С точки зрения искусственного интеллекта , турбо-коды можно рассматривать как пример зацикленного распространения убеждений в байесовских сетях . [5]

См. Также [ править ]

  • Сверточный код
  • Алгоритм Витерби
  • Декодирование с мягким решением
  • Перемежитель
  • Алгоритм BCJR
  • Код проверки на четность с низкой плотностью
  • Последовательные каскадные сверточные коды
  • Турбо-эквалайзер
  • Прямое исправление ошибок

Ссылки [ править ]

  1. ^ Joachim Хагенауэр, Joachim; и другие. «Итеративное декодирование двоичных блочных и сверточных кодов» (PDF) . Архивировано из оригинального (PDF) 11 июня 2013 года . Проверено 20 марта 2014 . CS1 maint: discouraged parameter (link)
  2. ^ Берру, Клод; Главье, Ален; Thitimajshima, Punya, Ошибка предела Шеннона - исправление , получено 11 февраля 2010 г. CS1 maint: discouraged parameter (link)
  3. ^ Берра, Клод, В десяти-летний турбо коде ввода в эксплуатацию , Bretagne, Франция , извлекаться 11 февраля 2 010 CS1 maint: discouraged parameter (link)
  4. ^ Цифровое видеовещание (DVB); Канал взаимодействия для спутниковых распределительных систем , ETSI EN 301 790, V1.5.1, май 2009 г.
  5. ^ МакЭлис, Роберт Дж .; Маккей, Дэвид Дж. К .; Cheng, Юнг-Фу (1998), "Turbo декодирования как экземпляр Перла "распространения вера" алгоритм" (PDF) , IEEE Journal в отдельных областях , в связи , 16 (2): 140-152, DOI : 10,1109 / 49,661103 , ISSN 0733-8716 .  

Дальнейшее чтение [ править ]

Публикации [ править ]

  • Баттейл, Жерар. «Концептуальная основа для понимания турбокодов». Журнал IEEE по избранным областям коммуникаций 16.2 (1998): 245–254.
  • Брейза, Мэтью Ф. и др. «20 лет турбокодирования и принципов энергосбережения для беспроводных приложений с ограниченным энергопотреблением». IEEE Communications Surveys & Tutorials 18.1 (2016): 8–28.
  • Гарсон-Боркес, Рональд, Шарбель Абдель Нур и Катрин Дуйяр. «Улучшение турбокодов для 5G с помощью перемежителей с ограничением четности». Турбокоды и итерационная обработка информации (МНТЦ), 9-й Международный симпозиум 2016 г. IEEE, 2016.

Внешние ссылки [ править ]

  • «Завершение идеального кода» , IEEE Spectrum, март 2004 г.
  • «Турбо-код UMTS и эффективная реализация декодера, подходящая для программно-определяемых радиостанций» ( Международный журнал беспроводных информационных сетей )
  • Дана Маккензи (2005), «Доведи это до предела», New Scientist , 187 (2507): 38–41, ISSN  0262-4079 .( предварительный просмотр , копия )
  • «Нажимая предел» , статья в журнале Science News о разработке и происхождении турбокодов.
  • Международный симпозиум по турбо-кодам
  • Coded Modulation Library , библиотека с открытым исходным кодом для моделирования турбо-кодов в Matlab.
  • "Turbo Equalization: Principles and New Results" , статья IEEE Transactions on Communications об использовании сверточных кодов совместно с выравниванием каналов.
  • IT ++ Главная страница IT ++ является мощным C ++ Library , которая , в частности , опорам турбо коды
  • Публикации Дэвида Маккея о турбокодах
  • Домашняя страница AFF3CT ( набор инструментов для быстрого исправления ошибок) для моделирования высокоскоростных турбо-кодов в программном обеспечении
  • Турбо-код доктора Сильви Керуэдан и доктора Клода Берру (scholarpedia.org).
  • Эталонный дизайн 3GPP LTE Turbo .
  • Оцените производительность BER турбокода в AWGN (MatLab).
  • Параллельное каскадное сверточное кодирование: турбо-коды (MatLab Simulink)