Головна Алгоритми та AI Полярні Коди — Ємність Каналу

📡 Полярні Коди — Ємність Каналу

Полярні коди (Аrikан 2009) досягають ємності Шеннона. Поляризація каналу: рекурсивний G_N = F^⊗n комбінує слабкі та сильні синтетичні канали. Послідовне скасування.

Алгоритми та AI2DСкладний60 FPS
polar-codes ↗ Відкрити окремо
DRAG · SCROLL · CLICK — керуйте прямо у вікні симуляції.

Як це працює

Полярні коди рекурсивно застосовують ядро Аrikана: G_N = F^⊗n, де F=[[1,0],[1,1]]. Це створює N синтетичних бітових каналів із N копій фізичного каналу W. При N→∞ ємність кожного синтетичного каналу I(W_N^(i)) поляризується до 0 або 1. Частка з ємністю →1 дорівнює I(W) — ємності фізичного каналу.

Kernel: F = [[1,0],[1,1]] G_N = B_N · F^⊗n (B_N = bit-reversal permutation) Encoded: x_1^N = u_1^N · G_N SC update: LLR_n(i) = f(LLR_{n-1}(2i-1), LLR_{n-1}(2i)) f(a,b) = 2·atanh(tanh(a/2)·tanh(b/2)) g(a,b,u) = (-1)^u · a + b

Заморожені біти займають K найгірших синтетичних каналів (найнижча ємність/найбільший шум). Інформаційні біти займають K найкращих. Декодер послідовного скасування обробляє біти зліва направо, використовуючи метеликову структуру LLR.

Часті запитання

Що таке полярні коди?

Полярні коди, винайдені Ердалом Аrikаном у 2009 році, є першими доведено ємнісно-досяжними кодами для симетричних каналів із двійковим входом. Вони використовують поляризацію каналу для створення суміші майже ідеальних і майже марних синтетичних каналів.

Що таке поляризація каналу?

Поляризація каналу — це явище, коли рекурсивне комбінування N копій каналу створює N синтетичних каналів, які поляризуються: одні мають ємність, близьку до 1 (надійні), інші — близьку до 0 (зашумлені). Зі зростанням N частка з ємністю, близькою до 1, наближається до ємності початкового каналу.

Що таке матриця побудови полярного коду?

Породжувальна матриця — G_N = F^⊗n, де F = [[1,0],[1,1]] — ядро, а ⊗n позначає n-ий степінь Кронекера (N=2^n). Закодоване кодове слово — x = u·G_N, де u — вхідне слово із замороженими бітами, встановленими на 0.

Що таке заморожені біти?

Заморожені біти — це вхідні позиції, призначені найгіршим (найбільш зашумленим) синтетичним каналам. На кодері вони встановлюються у відомі значення (зазвичай 0) і використовуються декодером як допоміжна інформація. Інформаційні біти займають найкращі синтетичні канали.

Як працює декодування послідовного скасування?

Декодування послідовного скасування (SC) оцінює біти по черзі від u_1 до u_N. На кожному кроці декодер використовує вже декодовані біти та LLR каналу, щоб обчислити відношення правдоподібності для поточного біта, а потім приймає жорстке рішення (або примусово встановлює заморожений біт у 0).

Яка BER у полярних кодів порівняно з LDPC?

За коротких довжин блоку полярні коди з SC-декодуванням мають дещо гіршу BER, ніж LDPC чи турбо-коди. SCL-декодування (список послідовного скасування) з CRC значно покращує продуктивність, зрівнюючись або перевершуючи LDPC для помірних довжин блоку.

Де полярні коди використовуються на практиці?

Полярні коди використовуються в 5G NR (New Radio) для керівного каналу (PBCH, PDCCH, PUCCH). Вони були стандартизовані 3GPP у Release 15 (2017), ставши першими ємнісно-досяжними кодами в комерційному бездротовому стандарті.

Яка формула ємності каналу AWGN?

Ємність каналу AWGN дорівнює C = (1/2)log₂(1 + SNR) біт на використання каналу, де SNR = потужність сигналу / потужність шуму. Для BPSK із дисперсією шуму σ², SNR = E_s/N_0 = 1/(2σ²).

Що таке швидкість поляризації?

Швидкість поляризації описує, наскільки швидко ємності синтетичних каналів сходяться до 0 або 1. Для стандартного ядра F показник дорівнює E = 0.5. Кращі ядра можуть досягати вищих показників, покращуючи продуктивність за скінченної довжини.

Що таке SCL-декодування?

Декодування зі списком послідовного скасування (SCL) одночасно підтримує список із L кандидатних шляхів кодових слів. Зовнішній код CRC обирає правильного кандидата зі списку, суттєво покращуючи BER ціною складності O(L·N log N).

Про цю симуляцію

Ця симуляція рекурсивно застосовує крок поляризації Аrikана до N=2ⁿ синтетичних каналів, показуючи, як один зашумлений канал розщеплюється на суміш майже ідеальних і майже марних копій, а потім призначає K найкращих із них для передачі інформаційних бітів, заморожуючи решту до нуля. Перемикайтеся між стовпчастою діаграмою поляризації, живою кривою BER-проти-SNR та метеликовою діаграмою, яка показує, як саме рекурсивна структура комбінування з'єднує вхідні біти з переданим кодовим словом.

Стовпчаста діаграма показує ємності синтетичних каналів: яскраві стовпці позначають позиції інформаційних бітів, тьмяні — заморожені біти, пунктирна лінія — межу Шеннона, поруч анімується крива BER відносно Eb/N0 та метеликова діаграма рекурсивної мережі комбінування. Задайте показник довжини блока n (що дає N=2ⁿ), швидкість коду R та Eb/N0 повзунками, перемикайте вигляд між поляризацією каналу, кривою BER і метеликовою діаграмою, натисніть «Симулювати», щоб перерахувати, і «Запустити BER», щоб анімувати повне сканування BER за SNR.

Полярні коди стали першими кодами, для яких математично доведено досягнення ємності Шеннона зі зростанням N — і лише через вісім років після статті Аrikана 2009 року їх ухвалив 3GPP для кодування керівного каналу 5G NR, що зробило їх однією з найшвидших історій переходу від теорії до впровадження в історії теорії кодування.

Часті запитання

Чому лише деякі стовпці на діаграмі поляризації досягають ємності, близької до 1?

Кожен крок поляризації розщеплює канал на «гіршу» копію (W⁻, схильнішу до стирання) і «кращу» копію (W⁺, менш схильну до стирання) за рекурсивним правилом комбінування й розщеплення — після n кроків це повторюване розщеплення зміщує більшість синтетичних каналів або до ємності ≈1, або до ≈0, і саме цей ефект поляризації візуалізує висота стовпців.

Як симуляція визначає, які позиції бітів заморожені?

Вона сортує всі N синтетичних каналів за ємністю і призначає верхні K (відповідно до обраної швидкості коду R×N) як інформаційні канали, заморожуючи решту до 0 — це точно правило побудови полярного коду, і підвищення повзунка швидкості коду наочно зсуває більше стовпців із тьмяних (заморожені) до яскравих (інформаційні) на діаграмі.

Чому підвищення Eb/N0 так різко зменшує криву BER?

Вищий Eb/N0 знижує еквівалентну ймовірність стирання, що подається в обчислення поляризації каналу, зміщуючи більше синтетичних каналів до ємності 1 і менше до 0 — оскільки BER оцінюється як середня ймовірність похибки лише за інформаційними каналами, краще базове SNR безпосередньо означає, що для реальних даних використовується менше слабких каналів.

Що насправді показує метеликова діаграма?

Кожен етап червоно-синіх з'єднань відображає одне рекурсивне застосування ядра Аrikана 2×2 F=[[1,0],[1,1]], а схема перетинів (кожен вузол з'єднаний із партнером на N/2^(етап+1) позицій далі) — це саме те, як вхідні біти u комбінуються додаванням за модулем 2, щоб отримати кінцеве кодове слово x; це та сама структура, яку реалізує справжній полярний кодер апаратно.

Чому збільшення довжини блока n змінює різкість патерну поляризації?

Кожен додатковий крок поляризації подвоює кількість синтетичних каналів і повторно застосовує правило розщеплення до кожного наявного каналу, тож більше рекурсій зміщує ємності ще ближче до крайніх значень 0 і 1 — тому більше n дає різкіше бімодальну стовпчасту діаграму, що і є теоретичним механізмом гарантії досягнення ємності полярними кодами при N→∞.

Схожі симуляції