Выпуск #8/2024
С.Л.Портной, С.Е.Никитин, А.Д.Волошин, А.А.Муляр
Сравнение производительности и помехоустойчивости МППЧ-кодов стандартов DVB-S2X и 5G NR
Сравнение производительности и помехоустойчивости МППЧ-кодов стандартов DVB-S2X и 5G NR
Просмотры: 1177
DOI: 10.22184/2070-8963.2024.124.8.32.38
Для реализации конвергентной системы, интегрирующей спутниковую и мобильную связь, необходимо применять сложные методы канального кодирования. В статье рассматривается применение кодов класса МППЧ в стандартах DVB-S2X и 5G NR.
Для реализации конвергентной системы, интегрирующей спутниковую и мобильную связь, необходимо применять сложные методы канального кодирования. В статье рассматривается применение кодов класса МППЧ в стандартах DVB-S2X и 5G NR.
Теги: 5g nr standard. low-density parity-check codes dvb-s2x standard satellite and mobile communications integration интеграция спутниковой и мобильной связи стандарт 5g nr. коды с малой плотностью проверок на четность стандарт dvb-s2x
Сравнение производительности и помехоустойчивости МППЧ-кодов стандартов
DVB-S2X и 5G NR
С.Л.Портной, д.т.н., проф. Московского института электроники и математики им. А. Н.Тихонова НИУ ВШЭ, научный консультант ООО "РадиоГигабит" / sportnoy@hse.ru,
С.Е.Никитин, ст. преподаватель МИЭМ НИУ ВШЭ, младший инженер-исследователь ООО "РадиоГигабит" / snikitin@hse.ru,
А.Д.Волошин, магистрант НИУ ВШЭ, стажер ООО "РадиоГигабит" / advoloshin@edu.hse.ru,
А.А.Муляр, студент НИУ ВШЭ, стажер ООО "РадиоГигабит" / aamulyar@edu.hse.ru
УДК 621.391, DOI: 10.22184/2070-8963.2024.124.8.32.38
Для реализации конвергентной системы, интегрирующей спутниковую и мобильную связь, необходимо применять сложные методы канального кодирования. В статье рассматривается применение кодов класса МППЧ в стандартах DVB-S2X и 5G NR.
Введение
В связи с появлением глобальных спутниковых систем, обеспечивающих широкополосный доступ в интернет (Starlink, OneWeb и др.), появился острый интерес к созданию конвергентной системы, интегрирующей спутниковую и мобильную связь. Для практической реализации подобных систем необходимо применять сложные методы канального кодирования. Одним из оптимальных решений в этой области являются коды с малой плотностью проверок на четность (МППЧ), которые при правильном проектировании обеспечивают высокую помехоустойчивость с относительно низкой задержкой декодирования.
DVB-S2X. Общие сведения
DVB-S2X (Digital Video Broadcasting − Satellite – Second Generation Extended) [1] − это расширение стандарта DVB-S2 [2], разработанное для улучшения эффективности передачи данных через спутниковые системы. Основная цель данного стандарта − обеспечение высокой скорости передачи данных при минимальных затратах спектрального ресурса и повышенной надежности. Также в этом стандарте используется целый ряд передовых методов кодирования и модуляции, которые обеспечивают высокую устойчивость к помехам и эффективное использование полосы частот. Для достижения этих целей в приемнике DVB-S2X применяется несколько ключевых блоков обработки данных: кодер БЧХ кодер (коды Боуза – Чоудхури – Хоквингема), МППЧ-кодер LDPC, скремблер, перемежитель и модулятор. На рис.1 представлена схема канального кодирования по стандарту DVB-S2X.
Каждый из этих блоков выполняет важные функции для обеспечения надежности и качества связи.
1. БЧХ-кодер исполняет роль «внешнего» кодирования в стандарте DVB-S2X, его идея заключается в предварительном внесении избыточности перед кодированием МППЧ-кодом, что существенно повышает общую эффективность системы. Такое кодирование добавляет дополнительный уровень защиты для блоков данных, что минимизирует вероятность возникновения неустранимых ошибок при последующем декодировании, даже при условии наличия ошибок на выходе МППЧ-декодера.
2. МППЧ-кодер. Коды МППЧ являются мощным инструментом для исправления ошибок, основанным на принципе проверки четности с низкой плотностью. В DVB-S2X этот блок выполняет роль «внутреннего» кодирования и генерирует избыточные биты на основе входных данных, предварительно закодированных БЧХ-кодом. Эти проверочные символы создаются по правилам, определенным в стандарте, и помогают обнаруживать и исправлять ошибки, возникающие при передаче.
3. Скремблер. Скремблирование используется для того, чтобы исключить длинные последовательности одинаковых битов в передаваемом сигнале, которые могут вызвать проблемы при демодуляции и синхронизации. Скремблер смешивает биты данных, чтобы сделать их более случайными, что помогает улучшить производительность системы в условиях реального канала.
4. Перемежитель используется для защиты от пакетных ошибок, которые могут возникнуть из-за временных помех или замираний сигнала. Этот блок перестраивает последовательность данных таким образом, чтобы ошибки, появляющиеся в одном блоке данных, распределялись по более широкому диапазону и могли быть эффективно исправлены с помощью кодов коррекции ошибок, таких как МППЧ- или БЧХ-коды.
5. Модулятор. Модуляция в DVB-S2, включает различные схемы, такие как QPSK, 8PSK, 16APSK и 32APSK, однако в DVB-S2X этот список пополнился схемами pi/2-BPSK, 64APSK, 128APSK и 256APSK, которые позволяют более эффективно использовать частотный спектр. Модуляция выбирается в зависимости от условий канала и уровня шума, что позволяет оптимизировать передачу данных с точки зрения эффективности и надежности.
БЧХ-кодирование
Для кодирования используются следующие генерирующие полиномы, представленные в стандарте DVB-S2 [1] в табл.6а и 6b для размера кадра 64800 и 16200 бит соответственно, а также в стандарте DVB-S2X [2] в табл.7 для размера кадра 32400 бит. Итоговый генерирующий полином получается путем перемножения первых t полиномов для выбранного размера блока из данной таблицы.
Алгоритм кодирования
Для кодирования БЧХ-кодов в стандарте DVB-S2 описана последовательность действий для данной процедуры:
Формирование полинома сообщения: сообщение, которое состоит из информационных битов m = (mkbch-1, mkbch-2,…,m1, m0 ) представляется как полином m(x), где каждый бит соответствует коэффициенту при определенной степени x. Полином сообщения имеет вид m(x) = mkbch-1 · xkbch-1 + mkbch-2 · xkbch-2 +…
+ m1 · x + m0.
Умножение полинома сообщения на xnbch-kbch: для подготовки к добавлению проверочных битов полином сообщения умножается на xnbch-kbch, что сдвигает его на nbch-kbch позиций xnbch-kbch · m(x) = mkbch-2 · xnbch-1 + mkbch-2 · xnbch-2 +…+ m0 · xnbch-kbch.
Деление результата на порождающий полином g(x): полученный полином делится на порождающий полином g(x). Остаток от деления, который обозначается d(x), представляет собой проверочные биты d(x) = dnbch-kbch-1 · xnbch-kbch-1+…+ d1 · x + d0.
Формирование кодового слова: кодовое слово с(х) получается путем сложения полинома сдвинутого сообщения xnbch-kbch ·
m(x) и полинома проверочных битов d(x):
с(х) = xnbch-kbch · m(x) + d(x).
Полученное кодовое слово далее кодируется МППЧ кодом.
МППЧ-кодирование в DVB-S2X
LDPC-коды являются систематическими, поэтому кодируют информационное слово длиной kldpc бит в кодовое слово c(x) длиной nldpc бит, из которых nldpc – kldpc бит являются битами четности p.
c =(i0,i1, …,ikldpc-1, p0, p1, …, pnldpc-kldpc-1).
Параметры, задающие LDPC-код, можно посмотреть в табл.5а и 5b [2] и 4−6 [1].
Задача кодера состоит в том, чтобы определить nldpc- kldpcбитов четности (p0, p1, …, pnldpc-kldpc-1) для каждого блока kldpc информационных битов, (i0, i1, …, ikldpc-1). Сам алгоритм заключается в следующем:
Инициализируем p0 = p1 = … = pnldpc-kldpc-1 = 0.
Накапливаем первый информационный бит i0 по адресам битов четности, указанным в первой строке таблиц в приложении B и С в [2] и B и C в [1].
Для следующих 359 информационных битов im, m = 1, 2, ..., 359 накапливаем im по адресам битов четности {x +(mmod360) · q}mod(nldpc – kldpc), где x обозначает адрес накопителя битов четности, соответствующий первому биту i0, а q – константа, зависящая от скорости кода, указанная в табл.7a и 7b [2] и 8a, 8b и 8c [1].
Для 361-го информационного бита i360 адреса накопителей битов четности приведены во второй строке таблиц из приложений B и С. Аналогичным образом определяются адреса накопителей битов четности для следующих 359 информационных битов im, m = 361, 362, ..., 719, полученные по формуле {x +(m mod 360) · q}mod(nldpc – kldpc), где x обозначает адрес накопителя битов четности, соответствующий информационному биту i360, то есть записи во второй строке таблиц из приложений B и С.
Аналогично, для каждой группы из 360 новых информационных битов используется новая строка из данных таблиц для нахождения адресов накопителей битов четности.
5G NR
Согласно п. 5.3.2 стандарта 3GPP TS 38.212 [3], процесс кодирования МППЧ-кодом состоит из нескольких этапов (см. рис.2), начиная с сегментации кодовых блоков. Затем к сегментированным блокам присоединяется циклический избыточный код (CRC), который служит для обнаружения неверно декодированных блоков. Далее следует кодирование МППЧ, где кодер обрабатывают блоки с использованием квазициклической структуры. Для повышения производительности процесс кодирования включает в себя перемежитель с систематическим приоритетом битов, с числом строк, равным порядку квадратурной амплитудной модуляции (QAM).
Сегментация кодовых блоков и CRC-кодирование
К транспортному блоку добавляется избыточный циклический код с длиной, зависящей от длины транспортного блока. Если длина транспортного блока больше 3824, то используется CRC (БЧХ)-код длиной 24 бита с полиномом (1), в противном случае − 16 бит с полиномом (2).
gCRC24A(D) = D24 + D23 + D18 + D17+ D14+
+ D11 + D10 + D7 + D6 + D5 + D4 + D3 + D + 1. (1)
gCRC16(D) = D16 + D12 + D5 + 1. (2)
После получения длины транспортного блока, доступного для передачи, начинается его сегментация. Если эта длина меньше, чем максимальная длина кодового блока, то сегментация не производится.
Транспортный блок делится на кодовые блоки длиной 22 · ZC при использовании BG1 и 10 · ZC при использовании BG2, где ZC − коэффициент расширения. Процесс нахождения коэффициента расширения описан в стандарте 3GPP TS 38.212 [3]. К каждому кодовому блоку добавляется избыточный циклический код длиной 24 бита с порождающим полиномом (уравнение (3)):
gCRC24B(D) = D24 + D23 + D6 + D5 + D +1. (3)
МППЧ-кодирование в 5G NR
В стандарте канального кодирования системы 5G [3] определен квазициклический МППЧ-код, заданный двумя базовыми матрицами: BG1 и BG2 с размерами 46 × 68 и 42 × 52, соответственно. Эти матрицы имеют следующую структуру:
. (4)
Для BG1:
A: 4 × 22;
E: 4 × 4;
нулевая матрица 4 × 42;
B: 42 × 22;
C: 42 × 4;
I: единичная матрица 42 × 42.
Для BG2:
A: 4 × 10;
E: 4 × 4;
O: нулевая матрица 4 × 38.
B: 38 × 10;
C: 38 × 4;
I: единичная матрица 38 × 38.
Для получения проверочной матрицы из базовой выполняется следующий алгоритм.
Если длина сообщения B больше, чем максимальная длина кодового блока, производится сегментация входной последовательности битов, и к каждому полученному блоку добавляется дополнительная проверка избыточности L длиной 24 бита. Максимальная длина кодового блока равна 8448 бит для BG1 и 3840 бит для BG2.
Для BG1 базовая длина равна 22, а для BG2 базовая длина равна 10 и B> 640, 9 при 560 < B ≤ 640, 8 при 192 < B ≤ 560 и 6 – в остальных случаях.
ZC выбирается из всех наборов табл.1 в зависимости от длины кодового блока таким образом, что:
KB · ZC ≥ K’, (5)
где KB − базовая длина, K’ − длина кодового блока; ZC − коэффициент расширения;
если элемент равен нулю, то он заменяется на нулевую матрицу размером ZC · ZC;
каждый ненулевой элемент базовой матрицы заменяется на матрицу перестановки I(Pi,j) размером ZC · ZC, где матрица получена из единичной матрицы циклическим сдвигом вправо Pi,j раз:
Pi,j = mod(Vi,j, ZC), (6)
где Vi,j – элемент базовой матрицы, соответствующий индексу набора iLS ,
ZC – коэффициент расширения [3].
Для упрощения схемы кодирования используется эффективный алгоритм кодирования без использования порождающей матрицы [4].
Так как базовые графы BG1 и BG2 имеют структуру, описанную уравнением (4), после расширения эта структура сохраняется, но размеры матриц меняются пропорционально ZC В таком случае операция кодирования будет иметь вид:
y=[x E-1 · A · x B · x+C · E-1 · A · x], (7)
где y − закодированный кодовый блок;
x − кодовый блок;
A, B, C, E − части базовой матрицы в соответствии с уравнением (4).
Согласование кодовых скоростей
Обозначим последовательность битов на выходе кодера как y0, y1, y2,… ,yN-1, разбитую на C кодовых блоков. Она записывается в циркулярный буфер длины N. Для каждого кодового блока с порядковым номером r определяется длина выходной последовательности Er:
, (8)
где tbs − длина транспортного блока;
QM − порядок модуляции;
Nlayers − число слоев для пространственного мультиплексирования;
C − количество кодовых блоков;
r − порядковый номер кодового блока.
Затем по табл.1 [3] определяется стартовая позиция в зависимости от версии избыточности rv и выбранного базового графа (BG1 или BG2).
Из битов каждого кодового блока с порядковым номером r выбирается Er битов по правилу:
ek = ymod(k0+j, N), j=0,1, 2,…, N-k0, k=0,1,2,… , Er . (9)
Модуляция
В стандарте 3GPPTS 38.211 [5] описаны все сигнальные созвездия, используемые в 5G: π/2-BPSK, BPSK, QPSK, 16QAM, 64QAM, 256QAM и 1024QAM.
Сравнение производительности МППЧ-кодов стандартов DVB-S2X и 5G NR
Для максимальной репрезентативности сравнения будем использовать модуляцию QPSK, так как она представлена в обоих стандартах. Рассмотрим коды стандарта DVB-S2X с размером кодового блока NORMAL (64800 бит) с кодовыми скоростями 1/2, 1/4, 11/20, 13/45, 2/3, 3/4, 3/5, 5/6, 8/9 и 9/10. Для сравнения возьмем из 5G конфигурацию для PDSCH (Physical downlink shared channel) и будем варьировать параметр IMCS [6], определяющий кодовую скорость и порядок модуляции,в пределах от 0 до 9. В таком случае будет использоваться модуляция QPSK, а длина кодового блока будет принимать значения 17600 или 19200 бит в зависимости от значения IMCS. Итоговые кодовые скорости МППЧ-кода 5G при изменении параметра IMCS в пределах от 0 до 9 следующие: 0,117, 0,153, 0,189, 0,245, 0,3, 0,37, 0,43, 0,514 и 0,588.
Как видно из графиков на рис.5, код из стандарта 5G со скоростью 0,245 превосходит код из DVB-S2X со скоростью 1/4, но остальные кодовые скорости проигрывают в производительности. Также все кривые стандарта 5G обладают более крутым наклоном при кратно меньшей длине кодового блока, что свидетельствует о более удачном проектировании МППЧ-кода в этом стандарте по сравнению с DVB-S2X.
Однако в DVB-S2X, помимо кода МППЧ, также используется внешний БЧХ-код, который позволяет снизить вероятность ошибки и увеличить надежность системы. Сравнение результатов, полученных с использованием полной цепочки кодирования DVB-S2X, с кодированием 5G представлено на рис.6.
Как можно увидеть из рис.5 и 6, использование внешнего БЧХ-кода позволяет добиться выигрыша до 1,8 дБ (DVB-S2X 1/4).
Заключение
Рассмотренные в статье стандарты, использующие МППЧ-кодирование, и по сей день являются актуальными и обеспечивают высокую производительность канального кодирования. Код МППЧ, использующийся в стандарте DVB-S2X, сам по себе не обеспечивает необходимой производительности, однако это компенсируется внешним БЧХ-кодом. МППЧ-код, определенный в стандарте 5G, показывает хорошее быстродействие и высокую производительность, однако проигрывает кодам из DVB-S2X из-за меньшего размера кодового блока.
Одним из наиболее перспективных направлений разработки подобной конвергентной системы может быть использование МППЧ-кодов стандарта 5G с внешним БЧХ-кодом.
Благодарность
Часть данной работы была проведена в рамках выполнения проекта ООО "РадиоГигабит". Авторы выражают признательность Д.Н.Волкову за оказанную помощь в выполнении исследований.
ЛИТЕРАТУРА
ETSI EN 302-307-1 v1.4.1. Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications. Part 1: DVB-S2.
ETSI EN 302-307-2 v1.3.1, Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications. Part 2: DVB-S2 Extensions (DVB-S2X).
3GPP TS 38.212 Multiplexing and channel coding (Release 18). 2023-09-28.
Richardson T.J. and Urbanke R.L. Efficient encoding of low-density parity-check codes // IEEE Transactions on Information Theory. 2001. Vol. 47. No. 2. PP. 638–656.
3GPP TS 38.211. Physical channels and modulation, Release 18. March 2024.
3GPP TS 38.214. Physical layer procedures for data, Release 18. March 2024.
DVB-S2X и 5G NR
С.Л.Портной, д.т.н., проф. Московского института электроники и математики им. А. Н.Тихонова НИУ ВШЭ, научный консультант ООО "РадиоГигабит" / sportnoy@hse.ru,
С.Е.Никитин, ст. преподаватель МИЭМ НИУ ВШЭ, младший инженер-исследователь ООО "РадиоГигабит" / snikitin@hse.ru,
А.Д.Волошин, магистрант НИУ ВШЭ, стажер ООО "РадиоГигабит" / advoloshin@edu.hse.ru,
А.А.Муляр, студент НИУ ВШЭ, стажер ООО "РадиоГигабит" / aamulyar@edu.hse.ru
УДК 621.391, DOI: 10.22184/2070-8963.2024.124.8.32.38
Для реализации конвергентной системы, интегрирующей спутниковую и мобильную связь, необходимо применять сложные методы канального кодирования. В статье рассматривается применение кодов класса МППЧ в стандартах DVB-S2X и 5G NR.
Введение
В связи с появлением глобальных спутниковых систем, обеспечивающих широкополосный доступ в интернет (Starlink, OneWeb и др.), появился острый интерес к созданию конвергентной системы, интегрирующей спутниковую и мобильную связь. Для практической реализации подобных систем необходимо применять сложные методы канального кодирования. Одним из оптимальных решений в этой области являются коды с малой плотностью проверок на четность (МППЧ), которые при правильном проектировании обеспечивают высокую помехоустойчивость с относительно низкой задержкой декодирования.
DVB-S2X. Общие сведения
DVB-S2X (Digital Video Broadcasting − Satellite – Second Generation Extended) [1] − это расширение стандарта DVB-S2 [2], разработанное для улучшения эффективности передачи данных через спутниковые системы. Основная цель данного стандарта − обеспечение высокой скорости передачи данных при минимальных затратах спектрального ресурса и повышенной надежности. Также в этом стандарте используется целый ряд передовых методов кодирования и модуляции, которые обеспечивают высокую устойчивость к помехам и эффективное использование полосы частот. Для достижения этих целей в приемнике DVB-S2X применяется несколько ключевых блоков обработки данных: кодер БЧХ кодер (коды Боуза – Чоудхури – Хоквингема), МППЧ-кодер LDPC, скремблер, перемежитель и модулятор. На рис.1 представлена схема канального кодирования по стандарту DVB-S2X.
Каждый из этих блоков выполняет важные функции для обеспечения надежности и качества связи.
1. БЧХ-кодер исполняет роль «внешнего» кодирования в стандарте DVB-S2X, его идея заключается в предварительном внесении избыточности перед кодированием МППЧ-кодом, что существенно повышает общую эффективность системы. Такое кодирование добавляет дополнительный уровень защиты для блоков данных, что минимизирует вероятность возникновения неустранимых ошибок при последующем декодировании, даже при условии наличия ошибок на выходе МППЧ-декодера.
2. МППЧ-кодер. Коды МППЧ являются мощным инструментом для исправления ошибок, основанным на принципе проверки четности с низкой плотностью. В DVB-S2X этот блок выполняет роль «внутреннего» кодирования и генерирует избыточные биты на основе входных данных, предварительно закодированных БЧХ-кодом. Эти проверочные символы создаются по правилам, определенным в стандарте, и помогают обнаруживать и исправлять ошибки, возникающие при передаче.
3. Скремблер. Скремблирование используется для того, чтобы исключить длинные последовательности одинаковых битов в передаваемом сигнале, которые могут вызвать проблемы при демодуляции и синхронизации. Скремблер смешивает биты данных, чтобы сделать их более случайными, что помогает улучшить производительность системы в условиях реального канала.
4. Перемежитель используется для защиты от пакетных ошибок, которые могут возникнуть из-за временных помех или замираний сигнала. Этот блок перестраивает последовательность данных таким образом, чтобы ошибки, появляющиеся в одном блоке данных, распределялись по более широкому диапазону и могли быть эффективно исправлены с помощью кодов коррекции ошибок, таких как МППЧ- или БЧХ-коды.
5. Модулятор. Модуляция в DVB-S2, включает различные схемы, такие как QPSK, 8PSK, 16APSK и 32APSK, однако в DVB-S2X этот список пополнился схемами pi/2-BPSK, 64APSK, 128APSK и 256APSK, которые позволяют более эффективно использовать частотный спектр. Модуляция выбирается в зависимости от условий канала и уровня шума, что позволяет оптимизировать передачу данных с точки зрения эффективности и надежности.
БЧХ-кодирование
Для кодирования используются следующие генерирующие полиномы, представленные в стандарте DVB-S2 [1] в табл.6а и 6b для размера кадра 64800 и 16200 бит соответственно, а также в стандарте DVB-S2X [2] в табл.7 для размера кадра 32400 бит. Итоговый генерирующий полином получается путем перемножения первых t полиномов для выбранного размера блока из данной таблицы.
Алгоритм кодирования
Для кодирования БЧХ-кодов в стандарте DVB-S2 описана последовательность действий для данной процедуры:
Формирование полинома сообщения: сообщение, которое состоит из информационных битов m = (mkbch-1, mkbch-2,…,m1, m0 ) представляется как полином m(x), где каждый бит соответствует коэффициенту при определенной степени x. Полином сообщения имеет вид m(x) = mkbch-1 · xkbch-1 + mkbch-2 · xkbch-2 +…
+ m1 · x + m0.
Умножение полинома сообщения на xnbch-kbch: для подготовки к добавлению проверочных битов полином сообщения умножается на xnbch-kbch, что сдвигает его на nbch-kbch позиций xnbch-kbch · m(x) = mkbch-2 · xnbch-1 + mkbch-2 · xnbch-2 +…+ m0 · xnbch-kbch.
Деление результата на порождающий полином g(x): полученный полином делится на порождающий полином g(x). Остаток от деления, который обозначается d(x), представляет собой проверочные биты d(x) = dnbch-kbch-1 · xnbch-kbch-1+…+ d1 · x + d0.
Формирование кодового слова: кодовое слово с(х) получается путем сложения полинома сдвинутого сообщения xnbch-kbch ·
m(x) и полинома проверочных битов d(x):
с(х) = xnbch-kbch · m(x) + d(x).
Полученное кодовое слово далее кодируется МППЧ кодом.
МППЧ-кодирование в DVB-S2X
LDPC-коды являются систематическими, поэтому кодируют информационное слово длиной kldpc бит в кодовое слово c(x) длиной nldpc бит, из которых nldpc – kldpc бит являются битами четности p.
c =(i0,i1, …,ikldpc-1, p0, p1, …, pnldpc-kldpc-1).
Параметры, задающие LDPC-код, можно посмотреть в табл.5а и 5b [2] и 4−6 [1].
Задача кодера состоит в том, чтобы определить nldpc- kldpcбитов четности (p0, p1, …, pnldpc-kldpc-1) для каждого блока kldpc информационных битов, (i0, i1, …, ikldpc-1). Сам алгоритм заключается в следующем:
Инициализируем p0 = p1 = … = pnldpc-kldpc-1 = 0.
Накапливаем первый информационный бит i0 по адресам битов четности, указанным в первой строке таблиц в приложении B и С в [2] и B и C в [1].
Для следующих 359 информационных битов im, m = 1, 2, ..., 359 накапливаем im по адресам битов четности {x +(mmod360) · q}mod(nldpc – kldpc), где x обозначает адрес накопителя битов четности, соответствующий первому биту i0, а q – константа, зависящая от скорости кода, указанная в табл.7a и 7b [2] и 8a, 8b и 8c [1].
Для 361-го информационного бита i360 адреса накопителей битов четности приведены во второй строке таблиц из приложений B и С. Аналогичным образом определяются адреса накопителей битов четности для следующих 359 информационных битов im, m = 361, 362, ..., 719, полученные по формуле {x +(m mod 360) · q}mod(nldpc – kldpc), где x обозначает адрес накопителя битов четности, соответствующий информационному биту i360, то есть записи во второй строке таблиц из приложений B и С.
Аналогично, для каждой группы из 360 новых информационных битов используется новая строка из данных таблиц для нахождения адресов накопителей битов четности.
5G NR
Согласно п. 5.3.2 стандарта 3GPP TS 38.212 [3], процесс кодирования МППЧ-кодом состоит из нескольких этапов (см. рис.2), начиная с сегментации кодовых блоков. Затем к сегментированным блокам присоединяется циклический избыточный код (CRC), который служит для обнаружения неверно декодированных блоков. Далее следует кодирование МППЧ, где кодер обрабатывают блоки с использованием квазициклической структуры. Для повышения производительности процесс кодирования включает в себя перемежитель с систематическим приоритетом битов, с числом строк, равным порядку квадратурной амплитудной модуляции (QAM).
Сегментация кодовых блоков и CRC-кодирование
К транспортному блоку добавляется избыточный циклический код с длиной, зависящей от длины транспортного блока. Если длина транспортного блока больше 3824, то используется CRC (БЧХ)-код длиной 24 бита с полиномом (1), в противном случае − 16 бит с полиномом (2).
gCRC24A(D) = D24 + D23 + D18 + D17+ D14+
+ D11 + D10 + D7 + D6 + D5 + D4 + D3 + D + 1. (1)
gCRC16(D) = D16 + D12 + D5 + 1. (2)
После получения длины транспортного блока, доступного для передачи, начинается его сегментация. Если эта длина меньше, чем максимальная длина кодового блока, то сегментация не производится.
Транспортный блок делится на кодовые блоки длиной 22 · ZC при использовании BG1 и 10 · ZC при использовании BG2, где ZC − коэффициент расширения. Процесс нахождения коэффициента расширения описан в стандарте 3GPP TS 38.212 [3]. К каждому кодовому блоку добавляется избыточный циклический код длиной 24 бита с порождающим полиномом (уравнение (3)):
gCRC24B(D) = D24 + D23 + D6 + D5 + D +1. (3)
МППЧ-кодирование в 5G NR
В стандарте канального кодирования системы 5G [3] определен квазициклический МППЧ-код, заданный двумя базовыми матрицами: BG1 и BG2 с размерами 46 × 68 и 42 × 52, соответственно. Эти матрицы имеют следующую структуру:
. (4)
Для BG1:
A: 4 × 22;
E: 4 × 4;
нулевая матрица 4 × 42;
B: 42 × 22;
C: 42 × 4;
I: единичная матрица 42 × 42.
Для BG2:
A: 4 × 10;
E: 4 × 4;
O: нулевая матрица 4 × 38.
B: 38 × 10;
C: 38 × 4;
I: единичная матрица 38 × 38.
Для получения проверочной матрицы из базовой выполняется следующий алгоритм.
Если длина сообщения B больше, чем максимальная длина кодового блока, производится сегментация входной последовательности битов, и к каждому полученному блоку добавляется дополнительная проверка избыточности L длиной 24 бита. Максимальная длина кодового блока равна 8448 бит для BG1 и 3840 бит для BG2.
Для BG1 базовая длина равна 22, а для BG2 базовая длина равна 10 и B> 640, 9 при 560 < B ≤ 640, 8 при 192 < B ≤ 560 и 6 – в остальных случаях.
ZC выбирается из всех наборов табл.1 в зависимости от длины кодового блока таким образом, что:
KB · ZC ≥ K’, (5)
где KB − базовая длина, K’ − длина кодового блока; ZC − коэффициент расширения;
если элемент равен нулю, то он заменяется на нулевую матрицу размером ZC · ZC;
каждый ненулевой элемент базовой матрицы заменяется на матрицу перестановки I(Pi,j) размером ZC · ZC, где матрица получена из единичной матрицы циклическим сдвигом вправо Pi,j раз:
Pi,j = mod(Vi,j, ZC), (6)
где Vi,j – элемент базовой матрицы, соответствующий индексу набора iLS ,
ZC – коэффициент расширения [3].
Для упрощения схемы кодирования используется эффективный алгоритм кодирования без использования порождающей матрицы [4].
Так как базовые графы BG1 и BG2 имеют структуру, описанную уравнением (4), после расширения эта структура сохраняется, но размеры матриц меняются пропорционально ZC В таком случае операция кодирования будет иметь вид:
y=[x E-1 · A · x B · x+C · E-1 · A · x], (7)
где y − закодированный кодовый блок;
x − кодовый блок;
A, B, C, E − части базовой матрицы в соответствии с уравнением (4).
Согласование кодовых скоростей
Обозначим последовательность битов на выходе кодера как y0, y1, y2,… ,yN-1, разбитую на C кодовых блоков. Она записывается в циркулярный буфер длины N. Для каждого кодового блока с порядковым номером r определяется длина выходной последовательности Er:
, (8)
где tbs − длина транспортного блока;
QM − порядок модуляции;
Nlayers − число слоев для пространственного мультиплексирования;
C − количество кодовых блоков;
r − порядковый номер кодового блока.
Затем по табл.1 [3] определяется стартовая позиция в зависимости от версии избыточности rv и выбранного базового графа (BG1 или BG2).
Из битов каждого кодового блока с порядковым номером r выбирается Er битов по правилу:
ek = ymod(k0+j, N), j=0,1, 2,…, N-k0, k=0,1,2,… , Er . (9)
Модуляция
В стандарте 3GPPTS 38.211 [5] описаны все сигнальные созвездия, используемые в 5G: π/2-BPSK, BPSK, QPSK, 16QAM, 64QAM, 256QAM и 1024QAM.
Сравнение производительности МППЧ-кодов стандартов DVB-S2X и 5G NR
Для максимальной репрезентативности сравнения будем использовать модуляцию QPSK, так как она представлена в обоих стандартах. Рассмотрим коды стандарта DVB-S2X с размером кодового блока NORMAL (64800 бит) с кодовыми скоростями 1/2, 1/4, 11/20, 13/45, 2/3, 3/4, 3/5, 5/6, 8/9 и 9/10. Для сравнения возьмем из 5G конфигурацию для PDSCH (Physical downlink shared channel) и будем варьировать параметр IMCS [6], определяющий кодовую скорость и порядок модуляции,в пределах от 0 до 9. В таком случае будет использоваться модуляция QPSK, а длина кодового блока будет принимать значения 17600 или 19200 бит в зависимости от значения IMCS. Итоговые кодовые скорости МППЧ-кода 5G при изменении параметра IMCS в пределах от 0 до 9 следующие: 0,117, 0,153, 0,189, 0,245, 0,3, 0,37, 0,43, 0,514 и 0,588.
Как видно из графиков на рис.5, код из стандарта 5G со скоростью 0,245 превосходит код из DVB-S2X со скоростью 1/4, но остальные кодовые скорости проигрывают в производительности. Также все кривые стандарта 5G обладают более крутым наклоном при кратно меньшей длине кодового блока, что свидетельствует о более удачном проектировании МППЧ-кода в этом стандарте по сравнению с DVB-S2X.
Однако в DVB-S2X, помимо кода МППЧ, также используется внешний БЧХ-код, который позволяет снизить вероятность ошибки и увеличить надежность системы. Сравнение результатов, полученных с использованием полной цепочки кодирования DVB-S2X, с кодированием 5G представлено на рис.6.
Как можно увидеть из рис.5 и 6, использование внешнего БЧХ-кода позволяет добиться выигрыша до 1,8 дБ (DVB-S2X 1/4).
Заключение
Рассмотренные в статье стандарты, использующие МППЧ-кодирование, и по сей день являются актуальными и обеспечивают высокую производительность канального кодирования. Код МППЧ, использующийся в стандарте DVB-S2X, сам по себе не обеспечивает необходимой производительности, однако это компенсируется внешним БЧХ-кодом. МППЧ-код, определенный в стандарте 5G, показывает хорошее быстродействие и высокую производительность, однако проигрывает кодам из DVB-S2X из-за меньшего размера кодового блока.
Одним из наиболее перспективных направлений разработки подобной конвергентной системы может быть использование МППЧ-кодов стандарта 5G с внешним БЧХ-кодом.
Благодарность
Часть данной работы была проведена в рамках выполнения проекта ООО "РадиоГигабит". Авторы выражают признательность Д.Н.Волкову за оказанную помощь в выполнении исследований.
ЛИТЕРАТУРА
ETSI EN 302-307-1 v1.4.1. Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications. Part 1: DVB-S2.
ETSI EN 302-307-2 v1.3.1, Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications. Part 2: DVB-S2 Extensions (DVB-S2X).
3GPP TS 38.212 Multiplexing and channel coding (Release 18). 2023-09-28.
Richardson T.J. and Urbanke R.L. Efficient encoding of low-density parity-check codes // IEEE Transactions on Information Theory. 2001. Vol. 47. No. 2. PP. 638–656.
3GPP TS 38.211. Physical channels and modulation, Release 18. March 2024.
3GPP TS 38.214. Physical layer procedures for data, Release 18. March 2024.
Отзывы читателей
eng



