📡 Kody polarne — przepustowość kanału
Kody polarne (Arıkan, 2009) osiągają przepustowość Shannona dla symetrycznych kanałów o wejściu binarnym. Polaryzacja kanału: rekurencyjne G_N = F^⊗n łączy słabe i silne kanały syntetyczne. Dekoder z sukcesywnym anulowaniem.
Jak to działa
Kody polarne stosują jądro Arıkana rekurencyjnie: G_N = F^⊗n, gdzie F=[[1,0],[1,1]]. Tworzy to N syntetycznych kanałów bitowych z N kopii fizycznego kanału W. Gdy N→∞, pojemność każdego syntetycznego kanału I(W_N^(i)) polaryzuje się do 0 albo 1. Ułamek o pojemności →1 równa się I(W), pojemności kanału fizycznego.
Bity zamrożone zajmują K najgorszych syntetycznych kanałów (najniższa pojemność/najwyższy szum). Bity informacyjne zajmują K najlepszych. Dekoder sukcesywnej eliminacji (successive cancellation) przetwarza bity od lewej do prawej, wykorzystując strukturę motylkową LLR.
Najczęściej zadawane pytania
Czym są kody polarne?
Kody polarne, wynalezione przez Erdala Arıkana w 2009 roku, są pierwszymi dowiedlnie osiągającymi pojemność kodami dla symetrycznych kanałów binarnych. Wykorzystują polaryzację kanału, by stworzyć mieszankę niemal doskonałych i niemal bezużytecznych syntetycznych kanałów.
Czym jest polaryzacja kanału?
Polaryzacja kanału to zjawisko, w którym rekurencyjne łączenie N kopii kanału wytwarza N syntetycznych kanałów, które się polaryzują: niektóre mają pojemność bliską 1 (niezawodne), inne bliską 0 (zaszumione). Wraz ze wzrostem N ułamek o pojemności bliskiej 1 zbliża się do pojemności oryginalnego kanału.
Czym jest macierz konstrukcji kodu polarnego?
Macierz generująca to G_N = F^⊗n, gdzie F = [[1,0],[1,1]] to jądro, a ⊗n oznacza n-tą potęgę Kroneckera (N=2^n). Zakodowane słowo kodowe to x = u·G_N, gdzie u to słowo wejściowe z bitami zamrożonymi ustawionymi na 0.
Czym są bity zamrożone?
Bity zamrożone to pozycje wejściowe przypisane do najgorszych (najbardziej zaszumionych) syntetycznych kanałów. Są ustawione na znane wartości (zwykle 0) na koderze i używane jako informacja pomocnicza przez dekoder. Bity informacyjne zajmują najlepsze syntetyczne kanały.
Jak działa dekodowanie sukcesywnej eliminacji?
Dekodowanie sukcesywnej eliminacji (SC) estymuje bity jeden po drugim od u_1 do u_N. Na każdym kroku dekoder używa wcześniej zdekodowanych bitów i LLR kanału, by obliczyć stosunek wiarygodności dla bieżącego bitu, a następnie podejmuje twardą decyzję (lub wymusza bit zamrożony na 0).
Jaki jest BER kodów polarnych w porównaniu z LDPC?
Przy krótkich długościach bloku kody polarne z dekodowaniem SC mają nieco gorszy BER niż LDPC czy kody turbo. Dekodowanie SCL z CRC znacząco poprawia wydajność, dorównując lub przewyższając LDPC dla umiarkowanych długości bloku.
Gdzie w praktyce wykorzystywane są kody polarne?
Kody polarne są używane w 5G NR (New Radio) dla kanału kontrolnego (PBCH, PDCCH, PUCCH). Zostały ustandaryzowane przez 3GPP w wersji Release 15 (2017), czyniąc je pierwszymi kodami osiągającymi pojemność w komercyjnym standardzie bezprzewodowym.
Jaki jest wzór na pojemność kanału AWGN?
Pojemność kanału AWGN wynosi C = (1/2)log₂(1 + SNR) bitów na użycie kanału. Dla BPSK z wariancją szumu σ², SNR = E_s/N_0 = 1/(2σ²).
Czym jest tempo polaryzacji?
Tempo polaryzacji opisuje, jak szybko pojemności syntetycznych kanałów zbiegają do 0 lub 1. Dla standardowego jądra F wykładnik wynosi E = 0,5. Lepsze jądra mogą osiągnąć wyższe wykładniki, poprawiając wydajność przy skończonej długości.
Czym jest dekodowanie SCL?
Dekodowanie listy sukcesywnej eliminacji (SCL) utrzymuje jednocześnie listę L kandydujących ścieżek słów kodowych. Zewnętrzny kod CRC wybiera poprawnego kandydata z listy, dramatycznie poprawiając BER kosztem złożoności O(L·N log N).
O tej symulacji
Ta symulacja rekurencyjnie stosuje krok polaryzacji Arıkana do N=2ⁿ syntetycznych kanałów, obserwując, jak pojedynczy zaszumiony kanał rozdziela się na mieszankę niemal doskonałych i niemal bezużytecznych kopii, a następnie przypisuje K najlepszych z nich do przenoszenia bitów informacyjnych, zamrażając resztę do zera. Przełączaj się między wykresem słupkowym polaryzacji, na żywo wykonywanym przemiataniem BER-vs-SNR oraz diagramem motylkowym, który dokładnie pokazuje, jak rekurencyjna struktura łącząca podłącza bity wejściowe do przesyłanego słowa kodowego.
🔬 Co pokazuje
Wykres słupkowy pojemności syntetycznych kanałów z jasnymi słupkami oznaczającymi pozycje bitów informacyjnych i przygaszonymi słupkami oznaczającymi bity zamrożone, przerywaną linią odniesienia granicy Shannona, animowaną krzywą BER-vs-Eb/N0 oraz diagramem motylkowym rekurencyjnej sieci łączącej.
🎮 Jak korzystać
Ustaw wykładnik długości bloku n (dający N=2ⁿ), współczynnik kodowania R oraz Eb/N0 suwakami, przełącz listę rozwijaną Widok między Polaryzacją kanału, Krzywą BER i Diagramem motylkowym, kliknij Symuluj, by przeliczyć, i Uruchom BER, by animować pełne przemiatanie BER po wartościach SNR.
💡 Czy wiesz, że?
Kody polarne były pierwszymi kodami, jakie kiedykolwiek matematycznie udowodniono jako osiągające pojemność Shannona wraz ze wzrostem N — a zaledwie osiem lat po artykule Arıkana z 2009 roku zostały przyjęte przez 3GPP do kodowania kanału kontrolnego 5G NR, czyniąc je jedną z najszybszych historii przejścia od teorii do wdrożenia w historii teorii kodowania.
Najczęściej zadawane pytania
Dlaczego tylko niektóre słupki na wykresie polaryzacji zbliżają się do pojemności 1?
Każdy krok polaryzacji rozdziela kanał na „gorszą” kopię (W⁻, bardziej podatną na wymazania) i „lepszą” kopię (W⁺, mniej podatną na wymazania) poprzez rekurencyjną regułę łącz-i-dziel — po n krokach to powtarzane dzielenie popycha większość syntetycznych kanałów w stronę pojemności ≈1 lub ≈0, co jest dokładnie efektem polaryzacji wizualizowanym przez wysokości słupków.
Jak symulacja decyduje, które pozycje bitów są zamrożone?
Sortuje wszystkie N syntetycznych kanałów według pojemności i przypisuje górne K (odpowiadające wybranemu współczynnikowi kodowania R×N) jako kanały informacyjne, zamrażając resztę do 0 — to dokładnie reguła konstrukcji kodu polarnego, a podniesienie suwaka współczynnika kodowania widocznie przesuwa więcej słupków z przygaszonych (zamrożonych) na jasne (informacyjne) na wykresie.
Dlaczego podniesienie Eb/N0 dramatycznie zmniejsza krzywą BER?
Wyższe Eb/N0 obniża równoważne prawdopodobieństwo wymazania podawane do obliczeń polaryzacji kanału, co popycha więcej syntetycznych kanałów w stronę pojemności 1, a mniej w stronę 0 — ponieważ BER jest szacowany jako średnie prawdopodobieństwo błędu jedynie po kanałach informacyjnych, lepszy leżący u podstaw SNR bezpośrednio oznacza, że mniej słabych kanałów jest wykorzystywanych do rzeczywistych danych.
Co dokładnie reprezentuje diagram motylkowy?
Każdy etap połączeń czerwono-niebieskich reprezentuje jedno rekurencyjne zastosowanie jądra Arıkana 2×2 F=[[1,0],[1,1]], a wzór krzyżowania (każdy węzeł sparowany z partnerem oddalonym o N/2^(etap+1) pozycji) to dokładnie sposób, w jaki bity wejściowe u łączą się addytywnie (mod 2), by wytworzyć ostateczne słowo kodowe x — to ta sama struktura, którą rzeczywisty koder polarny implementuje w sprzęcie.
Dlaczego zwiększenie długości bloku n zmienia ostrość wzorca polaryzacji?
Każdy dodatkowy krok polaryzacji podwaja liczbę syntetycznych kanałów i ponownie stosuje regułę podziału do każdego istniejącego kanału, więc więcej rekurencji popycha pojemności dalej w stronę skrajności 0 i 1 — większe n daje więc bardziej ostro bimodalny wykres słupkowy, co jest teoretycznym mechanizmem stojącym za gwarancją osiągania pojemności przez kody polarne, gdy N→∞.