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

QC-LDPC

QC-LDPC (Quasi-Cyclic Low-Density Parity-Check, квазициклический код с малой плотностью проверок на чётность) — это класс линейных блоковых кодов коррекции ошибок, являющийся подмножеством LDPC-кодов. Отличительной особенностью QC-LDPC является структура их проверочной матрицы, которая состоит из циклических сдвигов единичных или нулевых матриц, что обеспечивает высокую эффективность кодирования и декодирования при реализации в аппаратном и программном обеспечении.

История

Коды с малой плотностью проверок на чётность (LDPC) были впервые предложены Робертом Галлагером в 1963 году в его докторской диссертации. Однако из-за высокой вычислительной сложности алгоритмов декодирования того времени и ограниченных возможностей полупроводниковой техники, они не получили широкого практического применения на протяжении нескольких десятилетий. В 1990-х годах интерес к LDPC-кодам возродился после работ Дэвида Маккея и Радлара Нила, которые показали, что итеративные алгоритмы декодирования (например, алгоритм распространения доверия) позволяют достичь производительности, близкой к пределу Шеннона.

Квазициклические LDPC-коды (QC-LDPC) стали развитием этой идеи. В начале 2000-х годов исследователи, в том числе Томас Ричардсон и Рудигер Урбанке, обратили внимание на то, что LDPC-коды с регулярной структурой, основанной на циклических сдвигах, могут быть реализованы с меньшими аппаратными затратами и более высокой скоростью, чем коды с произвольной (случайной) проверочной матрицей. Это привело к включению QC-LDPC в ряд промышленных стандартов, начиная с 2000-х годов.

Определение и структура

QC-LDPC-код определяется своей проверочной матрицей H размера \( m \times n \), где \( m \) — количество проверок на чётность, а \( n \) — длина кодового слова. Матрица H строится из квадратных подматриц (блоков) размера \( Z \times Z \), где \( Z \) — целое число, называемое размером циклического сдвига (или фактором расширения). Каждый блок является либо нулевой матрицей, либо циклически сдвинутой единичной матрицей.

Формально, пусть \( I \) — единичная матрица размера \( Z \times Z \). Тогда циклический сдвиг \( I \) на \( p \) позиций вправо (или влево) обозначается как \( I^p \). Если \( p = 0 \), то \( I^0 = I \). Если \( p = -1 \) (или другое специальное значение), то блок является нулевой матрицей \( \mathbf{0}_{Z \times Z} \). Таким образом, проверочная матрица QC-LDPC-кода имеет вид:

\[ H = \begin{pmatrix} I^{p_{1,1}} & I^{p_{1,2}} & \cdots & I^{p_{1,n_b}} \\ I^{p_{2,1}} & I^{p_{2,2}} & \cdots & I^{p_{2,n_b}} \\ \vdots & \vdots & \ddots & \vdots \\ I^{p_{m_b,1}} & I^{p_{m_b,2}} & \cdots & I^{p_{m_b,n_b}} \end{pmatrix} \]

где \( m_b = m / Z \) — количество блоков по вертикали, \( n_b = n / Z \) — количество блоков по горизонтали, а \( p_{i,j} \) — целые числа от \(-1\) до \( Z-1 \), определяющие сдвиг.

Свойства структуры

  • Цикличность: Код называется квазициклическим, потому что любое циклическое кодовое слово, сдвинутое на \( Z \) позиций, также является кодовым словом. Это свойство упрощает реализацию кодеров и декодеров.
  • Регулярность: QC-LDPC-коды могут быть как регулярными (каждая строка и каждый столбец матрицы H имеют одинаковое количество единиц), так и нерегулярными. Однако на практике часто используются нерегулярные коды для достижения лучшей производительности.
  • Плотность: Матрица H остаётся разреженной (малая плотность единиц), так как большинство блоков являются нулевыми, а ненулевые блоки содержат ровно \( Z \) единиц.

Классификация

QC-LDPC-коды можно классифицировать по нескольким признакам:

По типу матрицы сдвигов

  • Двоичные QC-LDPC: Элементы матрицы сдвигов \( p_{i,j} \) принимают значения \(-1\) (нулевой блок) или \( 0 \ldots Z-1 \). Это наиболее распространённый тип.
  • Недвоичные QC-LDPC: Элементы матрицы сдвигов могут быть не только числами, но и элементами конечного поля \( GF(q) \), где \( q > 2 \). Такие коды могут обеспечивать лучшую корректирующую способность, но сложнее в реализации.

По способу построения

  • Случайные QC-LDPC: Матрица сдвигов генерируется с помощью псевдослучайных чисел, но с учётом ограничений на длину циклов (girth) в графе Таннера.
  • Алгебраические QC-LDPC: Матрица сдвигов строится на основе алгебраических структур, таких как конечные поля, циклические группы или комбинаторные конструкции (например, латинские квадраты). Это позволяет гарантировать отсутствие коротких циклов (длиной 4) и упрощает анализ.
  • Прототипные (protograph-based) QC-LDPC: Сначала строится небольшая базовая матрица (протограф), а затем она расширяется с помощью циклических сдвигов. Этот метод широко используется в стандартах.

Применение

QC-LDPC-коды нашли широкое применение в системах связи и хранения данных благодаря своей эффективности и простоте реализации. Основные области применения:

Стандарты связи

  • DVB-S2 и DVB-S2X (цифровое спутниковое телевидение): Используются QC-LDPC-коды с длиной кодового слова до 64800 бит для обеспечения высокой помехоустойчивости.
  • IEEE 802.11n/ac/ax (Wi-Fi): В стандарте Wi-Fi 5 (802.11n) и более поздних версиях применяются QC-LDPC-коды с длиной 648, 1296 или 1944 бит.
  • IEEE 802.16e (WiMAX): Используются QC-LDPC-коды с длиной от 576 до 2304 бит.
  • 5G NR (New Radio): В стандарте 5G используются QC-LDPC-коды для каналов передачи данных (PDSCH, PUSCH) с длиной кодового слова до 8448 бит. Для каналов управления применяются полярные коды.
  • CCSDS (Консультативный комитет по космическим системам данных): Для космической связи (например, с МКС или спутниками) рекомендованы QC-LDPC-коды с длиной 1024, 4096 или 16384 бит.

Хранение данных

  • NAND Flash-память: Многие современные твердотельные накопители (SSD) и карты памяти используют QC-LDPC-коды для коррекции ошибок, возникающих из-за износа ячеек памяти. Например, в контроллерах от компаний Samsung, Micron и Western Digital.
  • Магнитные жёсткие диски (HDD): В некоторых моделях HDD, особенно с высокой плотностью записи (HAMR, MAMR), применяются QC-LDPC-коды для повышения надёжности.

Оптические сети

  • ITU-T G.709 (OTN — Optical Transport Network): Используются QC-LDPC-коды для коррекции ошибок в оптических каналах связи со скоростью до 400 Гбит/с и выше.

Характеристики и производительность

QC-LDPC-коды обладают рядом характеристик, которые делают их привлекательными для практического использования:

  • Высокая корректирующая способность: При достаточно большой длине кодового слова (например, 64800 бит) QC-LDPC-коды могут работать на расстоянии менее 1 дБ от предела Шеннона для канала с аддитивным белым гауссовским шумом (AWGN).
  • Эффективность декодирования: Итеративные алгоритмы декодирования (например, алгоритм распространения доверия, Belief Propagation) имеют сложность, линейно зависящую от длины кодового слова, что позволяет декодировать со скоростью до нескольких гигабит в секунду в аппаратных реализациях.
  • Низкая задержка: Благодаря структуре QC-LDPC, декодер может обрабатывать блоки данных параллельно, что снижает задержку по сравнению с последовательными декодерами (например, для турбокодов).
  • Простота реализации: Квазициклическая структура позволяет использовать простые сдвиговые регистры для кодирования, а не сложные матричные операции. Это снижает площадь кристалла и энергопотребление.

Недостатки

  • Чувствительность к коротким циклам: В графе Таннера QC-LDPC-кода могут возникать циклы длины 4, которые ухудшают производительность итеративного декодирования. Для устранения этой проблемы требуется тщательное проектирование матрицы сдвигов.
  • Ограниченная гибкость: Для каждой длины кодового слова и скорости кода требуется своя матрица сдвигов, что может усложнить адаптацию к различным условиям канала.

Примеры

QC-LDPC в стандарте 5G NR

В стандарте 5G NR (3GPP TS 38.212) определены два базовых графа (Base Graph 1 и Base Graph 2) для QC-LDPC-кодов. Каждый базовый граф представляет собой матрицу размера \( m_b \times n_b \), где \( m_b = 46 \) для BG1 и \( m_b = 42 \) для BG2, а \( n_b = 68 \) и \( n_b = 52 \) соответственно. Размер циклического сдвига \( Z \) может принимать значения от 2 до 384, что позволяет адаптировать длину кодового слова к различным сценариям (от 256 до 8448 бит). Матрица сдвигов для каждого \( Z \) задаётся в таблицах стандарта.

QC-LDPC в DVB-S2

В стандарте DVB-S2 (ETSI EN 302 307) используются QC-LDPC-коды с длиной кодового слова 64800 бит (нормальный режим) и 16200 бит (короткий режим). Скорости кода варьируются от 1/4 до 9/10. Проверочная матрица строится из блоков размером \( Z = 360 \) для нормального режима и \( Z = 90 \) для короткого режима. Матрица сдвигов является фиксированной и приведена в приложении к стандарту.

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

  • QC-LDPC-коды являются частным случаем так называемых «квазициклических кодов» (Quasi-Cyclic Codes), которые изучались ещё в 1960-х годах, но их связь с LDPC-кодами была установлена только в конце 1990-х.
  • В 2016 году QC-LDPC-коды были выбраны для стандарта 5G NR вместо турбокодов, которые использовались в 4G LTE, из-за их лучшей производительности при высоких скоростях передачи данных.
  • Аппаратные реализации QC-LDPC-декодеров в современных чипах (например, в ASIC для 5G) могут достигать пропускной способности до 100 Гбит/с при энергопотреблении менее 1 Вт.

Источники

  • 3GPP TS 38.212: «NR; Multiplexing and channel coding» (v. 17.0.0, 2022).
  • ETSI EN 302 307: «Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications» (v. 1.2.1, 2009).
  • IEEE Std 802.11-2020: «IEEE Standard for Information Technology—Telecommunications and Information Exchange between Systems—Local and Metropolitan Area Networks—Specific Requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications».
  • R. Gallager, «Low-Density Parity-Check Codes», IRE Transactions on Information Theory, vol. 8, no. 1, pp. 21–28, 1962.
  • D. MacKay, «Good Error-Correcting Codes Based on Very Sparse Matrices», IEEE Transactions on Information Theory, vol. 45, no. 2, pp. 399–431, 1999.
  • T. Richardson and R. Urbanke, «Efficient Encoding of Low-Density Parity-Check Codes», IEEE Transactions on Information Theory, vol. 47, no. 2, pp. 638–656, 2001.
  • S. Lin and D. Costello, «Error Control Coding: Fundamentals and Applications», 2nd ed., Pearson, 2004.
  • CCSDS 131.1-O-2: «Low Density Parity Check Codes for Use in Near-Earth and Deep Space Applications», 2007.

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

На главную BFOmetr →