Table of Contents
Introduzione: La condizione dei tassi massimi di dati
In sistemi di comunicazione digitale, l'obiettivo fondamentale è quello di trasmettere quante più informazioni possibile su una larghezza di banda limitata, assicurando che i dati ricevuti siano privi di errori. Il limite teorico per una comunicazione affidabile è noto come la capacità [[LT sta a] canale Corret]], un concetto che prima definisce Claude Shannon nel suo documento di riferimento 1948. Questa capacità dipende dalla potenza del segnale, dalla potenza del rumore e dalla larghezza di banda.
Capire la capacità del canale
Il teorema della capacità del canale di Shannon afferma che per un dato canale di comunicazione con larghezza di banda \(B\) e rapporto segnale-rumore (SNR), esiste una velocità massima \(C\) a cui le informazioni possono essere trasmesse con una probabilità arbitrariamente bassa di errore.
\(C = B \log 2(1 + S/N)\]
Il teorema stabilisce che la comunicazione senza errori è possibile sotto questo limite ma non sopra di esso. Tuttavia, la prova di Shannon non era costruttiva; non ha specificato how[] per raggiungere la capacità. La sfida per gli ingegneri della comunicazione è stata quella di progettare schemi pratici di codifica e modulazione che operano vicino a questo limite.
La capacità del canale non è un numero fisso; dipende dalle condizioni del canale. Ad esempio, nelle comunicazioni wireless, dissolvenza, interferenza e propagazione multipath causano che il SNR varia nel tempo. Le tecniche di modulazione e codifica adattiva (AMC) regolano la velocità dei dati in base alla qualità del canale, ma la strategia di codifica sottostante deve essere abbastanza robusta da gestire le condizioni peggiori del caso.
Che cosa è Correzione di errore in avanti?
Correzione errori avanzata (FEC) è un metodo di controllo degli errori in cui il mittente aggiunge bit ridondanti (pezzi di parità) ai dati originali prima della trasmissione. Questi bit ridondanti sono strutturati in modo che il ricevitore possa rilevare e correggere un certo numero di errori senza richiedere la ritrasmissione. Questo è particolarmente prezioso nelle applicazioni in tempo reale (ad esempio, voce, streaming video, collegamenti satellitari) in cui i ritardi di trasmissione sono lunghi.
\LT\put \LT è un codice di calcolo più semplice, ma il numero di errori di correzione è inferiore, ma il valore di un codice di banda è inferiore (a causa della sovraccarico di bit ridondanti) per la latenza inferiore e la velocità costante.
Come funziona FEC: Step-by-Step
Codifica
L'encoder prende un blocco o un flusso di bit di dati di input e li trasforma in una sequenza più lunga di bit (la parola di codice) secondo una regola matematica specifica. Questa regola assicura che le parole di codice valide siano separate da una distanza minima di Hamming, che determina la capacità di correzione degli errori.
Trasmissione e rumore
Il flusso di bit codificato viene trasmesso sul canale, dove il rumore, l'interferenza o la dissolvenza possono corrompere alcuni bit. In pratica, la corruzione è spesso modellata come rumore gaussiano bianco additivo (AWGN), ma anche altri difetti come errori di scoppio o rumore di fase si verificano.
Decodifica
Il ricevitore utilizza la struttura del codice per elaborare la sequenza ricevuta rumorosa. Esistono due principali approcci di decodifica:
- Decodifica di decisione di Hard:[] Il ricevitore prima prende una decisione binaria (0 o 1) per ogni bit ricevuto, poi utilizza metodi algebrici (ad esempio, l'algoritmo Berlekamp-Massey per i codici Reed-Solomon) per trovare la parola di codice valida più vicina.
- Decodifica di decisione soffitta:[] Il ricevitore conserva le informazioni di affidabilità analogiche o multilivello (morchi) su ogni simbolo ricevuto.Questa informazione viene alimentata in un decoder che esegue un trattamento probabilistico, come l'algoritmo Viterbi per codici convolutivi o la propagazione di credenze per codici LDPC.
Il decoder emette sia un blocco dati corretto o, se il modello di errore supera la capacità di correzione del codice, un rilevamento di errori non corretti (che possono attivare una richiesta di ritrasmissione ad uno strato di protocollo più alto).
Tipi di codici di correzione errori in avanti
Nel corso di decenni di ricerca, sono state sviluppate molte famiglie di codici FEC, ognuna con caratteristiche distinte adatte a diverse applicazioni.
Codici di blocco
I codici di blocco funzionano su blocchi di dati di input fissi.
- Codici Reed-Solomon (RS): Questi codici BCH non-binary funzionano su simboli (spesso byte a 8 bit), sono eccellenti nel correggere gli errori di esplosione perché gli errori in un simbolo influiscono su più bit. I codici RS sono utilizzati in CD, DVD, codici QR e comunicazioni a spazio profondo.
- Codici BCH:[] Una grande classe di codici di correzione degli errori ciclici con parametri flessibili.
- Codici di calcolo:[ Semplice singolo-error-corretto, codici a doppio-error-detecting, storicamente utilizzato nella memoria del computer iniziale (ECC RAM).
Codici convoluzionali
A differenza dei codici di blocco, i codici convoluzionali elaborano un flusso continuo di bit di input attraverso i registri di turno. L'uscita dipende non solo dall'ingresso corrente ma anche da input precedenti (memoria). Sono generalmente decodificati utilizzando l'algoritmo Viterbi, che esegue il rilevamento della sequenza di massima probabilità. I codici convoluzionali sono ampiamente utilizzati negli standard wireless (ad esempio, GSM, 3G, e come codici interni in molti sistemi).
Codici Turbo
Introdotti nel 1993, i turbocodici hanno rivoluzionato il campo raggiungendo le prestazioni entro 0,5 dB del limite di Shannon. Sono costituiti da due o più codificatori convoluzionali separati da un interleaver e un processo di decodifica iterativo (soft-input soft-output) che scambia informazioni estrinseche tra decodificatori. I Turbo codici sono impiegati in 3G/4G (UMTS, LTE) e comunicazioni satellitari.
Codici di controllo di parità a bassa densità (LDPC)
I codici LDPC sono stati inventati da Robert Gallager nel 1963 ma non sono stati praticamente realizzati fino agli anni '90 a causa di limitazioni computazionali. Sono codici lineari di blocco definiti da una matrice di controllo di parità radi. Sono decodificati utilizzando la propagazione di credenze iterative su un grafico bipartito (Tanner grafico), che scala in modo efficiente.
Codici polari
I codici polari, presentati da Erdal Arıkan nel 2009, sono i primi codici provati per raggiungere la capacità simmetrica dei canali discreti senza memoria a ingresso binario con bassa codifica e complessità di decodifica (O(N log N))) che si basano sulla polarizzazione dei canali e utilizzano la decodifica successiva di cancellazione.
Capacità del canale FEC e Approccio
La questione fondamentale è: quanto può essere vicino FEC arrivare al limite di Shannon? Con i codici moderni, in particolare turbo, LDPC e codici polari, il divario è stato ridotto a frazioni di un decibel. Ad esempio, i codici DVB-S2 LDPC operano entro 0,7–1.0 dB di capacità, e alcune implementazioni di laboratorio dei codici LDPC raggiungono entro 0,04 dB del limite di risparmio.
Per avvicinarsi alla capacità, i codici FEC devono essere lunghi e avere proprietà quasi casuali. I codici a blocchi semplici come Hamming sono lontani dalla capacità, mentre i codici lunghi LDPC con distribuzioni a gradi irregolari possono avvicinarsi al limite. Tuttavia, la lunghezza del codice implica anche la decodifica di ritardo e memoria. L'evoluzione della FEC è stata guidata dalla ricerca di codici con il miglior scambio tra prestazioni, complessità e latenza.
In pratica, raggiungere la capacità richiede anche un'attenta modulazione e adattamento dei canali. Ad esempio, modulazione codificata a bit (BICM)[[]] combina FEC con modulazione ad alto ordine (QAM, PSK) ed è ottimizzato utilizzando demapping e decodifica iterativo (BICM-ID).
Applicazioni pratiche e trade-off
FEC è onnipresente nei moderni sistemi di comunicazione, qui ci sono le aree chiave in cui FEC è indispensabile:
- Comunicazioni a fibre ottiche:[ I cavi sottomarini a lungo raggio utilizzano potenti codici LDPC e scale per correggere i difetti causati da rumore dell'amplificatore, non linearità e dispersione.
- Comunicazioni wireless:[[ 4G LTE utilizza i codici turbo per i canali dati; 5G NR utilizza LDPC per i dati e i codici polari per il controllo. Wi-Fi 6 (802.11ax) utilizza LDPC.
- Comunicazioni satellite e spaziali:[ CCSDS (Comitato consultivo per i sistemi di dati spaziali) raccomanda i codici turbo, LDPC e Reed-Solomon per le missioni di spazio profondo. I rover di Marte si affidano ai codici concatenati (Reed-Solomon + convolutional) per trasmettere immagini ad alta definizione su milioni di chilometri.
- Sistemi distorsione:[ Disco rigido, SSD e memoria flash usano FEC forte (ad esempio, LDPC con decodifica hard-decision) per correggere gli errori dovuti all'usura e al rumore di lettura.
Mentre FEC offre enormi benefici, introduce trade-off:
- Overhead:[] I bit ridondanti riducono l'effettiva velocità dei dati. Un codice con tasso 1/2 raddoppia il requisito della larghezza di banda grezza per lo stesso throughput del carico di paga.
- Complessità:[] La codifica è generalmente semplice, ma la decodifica, soprattutto la soft-decision iterativa, può essere computazionalmente costosa, richiedendo hardware dedicato (ASIC o GPU).
- Latency:[[]] Codici di blocco e decodifica iterativa introduceno ritardi di buffering e di elaborazione.Per applicazioni a bassa latenza come guida autonoma (URLLC in 5G), le lunghezze di blocco brevi e i codici semplici sono preferiti.
- Pavimento di errore:[] Alcuni codici, in particolare LDPC, possono esporre un piano di errore a bassissimi tassi di errore a causa di set di tracciamento.
Sfide in FEC Design
Nonostante i notevoli progressi, molte sfide rimangono nel spingere le prestazioni più vicine al limite di Shannon:
- ] Performance di lunghezza di pagina:[ I codici di raggiungimento delle capacità sono asintotici; per lunghezze di blocco finite pratiche, c'è un divario noto come il ] regime di lunghezza di blocco finito. I ricercatori utilizzano il ravvicinamento normale per caratterizzare i tassi realizzabili per la probabilità di blocco data e di errore.
- Correzione di errore di Burst:[] I canali del mondo reale hanno spesso errori dirompenti (ad esempio, dissolvenza, rumore di impulso). I codici tradizionali FEC progettati per errori casuali possono eseguire in modo negativo.
- Efficienza di Hardware:[] Poiché i tassi di dati si arrampicano in centinaia di gigabit al secondo (ad esempio, 800G Ethernet), il throughput e il consumo di energia decoder diventano critici.
- Integrazione con strati più alti:[] Il design a strati incrociati – dove FEC interagisce con l'allocazione delle risorse, ARQ e la pianificazione – richiede un'attenta sintonia per evitare ridondanze e realizzare guadagni di prestazioni end-to-end.
Le direzioni future nella ricerca FEC
Il campo della correzione degli errori continua ad evolversi. Le tendenze chiave includono:
- Correzione di errore di quarto:[] Per rendere possibile il calcolo quantistico, si stanno sviluppando codici FEC quantici (ad esempio, codici di superficie, codici di colore) che sono fondamentalmente diversi dai codici classici, ma si prendono in prestito idee dalla teoria del codifica classico.
- Imparare a gestire la macchina per decodifica:[] I decodificatori basati sulla rete neurale, come lo sviluppo profondo della propagazione delle credenze, mostrano la promessa di migliorare le prestazioni vicino alla capacità, soprattutto per i codici brevi. Tuttavia, non sono ancora pratici per i sistemi ad alto rendimento.
- Codici di supporto e codici senza tasso:[ Questi codici flessibili si adattano alle condizioni del canale senza tassi di codice fissi, offrendo prestazioni quasi ottimali per i canali con SNR sconosciuto o in tempo.
- Codici LDPC non-binari:[] Funzionando su campi Galois di ordine superiore, i codici LDPC non-binari possono fornire prestazioni più ripide e una migliore gestione delle modulazioni di ordine superiore, anche se la complessità di decodifica aumenta.
- Codifica comune del canale sorgente:[] Invece di separare la compressione e la correzione degli errori, i sistemi comuni possono teoricamente avvicinarsi al limite di Shannon sfruttando la ridondanza residua.
Come inizia la ricerca 6G, FEC dovrà supportare i tassi di dati estremamente elevati (Tbps), le comunicazioni a bassa latenza ultra-affidabili e la connettività di tipo macchina massiccia.
Conclusioni
La correzione degli errori è una pietra angolare della moderna comunicazione digitale, che consente una trasmissione affidabile dei dati a tassi che si avvicinano ai limiti fondamentali fissati da Shannon. Dai codici Hamming semplici in memoria precoce ai sofisticati LDPC e ai codici polari in 5G, FEC si è evoluta per colmare il divario tra capacità teoriche e sistemi pratici. Mentre le sfide di complessità, la latenza e le prestazioni di lunghezza finita persistono, la ricerca continua a spingere i confini.