La velocità di correzione degli errori è fuorviante


10

Nella teoria dei codici, "quanto è buono un codice" indica quanti errori di canale possono essere corretti o, meglio, il livello di rumore massimo che il codice può gestire.

Per ottenere codici migliori, i codici sono progettati utilizzando un alfabeto grande (anziché binario). E poi, il codice è buono se può gestire una grande quantità di "simboli" errati.

Perché non considerare questo imbroglio? Voglio dire, non dovremmo preoccuparci solo di ciò che accade quando "traduciamo" ogni simbolo in una stringa binaria? La "velocità di errore bit" è diversa dalla frequenza di "errore simbolo". Ad esempio, il tasso di errore bit non può superare 1/2 mentre (se lo capisco correttamente), con un alfabeto abbastanza grande, l'errore del simbolo può arrivare a . È perché limitiamo artificialmente il canale a cambiare solo "simboli" anziché bit, oppure perché il codice è effettivamente migliore?1-ε


1
Perché dovresti limitarti ai codici binari se il tuo mezzo di trasmissione / tecnologia può gestirne molti di più?
Raffaello

@Raphael Sarebbe utile se potessi giustificare il tuo punto con alcuni esempi pratici di tecnologie della vita reale che gestiscono simboli non binari e pubblicarlo come una risposta.
Mohammad Alaggan,

@ M.Alaggan: non sono esperto in questo; Immagino che se puoi codificare 0/1 su un vettore d'onda, puoi anche codificare molti più simboli, trasmettendo più informazioni per intervallo di tempo. Mi sorprenderebbe se la tecnologia moderna non lo facesse (pensa al multiplexing del codice) ma non posso nominare un esempio concreto.
Raffaello

@Raphael Penso che tu abbia ragione, gli attuali canali di comunicazione digitale funzionano con simboli più grandi, ma non più di, diciamo, 256-bit per simbolo (che è abbastanza raro per il wireless, ma può essere comune per i cavi). Ma la dimensione del simbolo è limitata a dimensioni molto piccole e non può (praticamente) crescere a piacimento.
Ran G.

Risposte:


8

Molti codici ampiamente utilizzati per i dati binari sono codici concatenati, che sono composti utilizzando due codici di correzione degli errori. Il codice interno si trova su un alfabeto binario e il codice esterno si trova su un alfabeto i cui simboli corrispondono alle parole in codice del codice interno. Ciò consente di utilizzare la potenza superiore di dimensioni alfabetiche maggiori per codificare i messaggi binari senza "imbrogliare".

La definizione standard di distanza minima è naturale da usare quando si considerano i codici concatenati, così come nella teoria dei codici su grandi dimensioni dell'alfabeto. Sarebbe "barare" solo se si usassero questi numeri per confrontare un codice binario con un codice alfabetico di grandi dimensioni che codifica l'input binario senza usare anche un codice interno; i teorici della programmazione sono abbastanza intelligenti da non farlo (e credo che da quando sono stati inventati i codici concatenati, i codici alfabetici di grandi dimensioni sono stati spesso usati insieme a un codice interno, ma i codici alfabetici di grandi dimensioni sono anche molto buoni per correggere errori in canali bursty come come CD, poiché un numero elevato di errori di bit consecutivi influenzerà solo alcuni "simboli").


Peter, grazie per la risposta. Per un codice concatenato, non è vero che il tasso di errore (bit) non può superare 1/2? quindi questo metodo ci consente solo di avvicinarci a 1/2 mantenendo efficiente la decodifica, giusto?
Ran G.

@Ran: per un codice binario , il tasso di errore bit non può superare 1/2. I codici concatenati non devono necessariamente essere binari. Ma questo è pignolo; il tuo commento è sostanzialmente corretto.
Peter Shor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.