Che cos'è la codifica a blocchi?
Parte della teoria dei codici, la codifica a blocchi è una forma di correzione degli errori in avanti (FEC), nota anche come codice di canale, che converte i messaggi in codici specifici e invia le informazioni come un blocco di dati con una lunghezza predeterminata. Blocchi di dati più grandi semplificano la decodifica delle informazioni da parte del computer ricevente e la correzione degli errori che si verificano durante il trasferimento. I codici di blocco e i codici convoluzionali sono due tipi di codice comunemente utilizzati in FEC. Questi tipi di codice consentono di inviare un messaggio tramite una connessione inaffidabile e di essere comunque decifrabile quando arriva.
L'uso della codifica a blocchi è necessario a causa del rumore che si verifica quando viene inviato un messaggio. Quando i dati devono percorrere una lunga distanza o su una connessione inaffidabile, il peso e la distanza di Hamming vengono utilizzati per determinare la probabilità di errori. Il peso di hamming è il numero di cifre necessarie per esprimere tutte le possibili combinazioni di codici e la distanza di hamming è il numero di errori che dovrebbero verificarsi prima che un po 'rappresentasse un'informazione legittima, ma sbagliata.
Ad esempio, se un mittente che utilizzava la codifica a blocchi desiderasse inviare un messaggio in grado di utilizzare solo tre possibili codici lunghi ciascuno di tre cifre, il peso di Hamming sarebbe tre. I codici potrebbero essere 000, 010 e 011. Se un errore determinasse la modifica di una cifra, ad esempio 000, cambiasse in 010, il codice verrebbe letto come un codice legittimo (010), ma non come il codice previsto dal mittente (000) . Pertanto, la distanza di Hamming per questo codice è una perché è necessario modificare solo una cifra per causare un errore che il computer non può correggere.
Per ridurre la distanza di Hamming e ridurre gli errori, i dati vengono inviati come un blocco di codice che viene codificato in parole di codice specifiche di una certa lunghezza. I bit di dati del messaggio originale vengono definiti k bit. I k bit vengono tradotti in n bit corrispondenti, che sono codici che sono stati selezionati in modo che rimangano come codici più lunghi per ogni k bit. Vengono aggiunti uno o zero per rendere i bit una lunghezza uniforme e ridurre la distanza di Hamming. Quindi questi blocchi di n bit vengono trasmessi al computer ricevente.
Pensare alla codifica a blocchi è più semplice se confrontato con due persone che hanno una conversazione. Quando si parla in una stanza rumorosa o si grida per una lunga distanza, c'è più spazio per gli errori in ciò che la persona che riceve riceve. Se la frase è lunga, la persona può correggere più errori prendendo l'intera frase nel contesto, ma le frasi brevi hanno un tasso di errore più alto perché è più difficile decifrare ciò che la persona sta dicendo.
Ad esempio, se una persona urla, "Gatto rosso" e l'altra persona sente "Gatto fed", interrompono la frase in modo errato. Se, tuttavia, la prima persona ha detto: "Ho un gatto di colore rosso" e la seconda persona ha sentito "Ho un gatto di colore", il contesto della frase rende facile determinare la persona che ha effettivamente detto "rosso" e non "nutrito". Questo è il principio base alla base della codifica a blocchi e dell'uso di codici più lunghi e uniformi per aiutare i computer a tradurre accuratamente un blocco di informazioni.