Помехоустойчивое кодирование в стандартах передачи цифрового телевидения: DVB-Т1, -T2, -S2, -С2 и DTMB

Работа по созданию стандарта передачи телевидения высокой четкости по эфирным спутниковым и кабельным каналам началась в 80-е годы прошлого столетия в Англии.

Стандарты цифрового телевидения

В табл. 1 приведены основные характеристики цифровых стандартов телевидения. 

Стандарт DVB-T2

Основные технические характеристики стандарта:

  •  Диапазон рабочих частот – 470–862 МГц.
  •  Выходная мощность передатчиков – 10…10 000 Вт.
  •  Охлаждение передатчиков жидкостное и воздушное.
  •  Ошибки BER — 10-11…-10-13
  •  Ошибки MER, db < 35.

Главным преимуществом стандарта DVB-T2 (T2) по сравнению с DVB-T1 (T1) является то, что на одной несущей передатчика можно будет передавать три программы телевидения высокой четкости и дополнительные независимые каналы физического уровня PLP. Таким образом, количество передаваемых каналов увеличится. Мощность передатчиков снизится в 5–8 раз. Увеличивается QAM до 256. Добавляются режимы 16K, 32K, FFT. Полоса приема телевизоров останется прежней – 8 МГц.

Изменится архитектура построения предварительной обработки цифрового сигнала. При передаче цифрового телевидения будут применяться помехоустойчивые коды – BCH и LDPC, исправляющие 10–12 ошибок.(Русское название кодов BCH: Боуза – Чоудхури – Хоквингема, БЧХ, и код с низкой плотностью проверки на четность – Density Parity Check Codes, LDPC). Эти стандарты ориентированы на прием транспортного потока MPEG-2.

В диаграмме несущих применяется вращение констелляционного созвездия. (Constellation Diagram). Оно повышает устойчивость сигнала при эфирном распространении. Каждая координата точки обрабатывается в модуляторе отдельно друг от друга.

Все передатчики цифрового телевидения будут строиться только на транзисторах (до 6,8 кВт с воздушным охлаждением). В системе эфирного вещания применяется только дециметровый диапазон радиоволн, что позволит увеличить количество передатчиков в сети. Резервирование улучшится, КПД повысится. Они имеют свое констелляционное созвездие, скорость кодирования PLP существует двух типов: А – для одного дополнительного канала и B – для нескольких каналов. Данные собираются в потоки, называемые кадрами BB, определяемыми параметрами модуляции и кодирования. Поток BBFRAME модулируется, синхронизируется [12]. Применяется прямая коррекция ошибок FEC: каждый кадр BB переводит в кадр из Nidpc битов. Схема предварительной обработки каналов представлена на рис. 1. 

На рис. 5 представлена субсистема кодирования. Внутренний поток поступает из BBFRAME. Каждый BBFRAME (Kbch) заполняется битами внешнего кода BCH, входящего в субсистему FEC-кодека, генерируемого битами Nidpc FECFRAME. Биты четности BBFRAME идут вместе с информационными битами [2, 5, 6, 12].

Модуляция

Применяется OFDM-модуляция с защитным интервалом. Каждый символ передается большим количеством ортогональных несущих, модулированных одновременно по фазе и амплитуде. Длина защитного интервала выбирается в зависимости от расчетной протяженности эфирного тракта. Более длинные защитные интервалы требуются в одноча-стотных сетях, где сигналы от соседних передатчиков могут приходить на приемник со значительным запаздыванием. Новые режимы 16K и 32K увеличивают число ортоканальных несущих, а абсолютная величина защитного интервала сохраняется. 

Значение отношения сигнала к шуму C/N зависит от вида модуляции (рис. 3). При модуляциях цифровой сигнал кодируется после перемежателя в виде комплексных канальных символов (несущих) в синфазную составляющую I и квадратурную Q, несущих m-информацию в зависимости от вида модуляции. Подробная работа стандарта представлена в [1, 12].

Стандарт DVB-S2

Он предназначен для передачи цифрового телевидения по спутниковым каналам.

В стандарте DVB-S2 модуляция осуществляется в четырех вариантах – QPSR, 8PSK, 16APSK и 32APSK (рис. 3). Две точки созвездия, размещенные в каждом квадранте, отображают один символ сигнала с верхним приоритетом. Наложение сигнала DVB-S2 осуществляется сдвигом символов в констелляционном поле по окружности с определенным углом наклона. Такой сигнал может передаваться ретранслятором, работающим в режиме, близком к насыщению. 

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

В зависимости от выбранного режима помехоустойчивого кодирования и схемы модуляции уровень сигнал/шум, позволяющий принять сигнал на приемной стороне, колеблется от — 2,4 дБ (при модуляции QPSK и FEC с относительной скоростью 1/4) до +16 дБ (32 APSK и FEC 9/10). Эти значения справедливы для Гауссового канала и идеального демодулятора. При условии допустимости BER на уровне 10Е-7 энергетика сигнала превышает предел Шеннона всего на 0,7–1,2 дБ. Новый стандарт DVB-S2 обеспечивает повышение скорости передачи полезной информации на 20–35%.

Стандарт DVB-C2

Стандарт DVB-C2 предназначен для передачи цифрового телевидения по кабельным каналам [15]. Максимальная скорость входного потока 38,1 Мбит/c. Модуляция 4095QAM позволяет повысить эффективность использования спектра. Помехоустойчивый код – BCH c Nidpc = 64 800 со скоростью LDPC от 1/2 до 8/9. Новый стандарт DVB-S2 обеспечивает повышение скорости передачи полезной информации на 20–35%.

Стандарт DTM-T

В стандарте Китая – DTMB применяется внешний код BCH (772.752).

Внутренний – LDPC со скоростью 4, 6, 8. Это сделано для того, чтобы можно было принимать телевидение на телевизоры в движущемся объекте со скоростью 200 км/ч [11].

Допустимой BER на уровне 10Е-7 энергетика сигнала превышает предел Шеннона всего на 0,7–1,2 дБ.

Японские стандарты цифрового телевидения ISDB-T и ISDB-S2.

В стандарте ISDB-T максимальная модуляция – 64QAM, полоса 6 МГц. Применяется помехоустойчивый сверточный и Рида – Соломона 204, 188, 16 коды. Исправляют 8 ошибок. Модуляция – QPSK.

В стандарте ISDB-S используется в качестве помехоустойчивого внешнего кода укороченный код Рида – Соломона: 64, 84, 8 и сверточный. Применяется пять видов модуляции для разных скоростей свер-точного кода [12].

Американский стандарт цифровоготелевидения ATSK

Передает один канал телевидения высокой четкости HDTV с числом активных строк 1080. Ширина и высота экрана должны быть 16:9. Входной поток C = 27 Мбит/с. Используется 8-уровне-вая модуляция с частично подавленной полосой – 8VSB. Внутренний код – треллисный с пространственной избыточностью. Код Рида – Соломона: 207, 187, 20. Исправляет 10 ошибок. С = 19,39 Мбит/c.

Помехоустойчивое кодирование

Уже 50 лет первым помехоустойчивым кодом называют код Хэмминга. Коротко рассмотрим его основные характеристики.

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

Код Хемминга – это один из первых помехоустойчивых кодов, исправляющих одну или несколько ошибок. Он является блочным кодом. Кратко напомним основные параметры кода Хемминга:

  •  n – длина в битах кодового слова, n=2m-1;
  •  k – число информационных битов, k=2m-1-1;
  •  M – число проверочных разрядов, m=-k;
  •  T – число ошибок (или dmin – расстояние по Хеммингу или de – дистанция по Евклиду).

Код исправляет единичные ошибки. Для исправления пакетов ошибок применяют систему перемежения. Идея метода заключатся в рассеянии символов кодового слова. Символы должны находиться друг от друга на таком расстоянии, чтобы быть подверженными независимым замираниям [1, 2, 12]. При независимых замираниях пораженные символы будут принадлежать к разным кодовым словам. Появляется возможность с помощью исходного кода исправлять ошибки. В литературе известны некоторые виды пере-межения. В нем кодовые слова размещаются в виде строк прямоугольной матрицы, а их считывание осуществляется по столбцам (рис. 4). 

ПримечаниеСпособ перехода от максимального расстояния по Хеммингу dmin к дистанции de по Евклиду в теории кодирования не найден.

В помехоустойчивые коды всегда вводятся избыточные биты n-k (redundant bits). Они используются как средство контроля (биты четности – parity bits, контрольные биты – check bits). Отношение числа избыточных битов к числу информационных (n-k)/k называются избыточностью (redundancy) кода. Отношение числа битов данных к общему числу бит-k/n – степень кодирования (code rate). Максимальная величина избыточного кодирования кода не должна превышать T= r/1-r, где r = r-k/n. [2]

Детектор приемника должен начать работу после приема первого символа кодовой последовательности.

Кодер источника u заменяет на своем выходе информационные слова u кодовым словом v. Приемник производит обратное преобразование. В результате на декодер поступает двоичное принятое слово – r. 

Кодер двоичного блока (n, k) отображает множество 2k возможных двоичных слов в множестве 2х n мерных кодовых слов.

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

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

При кодировании есть понятие: хороший код. Хорошим кодом называется такой код, который обладает наибольшим числом информационных символов при фиксированном значении кода и минимальном расстоянии dmin.

Циклическим кодом называется код, множество кодовых комбинаций которого представляется совокупностью многочленов степени n-1 и менее, делящихся на некоторый многочлен G(x) степени n-k, являющийся сомножителем бинома Xn +1.

При операциях с циклическими кодами кодовое слово B = bn-1, bn-2 …b1b0 ) представляют в виде многочлена B(X) степени <n-1, где Х — абстрактная переменная, а коэффициенты при степенях переменных этого многочлена — символы кодового слова поля Галуа.

B(x) = bn-1xn-1 + bn-2xn-2 + b1x+ b01.

Многочлен g(x) принято называть порождающим или образующим многочленом циклического кода.

Проверочная матрица определяется как: H(x) = (xn+1)/g(x) [8-10] Для кода Хемминга (7,4)

ПримечаниеМногочлен Xn+1 делится на Xm тогда и только тогда, когда n делится на m.

Коды, в которых возможно исправление ошибок, называются совершенными. Многочлен P(x) степени m называется неприводимым в поле GF(2), если он не делится ни на какой многочлен с коэффициентами из GF(2), степени меньше m, но больше 0.

Неприводимый многочлен P(x) называется примитивным, если наименьшая степень n, при которой многочлен Xn+1 делится на многочлен без остатка, равна n = 2m-1.

Блочные коды создаются на основе порождающей матрицы G(x) или по порождающему многочлену g(x).

В этих кодах каждое кодовое слово представляется полиномом, коэффициент которого является элементом кодового слова.

В состав помехоустойчивого кода Хемминга (n, k, t) входят только те кодовые слова, чьи полиномы делятся на один и тот же полином g(x) степени n-k. Этот полином называется порождающим. C(x) = a (x) g(x). Степень полинома проверяется по проверочной матрице H(x).

G(x). Ht (x) = 0 свидетельствует об отсутствии ошибок, a(x) не превышает k-1.

Контроль ошибок определяется с помощью синдромов:

Синдром — это результат проверки четности, выполненный над сигналом r для определения его принадлежности к заданному набору слов. При отсутствии ошибок синдром равен нулю.

Процесс кодирования блокового кода состоит в разбиении информационной последовательности на сообщения длины k и отображении этих сообщений в кодовых словах. C = C0, C1…Cn-1. Длина слова определяется как С = UG.

Информационные биты размещаются всегда в начале каждого слова. (Xn-1, Xn-2, Xn-3 последние n-k Xn=r=1, Xn-k-2, Xn-k-3 будут проверочными).

Проверочный многочлен — H(x) = (xn+1)/g(x).

Обнаружение ошибок декодирования блочных кодов широко представлено в [1, 3-6]. Двоичные коды Хемминга 2m-1; 2m-m-1 могут быть построены на основе корней а примитивного элемента поля GF(2m ). α2m-2, α2m-3…α.

Коды BCH

Описание работы этого кода мы возьмем из [12], это соответствует созданию кодексов для вышеупомянутых стандартов [9-11].

Коды BCH в отличие от других блочных кодов задаются через корни порождающего полинома g(x) степени n-k.

Циклический код BCH длины n над полем GF(q) называется кодом BCH c конструктивным расстоянием 5, если для некоторого целого числа b 0, его порождающий многочлен равен:

то есть GF(g)-полином над полем такой, что элементы αb, αb+1, αb+2, αb, являются его корнями. Следовательно, корнями будут все сопряженные с αb+δ-2, по степени 2 элементы поля.

Коды ВСН, длина которых составляет порядка нескольких сотен бит, превосходят своим качеством все другие блочные коды с той же длиной блока и степенью кодирования. G (х) = НОК{}, то есть GF(g)-ncwniHOM над полем такой, что элементы являются его корнями. Следовательно, корнями будут все сопряженные с α по степени 2 элементы поля.

Циклический код ВСН строится на основе расширенного поля GF(2m). Корни его α, α2, где α — примитивный элемент поля GF(2m) обладает минимальном расстоянием dmin, не меньшим S+1. Следовательно, код ВСН является циклическим кодом и его порождающий полином имеет 2t последовательных корней для элементов полей.

Описание построения кодовых слов в кодах ВСН и LDPC дано в [1, 7, 8, 12].

В проекте DVB-T2 основываются на полях Галуа GF(216) — длинная последовательность; короткая — GF(214). Последовательность кода ВСН входит в код LDPC, который обеспечивает многоуровневую звездную диаграмму на выходе. Каждый полном циклического корректирующего кода может быть представлен в виде полиномов с меньшими степенями:

F(x) = (x-β1)(x-β2)…(x-βk), где β являются корнями полинома F(x).

Порождающий полином g(x) можно представить в виде корней β.

Многочлен минимальной степени m(β) = 0 называется неприводимым.

Если многочлен с f(b) = 0 делится на m(β), то он будет минимальным многочленом.

Многочлен Х2m-1+1 имеет своими корнями все 2m-1 ненулевых элементов GF(2m).

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

Известны примитивные и непримитивные коды BCH. К непримитивным относятся коды Рида — Соломона.

Примитивные коды BCH.исправляют t ошибок n = gm — 1 над полем Галуа GF(g).

В непримитивном коде BCH элемент α заменяется на β поля GF(gm) и длина блока составит -β над полем Галуа GF(g).

Для любых целых положительных чисел m t0≤n/2 существует код BCH длиной n = 2m — 1, исправляющий все комбинации из t0, содержащие не более mt0 проверочных символов.

В коде BCH ошибки определяются номерами позиции. На основании его определяют синдром ошибок [6-8, 12]. Таким образом, порождающий многочлен двоичного кода имеет вид

а длина кода n равна:

Конструктивное кодовое расстояние равно 2td+1.

Нижняя граница BCH будет d2l+1, если многочлен п(ч) имеет последова-тельныt корни: αb, αb+1… αb+2.

Декодирование ВСН-кодов

Декодирование BCH-кодов осуществляется в приемники его декодерами.

Сигнал с помехой в эфире поступает на приемник: r(x) = v(x) +e(x) или r(x) = cx(x)g(x)+ S(x), где S(x) — синдром ошибки.

Существует в настоящее время ряд алгоритмов декодирования циклических кодов.

Общим для всех блочных является то, что схема составляется из двух ветвей (каналов).

В главной ветви находится сам декодер — n-разрядный регистр. Во второй (сигнальный канал L1) — находятся определители синдромов ошибок и блок их исправления.

Выходы обоих каналов идут на схему сложения по модулю 2. Результирующий поток подлежит дальнейшей обработке. Схема декодера приведена на рис. 7 [6]. 

Главным принципом при декодировании BCH в стандарте DVB-T2 является использование элементов позиций кодового слова в порядке коэффициентов ассоциированного многочлена.

Номер декодирования внутри FECFRAME определяется как:

где Nidpc – номер кода LDPC

Emat – номер I матрицы битов четно-сти.

C0de – скорость кода (бит/с).

FcikP – частота декодера блока.

Pdec – номер внутри декодера (в Q = 360).

αdtc – эффективный фактор декодера.

Позиции ошибок [6-8, 12] могут быть найдены из решения системы уравнений в поле GF(2m), эти уравнения можно получить, введя многочлен ошибок e(x) и учитывая нули кода для b≤j≤b+2tg — 1.

Синдромы определены как значения принятого полинома r(x) в нулях кода.

Они вычисляются путем деления полученного многочлена на g(x).

Синдромы определяют как значения принятого полинома r(x) в нулях кода:

Многочлен локатора ошибок:

Архитектура BCH кодов представлена на рис. 6, 7. 

Многочлен локатора ошибок

При вычислении синдромов необходимо вначале вычислить значение принятого полинома в нулях кода.

Известен ряд методов решений этого уравнения [2, 12].

Архитектура BCH-кодов представлена на рис. 6.

Коды LDPC

Коды LDPC — это коды с низкой плотностью проверок на четность [3, 6-8, 12] с размерами M и N, где N — число битов, M — число проверок в кодовом слове. Код LDPC — это код, проверочная матрица N которого размерности MxN, содержит dc M единиц в каждом столбце и d<N единиц в каждой строке. Эти коды и алгоритмы их решения были предложены Р. Галлагером. Основная идея переходов информационных кодов в коды LDPC представлена на рис. 7. С учетом их обработки в специально выделенном сигнальном канале L последовательность процесса основывается на демодуляции декодером PLP.

Временной демодулятор interleaving в сигнал L1.

  •  Демодуляция L1-pre в BPSK.
  •  Демодуляция L1-post.
  •  Демодуляция FEC, прокалывание большей части коротких символов.

Информационные коды Kbh, образующие внешнее кодовое слово (M = mkdch-1, mkdc-2, …m1, mo), переходят в кодер LDPC FEC – (Nipc – Kidpc), внутреннего слова LDPC I = (i0, i1,…iNbhc-1) = (mKdch-1, mKdch-2…m1, m0, dNdch=Kdch-1, dNdch= Kdch-2,…d1, d0) — эквивалент кодовому слову полинома C(x) = XNbch-Kbch m(x)+d(x).

Внутренний кодер FEC FRAMA образует разницу четности битов:

для каждого блока информационных битов. Принято, что P0 = P1 =…PNidpc-Kidpc = 0.

Аккумуляция первого информационного бита с таким же номером бита четности должна в сумме по модулю 2 дать 0. Это означает, что ошибки нет.

Внешние биты, подключенные к нулевым вместе с битами четности, образуют биты I [13]. Способ построения матрицы H заключается в делении слов на группы по Q = 360 бит. Номера четных бит прокалываются и не передаются дальше.

Номер ошибочно переданного бита определяется на основе ряда вычислений.

1. Определение группы четности.

где 0≤Ngr≤Nidpc-Kidps.

2. Nпрок четных битов определяется как Pπ0, Рππ1 где π — задержка, определяемая скоростью кода.

Здесь πр — постоянный оператор про-калывателя для скорости кода внешнего модулятора.

3. Определение битов четности для группы прокола Pπ = N-360xNp.

Нулевые биты (Kbch — Ksig) удаляются без передачи. Разрешающее слово информационного бита следует за 168 BCH и (Nidpc-Kpun), битами четности LDPC.