Twarda granica dla każdego łącza komunikacyjnego
Każde rzeczywiste łącze komunikacyjne – od linku radiowego wifi, przez linię telefoniczną miedzianą, po włókno światłowodowe – posiada fizyczną granicę dotyczącą ilości informacji, jaką może niezawodnie przesyłać, niezależnie od stopnia zaawansowania zastosowanej modulacji. Claude Shannon udowodnił w 1948 roku, że ta granica to pojedyncza liczba, pojemność kanału C, i wywodził ją wspólnie z wcześniejszymi rozważaniami Ralph Hartley’a opartego na szerokości pasma, dlatego wynik nosi oba ich imiona.
C = B * log2( 1 + SNR ) C = channel capacity, in bits per second B = bandwidth, in hertz SNR = signal-to-noise power ratio (a plain ratio, not decibels, inside this formula)
Co naprawdę mówi wzór
Szerokość pasma B określa, ile niezależnych symboli na sekundę kanał może fizycznie przenosić – próg Nyquista mówi, że kanał o szerokości pasma B obsługuje maksymalnie 2B niezależnych próbek na sekundę bez zakłóceń międzypróbkowych. Termin log2(1 + SNR) przekształca te surowe próbki w bity: jest to dosłowne entropia liczby rozróżnialnych poziomów amplitudy, jakie pozwala zapakować szum na każdym przykładzie. Wysoka wartość współczynnika SNR oznacza, że nadajnik może niezawodnie rozróżniać wiele różnych poziomów sygnału na symbol, więc każdy symbol przenosi więcej bitów; niska wartość współczynnika SNR powoduje, że liczba rozróżnialnych poziomów zbliża się do jednego, a pojemność do zera.
Dwa ograniczenia sprawiają, że krzywa jest intuicyjna. Wraz ze wzrostem współczynnika SNR bez ograniczeń pojemność rośnie tylko logarytmicznie – podwojenie mocy transmisji nie podwaja szybkości danych, jedynie lekko ją porusza, ponieważ log2(1+SNR) wygładza się. Gdy szerokość pasma rośnie bez ograniczeń przy stałej mocy, pojemność również nie dąży do nieskończoności – saturuje się w skończonej wartości, ponieważ rozpraszanie tej samej stałej mocy na coraz większą szerokość pasma powoduje proporcjonalne zwężenie współczynnika SNR w każdym kawałku, a oba efekty znoszą się w ustaloną asymptotę (w przybliżeniu 1.44 * P / N0 bitów/s, gdzie N0 jest gęstość mocy szumu w częstotliwości – fundamentalny kompromis między szerokością pasma a mocą Shannon-Hartley).
Obliczenia przykładowe – dzięki temu wzór przestaje być abstrakcyjny
Współczynnik SNR wynosi 20 dB = stosunek 100 (dB → stosunek: stosunek = 10^(dB/10)) Współczynnik SNR wynosi 30 dB = stosunek 1000 Współczynnik SNR wynosi 40 dB = stosunek 10000 B = 20 MHz (typowy kanał WiFi 2.4 GHz), SNR = 30 dB (stosunek 1000): C = 20,000,000 * log2(1 + 1000) = 20,000,000 * log2(1001) ≈ 20,000,000 * 9.97 ≈ 199 Mbit/s (idealne ograniczenie – rzeczywiste przepustowości 802.11 są niższe z powodu narzutów protokołów, marginesów współczynnika kodowania i niedoskonałej estymacji kanału). Dlatego właśnie podwojenie mocy transmisji WiFi ledwie wpływa na wynik testu prędkości, podczas gdy zmiana kanału z 20 MHz na 40 MHz lub 80 MHz (podwójnie lub czterokrotnie zwiększając B, co znajduje się poza logarytmem) ma znacznie większy, w przybliżeniu proporcjonalny wpływ na limit. Inżynierowie poszukujący większej przepustowości wolą sięgnąć po więcej pasma, zanim dotrą do większej mocy, ponieważ każda z tych zmiennych znajduje się w wzorze w innym miejscu.
SNR of 20 dB = ratio of 100 (dB → ratio: ratio = 10^(dB/10))
SNR of 30 dB = ratio of 1000
SNR of 40 dB = ratio of 10000
B = 20 MHz (typical 2.4 GHz wifi channel), SNR = 30 dB (ratio 1000):
C = 20,000,000 * log2(1 + 1000)
= 20,000,000 * log2(1001)
≈ 20,000,000 * 9.97
≈ 199 Mbit/s (an idealized ceiling — real 802.11 throughput is lower
due to protocol overhead, coding rate margins, and
imperfect channel estimation)
Co obiecuje twierdzenie i co celowo pomija
Twierdzenie o kanale z zakłóceniami jest najostrzejszą częścią wyniku Shannona i tym, który ludzie najczęściej źle interpretują. Mówi ono: dla dowolnej szybkości R ściśle poniżej pojemności C istnieje pewien schemat kodowania, który przesyła sygnał z szybkością R z prawdopodobieństwem błędu, które może być uczynione dowolnie bliskim zeru – nie dokładnie zeru, lecz dowolnie bliskiemu, poprzez używanie coraz dłuższych kodów. Symmetrycznie, dla dowolnej szybkości R powyżej C żaden schemat kodowania nie jest w stanie osiągnąć niezawodnej komunikacji – prawdopodobieństwo błędu jest oddalone od zera bez względu na to, jak sprytny jest kod. Kluczowe jest to, że dowód Shannon'a jest dowodem istnienia: ustanawia on, że dobry kod istnieje (poprzez argument o losowym kodowaniu uśrednionym po zbiorze kodów) bez konstruowania go, i zajęło to społeczności teorii kodowania około sześćdziesiąt lat – od 1948 roku do pojawienia się kodów Turbo w 1993 roku i ponownego odkrycia kodów LDPC w latach 90. i 2000. roku, kończącego się na polarnych kodach Arıkana z 2008 roku.
Co znajduje się pomiędzy surową ilości bitów a wiadomością, którą można zaufać
C mierzy suwantą pojemność informacyjną, ale w rzeczywistym połączeniu potrzebne są kody korekcyjne, aby realnie zbliżyć się do tego limitu wiarygodnie, a nie tylko szybko. Handel dotyczy szybkości względem redundancji: kod dodający więcej informacji parzystości na bit danych (niższa szybkość kodu) może wykryć więcej błędów, ale przenosi proporcjonalnie mniej rzeczywistych danych na przesłany bit, co oddala osiągalną efektywną prędkość poniżej C. Współczesne kody – Turbo, LDPC, polarne – są cenione właśnie dlatego, że osiągają odchylenie od limitu Shannon o ułamkę decybela przy praktycznych długościach bloków i złożoności dekodowania, co wyjaśnia, dlaczego 4G, 5G, połączenia satelitarne i tryby wyższe Wi-Fi wykorzystują jedną z tych trzech rodzin zamiast prostych kodów blokowych i konwolucyjnych z lat 70. i 90.
Systemy praktyczne muszą również uwzględniać SNR, które nie jest stałe – zanikanie sygnału, zakłócenia i odległość wpływają na jego wartość, dlatego istnieje adaptacyjna modulacja i kodowanie: Wi-Fi lub radio komórkowe stale szacują swoje aktualne SNR i przechodzą między schematami modulacji (BPSK, QPSK, 16-QAM, aż po 1024-QAM w nowoczesnym Wi-Fi) oraz szybkościami kodów, aby zawsze znajdować się tuż pod obecnym sufitem pojemności, handlując szczytową prędkością za sprawą niezawodności, gdy zmieniają się warunki, sekunda po sekundie.
Często zadawane pytania
Dlaczego podwojenie mocy transmisji nie podwaja mojej prędkości internetu?
Wynika to z faktu, że SNR (stosunek sygnału do szumu) znajduje się wewnątrz logarytmu w formule Shannon-Hartley: C = B * log2(1 + SNR). Podwojenie mocy sygnału przybliżone podwaja stosunek SNR, ale logarytm o podstawie 2 z podwojonego liczby dodaje jedynie około jednego dodatkowego bitu na symbol, a nie podwaja przepustowości – pojemność rośnie bardzo wolno, gdy tylko SNR jest już w miarę wysoki, co sprawia, że pasmo jest zazwyczaj bardziej skutecznym sposobem działania.
Czy twierdzenie Shannona gwarantuje możliwość zerowych błędów poniżej pojemności?
Gwarantuje ono, że prawdopodobieństwo wystąpienia błędów może być zrobione dowolnie bliskiego zera, zbliżając się do niego poprzez używanie coraz dłuższych kodów słownych, ale nie jest to zero w skończonym transporcie. Również gwarantuje to w przeciwnym kierunku: powyżej pojemności żaden kod, niezależnie od jego złożoności lub długości, nie może prowadzić prawdopodobieństwa błędów do zera.
Dlaczego zajęło to dziesięciolecia budowy kodów, które zbliżają się do granicy Shannona?
Dowód Szannona z 1948 roku jest argumentem dotyczącym istnienia losowych kodów – pokazuje, że jakiś kod o odpowiednich właściwościach musi istnieć średnio na ogromnej liczbie możliwych kodów, ale nie daje konstrukcji i żadnego praktycznego algorytmu dekodowania. Turbo kody (1993), kody LDPC (odkryte ponownie w latach 90-tych po ich pochodzeniu z lat 60-tych) i kody polarnie (2008) były przełomami, które ostatecznie połączyły wydajność zbliżoną do pojemności z algorytmami dekodowania wystarczająco szybkim do działania w sprzęcie rzeczywistym.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Channel Capacity i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację Channel Capacity