Ldpc кодирование что установить на роутере
Коды LDPC находят все более широкое применение в приложениях, требующих надежной и высокоэффективной передачи информации по линиям с ограниченной полосой пропускания или обратным каналом в присутствии искажающего шума. Реализация кодов LDPC отстала от других кодов, особенно турбокодов . Срок действия фундаментального патента на турбокоды истек 29 августа 2013 года.
Коды LDPC также известны как коды Галлагера в честь Роберта Г. Галлагера , который разработал концепцию LDPC в своей докторской диссертации в Массачусетском технологическом институте в 1960 году.
Содержание
История
Коды LDPC, впервые разработанные Галлагером в 1963 году, были непрактичными для реализации, пока его работа не была заново открыта в 1996 году. Турбокоды , еще один класс кодов , приближающихся к емкости, открытый в 1993 году, стали предпочтительной схемой кодирования в конце 1990-х годов, используемой для такие приложения, как Deep Space Network и спутниковая связь . Однако достижения в области кодов проверки на четность с низкой плотностью показали, что они превосходят турбокоды с точки зрения минимального уровня ошибок и производительности в диапазоне более высоких кодовых скоростей , в результате чего турбокоды лучше подходят только для более низких кодовых скоростей.
Приложения
В 2003 году код LDPC в стиле нерегулярного повторного накопления (IRA) превзошел шесть турбокодов и стал кодом с исправлением ошибок в новом стандарте DVB-S2 для спутниковой передачи цифрового телевидения . Отборочная комиссия DVB-S2 сделала оценки сложности декодера для предложений Turbo Code, используя гораздо менее эффективную архитектуру последовательного декодера, чем архитектуру параллельного декодера. Это вынудило предложения Turbo Code использовать размеры кадра порядка половины размера кадра предложений LDPC.
В 2008 годе LDPC бить сверточные турбокоды как прямая коррекция ошибок системы (ПИО) для МСЭ-Т G.hn стандарта. G.hn предпочел коды LDPC турбокодам из-за их меньшей сложности декодирования (особенно при работе со скоростями передачи данных, близких к 1,0 Гбит / с), а также потому, что предложенные турбокоды демонстрируют значительный минимальный уровень ошибок в желаемом диапазоне работы.
Коды LDPC также используются для 10GBASE-T Ethernet, который передает данные со скоростью 10 гигабит в секунду по кабелям витой пары. С 2009 года коды LDPC также являются частью стандарта Wi-Fi 802.11 в качестве дополнительной части 802.11n и 802.11ac в спецификации PHY с высокой пропускной способностью (HT).
Некоторые системы OFDM добавляют дополнительную внешнюю коррекцию ошибок, которая исправляет случайные ошибки («минимальный уровень ошибок»), которые преодолевают внутренний код коррекции LDPC даже при низкой частоте ошибок по битам . Например: код Рида-Соломона с кодированной модуляцией LDPC (RS-LCM) использует внешний код Рида-Соломона. Стандарты DVB-S2, DVB-T2 и DVB-C2 используют внешний код кода BCH для устранения остаточных ошибок после декодирования LDPC.
Оперативное использование
Коды LDPC функционально определяются разреженной матрицей проверки на четность . Эта разреженная матрица часто генерируется случайным образом с учетом ограничений разреженности - конструкция кода LDPC обсуждается позже . Эти коды были впервые разработаны Робертом Галлагером в 1960 году.
Ниже приведен фрагмент графа примера кода LDPC с использованием обозначения графа факторов Форни . В этом графе n узлов переменных в верхней части графа соединены с ( n - k ) узлами ограничений в нижней части графика.
Снова игнорируя строки, выходящие за пределы изображения, матрица проверки на четность, представляющая этот фрагмент графа, имеет вид
В этой матрице каждая строка представляет одно из трех ограничений проверки на четность, а каждый столбец представляет один из шести битов принятого кодового слова.
В этом примере восемь кодовых слов можно получить, поместив матрицу проверки на четность H в эту форму с помощью основных операций со строками в GF (2) : [ - п Т | я п - k ] -P ^ | I_ \ end >>
Шаг 2: Ряд 1 добавлен к ряду 3.
Шаг 3: строки 2 и 3 меняются местами.
Шаг 4: Ряд 1 добавляем к ряду 3.
Из этого порождающая матрица G может быть получена как (с учетом того, что в частном случае это двоичный код ), или, в частности: [ я k | п ] I_ | P \ end >> п знак равно - п
Наконец, умножая все восемь возможных 3-битных строк на G , получают все восемь действительных кодовых слов. Например, кодовое слово для битовой строки «101» получается следующим образом:
где - символ умножения по модулю 2. ⊙
Для проверки, пространство строк G ортогонально H такое, что грамм ⊙ ЧАС Т знак равно 0 = 0>
Битовая строка «101» находится как первые 3 бита кодового слова «101011».
Пример кодировщика
На рисунке 1 показаны функциональные компоненты большинства кодеров LDPC.
Во время кодирования кадра биты входных данных (D) повторяются и распределяются по набору составляющих кодеров. Составляющие кодеры обычно являются накопителями, и каждый накопитель используется для генерации символа четности. Единственная копия исходных данных (S 0, K-1 ) передается с битами четности (P), чтобы составить кодовые символы. S битов от каждого составляющего кодера отбрасываются.
Бит четности может использоваться в другом составляющем коде.
В примере с использованием кода DVB-S2 со скоростью 2/3 размер кодированного блока составляет 64800 символов (N = 64800) с 43200 битами данных (K = 43200) и 21600 битами четности (M = 21600). Каждый составляющий код (контрольный узел) кодирует 16 бит данных, за исключением первого бита четности, который кодирует 8 битов данных. Первые 4680 битов данных повторяются 13 раз (используются в 13 кодах четности), а остальные биты данных используются в 3 кодах четности (нерегулярный код LDPC).
Для сравнения, в классических турбокодах обычно используются два составляющих кода, сконфигурированных параллельно, каждый из которых кодирует весь входной блок (K) битов данных. Эти составные кодеры представляют собой рекурсивные сверточные коды (RSC) средней глубины (8 или 16 состояний), которые разделены перемежителем кода, который перемежает одну копию кадра.
Код LDPC, напротив, использует параллельно множество составляющих кодов (аккумуляторов) низкой глубины, каждый из которых кодирует только небольшую часть входного кадра. Многие составляющие коды можно рассматривать как множество «сверточных кодов» с низкой глубиной (2 состояния), которые связаны посредством операций повтора и распределения. Операции повтора и распределения выполняют функцию перемежителя в турбо-коде.
Возможность более точного управления соединениями различных составляющих кодов и уровнем избыточности для каждого входного бита дает большую гибкость в разработке кодов LDPC, что в некоторых случаях может привести к лучшей производительности, чем турбокоды. Турбо-коды по-прежнему работают лучше, чем LDPC, при низких скоростях кода, или, по крайней мере, конструкция хорошо работающих кодов с низкой скоростью проще для турбо-кодов.
На практике оборудование, которое формирует аккумуляторы, повторно используется в процессе кодирования. То есть, как только первый набор битов четности сгенерирован и биты четности сохранены, то же самое аппаратное накопительное оборудование используется для генерации следующего набора битов четности.
Расшифровка
‹Приведенный ниже шаблон ( необходим эксперт ) рассматривается для удаления. См. Шаблоны для обсуждения, чтобы помочь достичь консенсуса. ›Как и в случае с другими кодами, декодирование с максимальной вероятностью кода LDPC в двоичном симметричном канале является NP-полной проблемой. Оптимальное декодирование NP-полного кода любого полезного размера нецелесообразно.
Однако субоптимальные методы, основанные на итеративном декодировании с распространением убеждений, дают отличные результаты и могут быть практически реализованы. Субоптимальные методы декодирования рассматривают каждую проверку четности, которая составляет LDPC, как независимый код одиночной проверки четности (SPC). Каждый код SPC декодируется отдельно с использованием методов программного ввода -вывода (SISO), таких как SOVA , BCJR , MAP и других их производных. Информация мягкого решения от каждого декодирования SISO перекрестно проверяется и обновляется с помощью других избыточных декодирований SPC того же информационного бита. Затем каждый код SPC снова декодируется с использованием обновленной информации мягкого решения. Этот процесс повторяется до тех пор, пока не будет получено допустимое кодовое слово или не будет исчерпано декодирование. Этот тип декодирования часто называют декодированием суммарного произведения.
Декодирование кодов SPC часто упоминается как обработка «узла проверки», а перекрестная проверка переменных часто упоминается как обработка «узла переменной».
В практической реализации декодера LDPC наборы кодов SPC декодируются параллельно для увеличения пропускной способности.
Напротив, распространение убеждений по каналу двоичного стирания особенно просто, если оно состоит из итеративного удовлетворения ограничений.
Затем эта процедура повторяется. Новое значение четвертого бита теперь можно использовать вместе с первым ограничением для восстановления первого бита, как показано ниже. Это означает, что первый бит должен быть единицей, чтобы удовлетворить крайнему левому ограничению.
Этот результат может быть подтвержден путем умножения исправленного кодового слова r на матрицу проверки на четность H :
Поскольку результатом z ( синдромом ) этой операции является нулевой вектор размером 3 × 1, результирующее кодовое слово r успешно проверяется.
Обновление информации об узле
В последние годы также было проведено много работы по изучению эффектов альтернативных расписаний для обновления переменных-узлов и ограничений-узлов. Первоначальный метод, который использовался для декодирования кодов LDPC, был известен как лавинная рассылка . Этот тип обновления требовал, чтобы перед обновлением узла переменной необходимо было обновить все узлы ограничений, и наоборот. В более поздних работах Вила Касадо и др. были изучены альтернативные методы обновления, при которых переменные узлы обновляются новейшей доступной информацией о проверочных узлах.
Интуиция, лежащая в основе этих алгоритмов, заключается в том, что узлы переменных, значения которых изменяются больше всего, должны быть обновлены в первую очередь. Высоконадежные узлы, величина логарифмического отношения правдоподобия (LLR) которых велика и существенно не меняется от одного обновления к другому, не требуют обновлений с той же частотой, что и другие узлы, знак и величина которых колеблются в более широких пределах. Эти алгоритмы планирования показывают более высокую скорость сходимости и более низкие минимальные уровни ошибок, чем те, которые используют лавинную рассылку. Эти более низкие минимальные уровни ошибок достигаются за счет способности алгоритма информированного динамического планирования (IDS) преодолевать захват наборов близких кодовых слов.
Когда используются алгоритмы планирования без заводнения, используется альтернативное определение итерации. Для ( n , k ) кода LDPC со скоростью k / n полная итерация происходит, когда n переменных и n - k узлов ограничений были обновлены, независимо от порядка, в котором они были обновлены.
Построение кода
Для больших размеров блоков коды LDPC обычно создаются путем предварительного изучения поведения декодеров. Поскольку размер блока стремится к бесконечности, можно показать, что декодеры LDPC имеют порог шума, ниже которого надежно достигается декодирование, а выше которого декодирование не достигается, что в просторечии называется эффектом обрыва . Этот порог можно оптимизировать, найдя наилучшую пропорцию дуг из контрольных узлов и дуг из переменных узлов. Примерный графический подход к визуализации этого порога - диаграмма ВЫХОДА .
Построение конкретного кода LDPC после этой оптимизации делится на два основных типа методов:
- Псевдослучайные подходы
- Комбинаторные подходы
Построение с помощью псевдослучайного подхода основывается на теоретических результатах, которые для большого размера блока случайное построение дает хорошие характеристики декодирования. В общем, псевдослучайные коды имеют сложные кодеры, но псевдослучайные коды с лучшими декодерами могут иметь простые кодеры. Часто применяются различные ограничения, чтобы гарантировать, что желаемые свойства, ожидаемые при теоретическом пределе бесконечного размера блока, возникают при конечном размере блока.
Комбинаторные подходы могут использоваться для оптимизации свойств кодов LDPC небольшого размера или для создания кодов с помощью простых кодировщиков.
Некоторые коды LDPC основаны на кодах Рида – Соломона , например код RS-LDPC, используемый в стандарте 10 Gigabit Ethernet . По сравнению со случайно сгенерированными кодами LDPC, структурированные коды LDPC, такие как код LDPC, используемый в стандарте DVB-S2, могут иметь более простое и, следовательно, более дешевое оборудование - в частности, коды, построенные таким образом, что матрица H является циркулянтной матрицей .
Еще один способ построения LDPC-кодов - использовать конечную геометрию . Этот метод был предложен Y. Kou et al. в 2001.
Коды LDPC против турбокодов
Коды LDPC можно сравнить с другими мощными схемами кодирования, например, с турбокодами. С одной стороны, на производительность турбокодов BER влияют ограничения младших кодов. Коды LDPC не имеют ограничений по минимальному расстоянию, что косвенно означает, что коды LDPC могут быть более эффективными при относительно больших кодовых скоростях (например, 3/4, 5/6, 7/8), чем турбокоды. Однако коды LDPC не являются полной заменой: турбокоды - лучшее решение при более низких скоростях кода (например, 1/6, 1/3, 1/2).
Каждый BBFRAME кадр (Kbch бит) должен быть обработан подсистемой FEC кодирования для формирования FECFRAME кадра (Nldpc бит). Биты проверки на четность (BCHFEC) внешнего систематического BCH кода должны быть добавлены после BBFRAME кадра, а биты проверки на четность (LDPCFEC) внутреннего LDPC кодера должны быть добавлены после поля BCHFEC, как показано на рисунке 12.
Рисунок 12 — Формат данных перед битовым перемежением
(Nldpc = 64 800 бит для стандартного FECFRAME кадра, Nldpc = 16 200 бит для короткого FECFRAME кадра)
В таблице 6(a) приведены параметры кодирования для стандартного FECFRAME кадра (Nldpc = 64 800 бит), а в таблице 6(b) — для короткого FECFRAME кадра (Nldpc = 16 200 бит).
Скорость LDPC кодирования | Размер блока до BCH кодирования Kbch | Размер блока после BCH кодирования Nbch Размер блока до LDPC кодиро;вания Kldpc | Корректирующая способность BCH кода | Nbch—Kbch | Размер блока после LDPC кодирования Nldpc |
---|---|---|---|---|---|
1/2 | 32 208 | 32 400 | 12 | 192 | 64 800 |
3/5 | 38 688 | 38 880 | 12 | 192 | 64 800 |
2/3 | 43 040 | 43 200 | 10 | 160 | 64 800 |
3/4 | 48 408 | 48 600 | 12 | 192 | 64 800 |
4/5 | 51 648 | 51 840 | 12 | 192 | 64 800 |
5/6 | 53 840 | 54 000 | 10 | 160 | 64 800 |
Идентификатор скорости LDPC кодирования | Размер блока до BCH кодирования Kbch | Размер блока после BCH кодирования Nbch Размер блока до LDPC кодирования Kldpc | Корректирующая способность BCH кода | Nbch—Kbch | Эффективная скорость LDPC кодирования Kldpc/16 200 | Размер блока после LDPC кодирования Nldpc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1/4 (смотрите примечание) | 3 072 | 3 240 | 12 | 168 | 1/5 | 16 200 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1/2 | 7 032 | 7 200 | 12 | 168 | 4/9 | 16 200 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3/5 | 9 552 | 9 720 | 12 | 168 | 3/5 | 16 200 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2/3 | 10 632 | 10 800 | 12 | 168 | 2/3 | 16 200 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3/4 | 11 712 | 11 880 | 12 | 168 | 11/15 | 16 200 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4/5 | 12 432 | 12 600 | 12 | 168 | 7/9 | 16 200 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5/6 | 13 152 | 13 320 | 12 | 168 | 37/45 | 16 200 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
g1(x) | 1+x 2 +x 3 +x 5 +x 16 |
g2(x) | 1+x+x 4 +x 5 +x 6 +x 8 +x 16 |
g3(x) | 1+x 2 +x 3 +x 4 +x 5 +x 7 +x 8 +x 9 +x 10 +x 11 +x 16 |
g4(x) | 1+x 2 +x 4 +x 6 +x 9 +x 11 +x 12 +x 14 +x 16 |
g5(x) | 1+x+x 2 +x 3 +x 5 +x 8 +x 9 +x 10 +x 11 +x 12 +x 16 |
g6(x) | 1+x 2 +x 4 +x 5 +x 7 +x 8 +x 9 +x 10 +x 12 +x 13 +x 14 +x 15 +x 16 |
g7(x) | 1+x 2 +x 5 +x 6 +x 8 +x 9 +x 10 +x 11 +x 13 +x 15 +x 16 |
g8(x) | 1+x+x 2 +x 5 +x 6 +x 8 +x 9 +x 12 +x 13 +x 14 +x 16 |
g9(x) | 1+x 5 +x 7 +x 9 +x 10 +x 11 +x 16 |
g10(x) | 1+x+x 2 +x 5 +x 7 +x 8 +x 10 +x 12 +x 13 +x 14 +x 16 |
g11(x) | 1+x 2 +x 3 +x 5 +x 9 +x 11 +x 12 +x 13 +x 16 |
g12(x) | 1+x+x 5 +x 6 +x 7 +x 9 +x 11 +x 12 +x 16 |
g1(x) | 1+x+x 3 +x 5 +x 14 |
g2(x) | 1+x 6 +x 8 +x 11 +x 14 |
g3(x) | 1+x+x 2 +x 6 +x 9 +x 10 +x 14 |
g4(x) | 1+x 4 +x 7 +x 8 +x 10 +x 12 +x 14 |
g5(x) | 1+x 2 +x 4 +x 6 +x 8 +x 9 +x 11 +x 13 +x 14 |
g6(x) | 1+x 3 +x 7 +x 8 +x 9 +x 13 +x 14 |
g7(x) | 1+x 2 +x 5 +x 6 +x 7 +x 10 +x 11 +x 13 +x 14 |
g8(x) | 1+x 5 +x 8 +x 9 +x 10 +x 11 +x 14 |
g9(x) | 1+x+x 2 +x 3 +x 9 +x 10 +x 14 |
g10(x) | 1+x 3 +x 6 +x 9 +x 11 +x 12 +x 14 |
g11(x) | 1+x 4 +x 11 +x 12 +x 14 |
g12(x) | 1+x+x 2 +x 3 +x 5 +x 6 +x 7 +x 8 +x 10 +x 13 +x 14 |
Эквивалентный полином кодового слова равен c(x) = x Nbch– Kbch m(x) + d(x) .
6.1.2 Внутреннее кодирование (LDPC)
LDPC кодер обрабатывает выходные данные внешнего кодирования, I = (i0, i1. iKldpc– 1) , как информационный блок размером Kldpc = Nbch , и осуществляет систематическое кодирование его в кодовое слово Λ размером Nldpc , где:
Параметры LDPC кодирования (Nldpc, Kldpc) приведены в таблице 6.
6.1.2.1 Внутреннее кодирование для стандартного FECFRAME кадра
Задача кодера заключается в определении Nldpc– Kldpc битов четности (p0, p1. pNldpc– Kldpc– 1) для каждого блока из Kldpc информационных бит, (i0, i1. iKldpc) . Данная процедура выглядит следующим образом:
- Инициализация p0 = p1 = p2 = pNldpc– Kldpc– 1 = 0
- Первый информационный бит, i0 суммируется с нарастающим итогом в адресах битов четности, указанных в первой строке таблиц A.1—A.6. Например, для скорости 2/3 (смотрите таблицу A.3), (все суммы в формате полей Галуа второго порядка):
p2255 = p2255 ⊕ i0
p2324 = p2324 ⊕ i0
p2723 = p2723 ⊕ i0
p3538 = p3538 ⊕ i0
p3576 = p3576 ⊕ i0
p6194 = p6194 ⊕ i0 p6700 = p6700 ⊕ i0
p9101 = p9101 ⊕ i0
p10057 = p10057 ⊕ i0
p12739 = p12739 ⊕ i0
p17407 = p17407 ⊕ i0
p21039 = p21039 ⊕ i0 p377 = p377 ⊕ i1
p2315 = p2315 ⊕ i1
p2384 = p2384 ⊕ i1
p2783 = p2783 ⊕ i1
p3598 = p3598 ⊕ i1
p3636 = p3636 ⊕ i1
p6254 = p6254 ⊕ i1 p6760 = p6760 ⊕ i1
p9161 = p9161 ⊕ i1
p10117 = p10117 ⊕ i1
p12799 = p12799 ⊕ i1
p17467 = p17467 ⊕ i1
p21099 = p21099 ⊕ i1
После обработки всех информационных битов окончательные биты четности получаются следующим образом:
-
Последовательно осуществляются следующие операции, начиная с i = 1
6.1.2.2 Внутреннее кодирование для короткого FECFRAME кадра
Kldpc битов, кодированных кодом BCH, для формирования Nldpc битов должны быть подвергнуты систематическому кодированию, описанному в разделе 6.1.2.1 с заменой таблицы 8a на таблицу 8b, а таблиц приложения A на таблицы приложения B.
Скорость кодирования | Qldpc |
---|---|
1/4 | 36 |
1/3 | 30 |
2/5 | 27 |
1/2 | 25 |
3/5 | 18 |
2/3 | 15 |
3/4 | 12 |
4/5 | 10 |
5/6 | 8 |
6.1.3 Битовый перемежитель (для 16-QAM, 64-QAM и 256-QAM)
Выходные данные Λ LDPC кодера должны быть подвергнуты битовому перемежению, которое состоит из перемежения битов четности с последующей процедурой перемежения с закручиванием столбцов. Выходные данные перемежителя битов четности обозначаются U, а выходные данные перемежителя с закручиванием столбцов — V.
В перемежителе битов четности перемежение битов четности происходит согласно формулам:
где Qldpc указана в таблицах 8a и 8b.
Для T2-Lite, при модуляции QPSK только со скоростями кодирования 1/3 и 2/5 применяется только перемежение битов четности (смотрите приложение I).
Конфигурация перемежения с закручиванием столбцов для каждого формата модуляции указана в таблице 9.
Модуляция | Строки Nr | Столбцы Nc | |
---|---|---|---|
Nldpc = 64 800 | Nldpc = 16 200 | ||
16-QAM | 8 100 | 2 025 | 8 |
64-QAM | 5 400 | 1 350 | 12 |
256-QAM | 4 050 | — | 16 |
— | 2 025 | 8 |
В блоке перемежения с закручиванием столбцов биты данных ui из перемежителя битов четности поочередно постолбцово записываются в перемежитель с закручиванием столбцов и поочередно построчно считываются из него (MSB заголовка BBHEADER считывается первым) как показано на рисунке 13, где начальная позиция записи в каждом столбце сдвинута на tc в соответствии с таблицей 10. Данный перемежитель описывается следующим:
Таким образом, для 64-QAM и Nldpc = 64 800 порядок выходных битов перемежителя с закручиванием столбцов будет выглядеть следующим образом:
Более полный список индексов на правой стороне, демонстрирующий все 12 столбцов: 0, 5 400, 16 198, 21 598, 26 997, 32 396, 37 796, 43 195, 48 595, 53 993, 59 392, 64 791, …… 5 399, 10 799, 16 197, 21 597, 26 996, 32 395, 37 795, 43 194, 48 594, 53 992, 59 391, 64 790.
Рисунок 13 — Схема битового перемежения для стандартной длины FECFRAME кадра и 16-QAM
Модуляция | Столбцы Nc | Nldpc | Параметр закручивания tc | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Столбец 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
16-QAM | 8 | 64 800 | 0 | 0 | 2 | 4 | 4 | 5 | 7 | 7 | — | — | — | — | — | — | — | — |
16 200 | 0 | 0 | 0 | 1 | 7 | 20 | 20 | 21 | — | — | — | — | — | — | — | — | ||
64-QAM | 12 | 64 800 | 0 | 0 | 2 | 2 | 3 | 4 | 4 | 5 | 5 | 7 | 8 | 9 | — | — | — | — |
16 200 | 0 | 0 | 0 | 2 | 2 | 2 | 3 | 3 | 3 | 6 | 7 | 7 | — | — | — | — | ||
256-QAM | 16 | 64 800 | 0 | 2 | 2 | 2 | 2 | 3 | 7 | 15 | 16 | 20 | 22 | 22 | 27 | 27 | 28 | 32 |
8 | 16 200 | 0 | 0 | 0 | 1 | 7 | 20 | 20 | 21 | — | — | — | — | — | — | — | — |
Перевод раздела 6.1 «FEC encoding» стандарта ETSI EN 302 755 версии 1.3.1.
Несмотря на схожесть технологий 802.11 a/b/g, 802.11ас и 802.11n/ac/ax , в сетях 802.11n/ac/ax есть некоторые особенности, которые нужно учитывать при мониторинге. Без углубления в технические аспекты стандартов (они доступны для ознакомления в интернете), эта глава рассматривает наиболее эффективные способы мониторинга и требования к оборудованию для сетей 802.11n, 802.11ac и 802.11ax .
Захват пакетов определенного стандарта требует наличия адаптера соответствующего или более нового стандарта. Например, захват пакетов стандарта 802.11ас требует наличия адаптера 802.11ас или 802.11ax. Вы не можете производить захват пакетов стандарта 802.11ac, используя адаптер стандарта 802.11n. Список совместимых адаптеров можно найти на странице загрузки CommView for WiFi на нашем веб-сайте. В зависимости от конфигурации анализируемой беспроводной сети 802.11n/ac/ax, к адаптеру могут быть применимы дополнительные требования. Такие требования подробно описаны ниже.
MIMO, пространственные потоки и Transmit Beamforming
Использование MIMO и технологии Transmit Beamforming (формирование диаграммы направленности) в сетях 802.11n, 802.11ac и 802.11ax – серьезные испытания для беспроводных анализаторов. Такие сети создают очень сложную адаптивную диаграмму мощности сигнала с уклонами и подъемами, иногда составляющими всего несколько сантиметров в объеме. Так как устройство мониторинга пассивно, беспроводная сеть никаким образом не адаптирует сигнал, поскольку просто "не видит" устройство, которое ведет мониторинг. Кроме того, сигнал, передаваемый несколькими антеннами и с высокими PHY-рейтами , сложно перехватить без ошибок CRC. Вышесказанное означает, что, как правило, вам следует быть готовым к значительно большему количеству (в процентном соотношении) поврежденных фреймов в сетях 802.11n , 802.11ас и 802.11ax по сравнению с более старыми сетями 802.11 a/b/g . Это не будет являться проблемой при общем контроле работы беспроводной сети или измерении силы сигнала отдельных устройств, однако если вы анализируете отдельные TCP-потоки или занимаетесь низкоуровневыми проблемами (на уровне пакетов), это может быть затруднительным при значительном количестве поврежденных фреймов.
Для уменьшения влияния этих факторов, специфичных для сетей 802.11n/ac/ax, рассмотрите следующие варианты:
· Найдите наилучшее местоположение ноутбука с запущенной программой CommView for WiFi. Поворачивая или передвигая ноутбук даже на небольшое расстояние (несколько сантиметров), можно очень сильно улучшить или ухудшить качество принимаемого сигнала. Более того, даже положение вашего тела или поднятая рука могут влиять на количество CRC-ошибок.
· Убедитесь, что беспроводные устройства работают не на максимальной скорости. Успешный перехват пакетов на скоростях 100Мб/c и ниже намного более вероятен, нежели при максимальной скорости передачи данных. Хотя на первый взгляд это противоречит интуиции, если ваш ноутбук для мониторинга находится рядом с точкой доступа, удаление клиентов от точки доступа на несколько метров улучшит, а не ухудшит качество мониторинга. Клиент стандарта 802.11ax, расположенный на расстоянии метра или двух от точки доступа, скорее всего, будет передавать и получать пакеты на скорости 720 или 866 Мбит/c , в то время как тот же клиент, удаленный на пять метров, снизит скорость до примерно 200 Мбит/c , что, с точки зрения мониторинга, гораздо лучше.
Важно помнить о том, что возможности вашего адаптера в плане количества поддерживаемых пространственных потоков должны превышать или соответствовать возможностям анализируемой беспроводной сети. Другими словами, вы не сможете перехватить пакеты, посылаемые трехпоточной точкой доступа трехпоточному клиенту, используя адаптер, который поддерживает только один или два пространственных потока (но вы можете перехватывать, например, пакеты, посылаемые от двухпоточной точки доступа к двухпоточному клиенту, используя трехпоточный адаптер). Число поддерживаемых пространственных потоков легко определить, если просмотреть спецификацию адаптера. Например, для устройств стандарта 802.11ac, максимальная поддерживаемая скорость 433 Мбит/с означает однопототочный адаптер, 876 Мбит/с означает двухпототочный адаптер, 1300 Мбит/с означает трехпототочный адаптер.
Технология Channel Bonding (связывание каналов) в диапазоне 2,4 ГГц
В современных беспроводных сетях скорость передачи данных может быть опционально увеличена путем связки двух 20 МГц-каналов за счет технологии Channel Bonding (связки каналов), что дает возможность работы в режиме 40 МГц, т.е. этот режим использует более широкие полосы частот (в сравнении с 20 МГц-режимом 802.11a/b/g сетей). И хотя технически одновременный перехват двух каналов не является проблемой для сетевого анализатора, оборудованного адаптером 802.11n/ac/ax, важно обратить внимание на регуляторную область (regulatory domain) используемого оборудования, который накладывает ограничения на использование частот .
Вкратце, при режиме работы в 40 МГц, частота вторичного канала зависит от частоты первичного. Например, выбор канала №1 означает, что первичный 20-мегагерцовый канал будет работать на частоте канала №1, а вторичный 20-мегагерцовый канал будет работать на частоте канала, расположенного на четыре уровня выше первичного, т.е. на частоте пятого канала. При работе с "высокими" каналами, например 10, или 11, добавление четверки к номеру канала будет означать, что частота вторичного канала выйдет за пределы: в США, например, наибольший номер канала в 2,4 ГГц-диапазоне - 11; в большинстве европейских стран - 13. В этих случаях вторичный канал использует частоту, которая находится в нижнем диапазоне по сравнению с частотой первичного канала. Например, выбор канала №10 на вашем оборудовании будет означать, что первичный 20Мгц-канал будет работать на частоте десятого канала, а вторичный 20-мегагерцовый канал будет работать на частоте канала, который меньше первичного на 4 позиции, т.е. на частоте шестого канала.
Инженер по беспроводным сетям, работающий в различных регионах мира, может столкнуться с проблемой, когда региональные ограничения его оборудования могут не совпасть с ограничениями беспроводной сети, которую нужно проанализировать. Например, беспроводная сеть 802.11n, расположенная на территории Германии и работающая на канале №9, будет использовать "связку" каналов №9 и №13. В то же время, для адаптера беспроводной сети, купленного в Канаде, вторичным каналом в этой ситуации должен быть канал №5. По этой причине при мониторинге вышеуказанной сети адаптер просто "не увидит" 40-мегагерцовые потоки данных в беспроводном анализаторе. Для разрешения этой ситуации мы рекомендуем приобретать оборудование с идентичными ограничениями, либо же включить Втор. канал ниже первичного в режиме 40 MГц на панели Захват в главном окне программы. Когда эта настройка включена, частота вторичного канала, используемая адаптером, будет ниже частоты первичного канала, даже если это не требуют региональные установки адаптера.
Обратите внимание, что некоторые адаптеры, поддерживаемые CommView for WiFi, такие как адаптеры на основе чипсетов Broadcom, не поддерживают связывание каналов и могут перехватывать пакеты только на каналах 20 МГц. Подробно об этом можно прочитать в Технической информации . Мы рекомендуем выбирать один из адаптеров с пометкой "Рекомендуем к использованию", указанных на странице загрузки . Эти адаптеры поддерживают технологию связывания каналов.
Технология Channel Bonding в диапазоне 5 ГГц
Технология Channel Bonding в диапазоне 5 ГГц похожа на Channel Bonding в диапазоне 2,4 ГГц, но число связываемых каналов может доходить до восьми в сетях 802.11ac/ax , что означает, что ширина канала может достигать 160 МГц. В отличие от диапазона 2,4 ГГц, наборы связываемых каналов в диапазоне 5 ГГц строго ограничены стандартом. Например, при режиме работы в 40 МГц канал №52 всегда связан с каналом №56 и не может быть связан с каналом №48. По этой причине опция Втор. канал ниже первичного в режиме 40 MГц игнорируется, когда вы проводите захват каналов в диапазоне 5 ГГц с помощью рекомендованного адаптера; адаптер автоматически выбирает корректный набор каналов. Например, если вы выбираете канал №36, адаптер будет проводить захват на 80-мегагарцевом канале (каналы с 36 по 48). При этом, в данном примере пакеты, пересылаемые с использованием 20-мегагерцевого канала, будут видны только если они пересылаются по каналу №36. Иными словами, если вы проводите мониторинг точки доступа 802.11ac/ax, которая сконфигурирована таким образом, чтобы использовать каналы с 36 по 48, при этом первичным каналом является канал №36, вы увидите beacon-пакеты и пересылаемые 80-мегагерцевые потоки данных, если вы проводите захват данных на канале №36; но если вы проводите захват данных на каналах №40, №44 или №48, вы увидите только 80-мегагерцевые потоки данных (и никаких beacon-пакетов).
Кодирование BCC и LDPC
На уровне аппаратного обеспечения пакеты стандарта 802.11n/ac/ax кодируются с применением технологий BCC (Binary Convolutional Code - двоичный сверточный код) или LDPC (Low Density Parity Check - код малой плотности с контролем по чётности). BCC является методом кодирования по умолчанию, который использует большинство устройств стандарта 802.11n. LDPC является опциональным методом кодирования, который поддерживают большинство современных устройств. Когда устройство ассоциируется с точкой доступа, элемент HT Capabilities Info в пакетах association request и association response определяет использование одного из двух методов кодирования. Например, если используется дефолтный метод BBC, HT Capabilities Info содержит поле " HT LDPC coding capability: Transmitter does not support receiving LDPC coded packets ". Если анализируемая беспроводная сеть использует кодирование LDPC, ваш адаптер должен также поддерживать этот метод кодирования, иначе пакет, передаваемый HT-рейтах в одном или обоих направлениях, будет утерян или поврежден. Захват пакетов с кодированием LDPC поддерживается всеми рекомендованными нами моделями адаптеров стандарта 802.11ac и 802.11ax.
Функции коррекции ошибок в сетях 5 G реализуются на 3-х уровнях – физическом уровне, уровне MAC и уровне RLC – см. Рис. 8 .
Рис. 8 (Коррекция ошибок в 5G)
1) Физический уровень:
На физическом уровне обеспечивается реализация математических алгоритмов по вычислению циклического избыточного кода (CRC – Cyclic Redundancy Check ), канальное кодирование ( Channel coding ) и выравнивание скорости ( Rate matching ):
а) Вычисление CRC выполняется модулем "CRC calculation". Данный модуль из бит входной последовательности вычисляет CRC (или биты контроля четности ) и формирует выходную последовательность – см. Рис. 9 .
Рис. 9 (Вставка CRC)
Значением CRC является остаток от деления многочлена, соответствующего входным данным, на порождающий полином ( gCRC ). При этом пункт 5.1 рекомендации 3GPP TS 38.212 определяет шесть возможных вариантов порождающих полиномов. В Табл. 1 приведены параметры, используемые при вычислении CRC , для различных транспортных каналов и блоков управляющей информации.
Направление | Транспортный канал / управляющая информация | Условие | gCRC | L |
---|---|---|---|---|
Downlink | BCH | gCRC24C(D) | 24 | |
DL-SCH , PCH | A>3824 | gCRC24 A (D) | 24 | |
A≤3824 | gCRC 16 (D) | 16 | ||
DCI | gCRC24 C (D) | 24 (*) | ||
Uplink | RACH | - | - | |
UL-SCH | A>3824 | gCRC24 A (D) | 24 | |
A≤3824 | gCRC 16 (D) | 16 | ||
UCI | A≤ 11 | - | - | |
12 ≤ A ≤ 19 | gCRC 6 (D) | 6 | ||
A≥20 | gCRC 11 (D) | 11 |
(*) – биты CRC блока DCI ( Downlink Control Information ) скремблируются соответствующим идентификатором RNTI ( Radio Network Temporary Identifiers ).
Если длина выходной последовательность модуля "CRC calculation" ( B ) превышает максимальный размер кодового блока ( KCB ), то данная последовательность разбивается на сегменты и для каждого сегмента вычисляется дополнительный код CRC длиной L =24 с использованием порождающего полинома gCRC24 B (D) .
b) В сетях 5 G используются две основных схемы кодирования. Для кодирования блоков управляющей информации ( DCI , UCI ) – полярные коды (Polar coding), для кодирования транспортных каналов BCH , PCH , DL - SCH , UL - SCH – коды с малой плотностью проверки на четность – LDPC (Low density parity check codes) – см. Табл. 2 . Также для кодирования коротких блоков управляющей информации линии "вверх" ( UCI ) используется схема, описанная, в п.5.3.3 3GPP TS 38.212. Скорость кодирования изменяется в пределах от 120/1024 до 948/1024 в зависимости от текущих радиоусловий и как следствие назначенного сетью индекса модуляции и схемы кодирования ( MCS ) – см. Табл. 3 , Табл. 4 раздела "Приложения" .
Направление | Транспортный канал / управляющая информация | Схема кодирования | Условие |
---|---|---|---|
Downlink | BCH | Polar code | |
PCH | LDPC | ||
DL-SCH | LDPC | ||
DCI | Polar code | ||
Uplink | RACH | - | |
UL-SCH | LDPC | ||
UCI | Polar code | ||
Block code | Кол-во бит 1..11 |
Коды LDPC представляют собой линейные блоковые коды, задаваемые с помощью проверочной матрицы H, содержащей в основном нули и относительно малое количество единиц. Коды LDPC характеризуются сравнительно высокой скоростью декодирования, что и обусловило их выбор для использования на высокоскоростных трафиковых каналах сетей 5 G . Коды LDPC пришли на смену turbo кодерам, используемым для кодирования трафиковых каналов в сетях 4G-LTE. Это обусловлено в основном тем обстоятельством, что turbo кодеры по сравнению с LDPC имеют более высокую сложность реализации декодера и более низкую скорость его работы. Кроме того, LDPC позволяет использовать более низкоскоростные схемы кодирования и следовательно обладает большими возможностями по восстановлению искаженных сигналов.
Полярные коды, применяемые для кодирования блоков управляющей информации ( DCI , UCI ), в теории позволяют достичь предела Шеннона на длинах кодового блока N → ∞ при сложности кодирования и декодирования
NlogN . Напоминаю, что в сетях 4G-LTE для кодирования управляющих каналов использовались Tail Biting Convolutional коды (TBCC).
c) Выравнивание скорости является частью схемы Incremental redundancy HARQ. Данный блок сохраняет битовую последовательность с выхода кодера канала в кольцевом буфере и в дальнейшем для первичной и последующих повторных передач выбирает биты данных из данного буфера, начиная со стартовой позиции, определяемой значением Redundancy version ( RV ) – см. Рис. 10 и таблицу 5.4.2.1-2 3GPP TS 38.212.
Рис. 10 (Кольцевой буфер)
На MAC уровне обеспечивается выполнение HARQ операций, включая:
- первичную и повторную передачу транспортных блоков ( TB ),
- обработку "этикеток" ACK / NACK , подтверждающих получение встречной стороной переданных пакетов данных ( TB ),
- получение от встречной стороны пакетов данных ( TB ) и генерацию "этикеток" ACK / NACK.
RLC объекты, реализующие задачи RLC -уровня, функционируют в одном из трех режимов передачи:
- прозрачный (transparent mode, TM),
- передача без подтверждения (unacknowledged mode, UM),
- передача с подтверждением (acknoledged mode, AM).
Режим UM используется для передачи данных, которые чувствительны к задержкам, но терпимы к ошибкам, (например, пакеты голосового трафика VoLTE ). Кроме того, с использованием UM режима передаются данные сервисов MBMS (Multimedia Broadcast/Multicast Service), по причине отсутствия канала обратной связи. По аналогии с TM объекты UM - RLC обеспечивают передачу данных в одном направлении и не выполняют никаких функций по коррекции ошибок.
Читайте также:
- Форматирование usb flash d ext на роутере
- Как подключить две колонки jbl к одному телефону через блютуз
- Tenda u9 wifi адаптер как подключить
- Для чего нужен коммутатор d link dgs 1005d
- Как подключить телевизор к роутеру мгтс gpon