90 likes | 235 Views
Presentazione 9.2. Rilevamento e correzione di errore. Informatica Generale (Prof. Luca A. Ludovico). Affidabilità dei dispositivi. Gli errori di comunicazione si verificano quando le informazioni vengono trasmesse erroneamente tra le parti di un calcolatore o in un canale trasmissivo esterno.
E N D
Presentazione 9.2 Rilevamento e correzione di errore Informatica Generale (Prof. Luca A. Ludovico)
Affidabilità dei dispositivi • Gli errori di comunicazione si verificano quando le informazioni vengono trasmesse erroneamente tra le parti di un calcolatore o in un canale trasmissivo esterno. • Inoltre, agenti esterni o malfunzionamenti nei dispositivi di registrazione possono provocare letture e/o scritture errate di alcuni bit. • Soluzione: adottare tecniche di codifica robuste all’errore, ossia in grado di rilevare e/o correggere automaticamente un certo numero di errori. Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.2
Bit di parità • Obiettivo: rilevamento degli errori • Idea: tutte le configurazioni di n bit devono avere un numero pari (o dispari) di 1 • Tecnica: si aggiunge agli n-1 bit “buoni” 1 bit di parità • Parità pari: il numero di 1 deve essere pari • Parità dispari: il numero di 1 deve essere dispari • Esempio: bit di parità pari ogni 8 bit della seguente stringa 00001110 11101010 01111000 01011010Risultato: per rendere pari il numero di 1 ogni 8 bit aggiungo:100001110 111101010 001111000 001011010 Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.2
Limiti della tecnica del bit di parità • Rileva un eventuale errore, ma non lo corregge. • Non è detto che l’errore sia sugli n-1 bit “buoni”, potrebbe essere sul bit di parità. • Non ci si accorge di un numero di errori pari. Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.2
Codici di correzione degli errori • Gli errori non vengono solo rilevati, ma anche corretti in modo automatico. • Distanza di Hamming tra due configurazioni dello stesso numero di bit è il numero di bit in cui esse differiscono. • Ad esempio: • 11110000 e 11111000 hanno d = 1 • 01100011 e 01101100 hanno d = 4 Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.2
Tecnica della distanza di Hamming • Consideriamo dmin la minima distanza di Hamming tra tutte le diverse combinazioni. • Numero di errori rilevabili: er = dmin – 1 • Numero di errori correggibili: ec = (dmin – 1) / 2 • Per decodificare un messaggio, si confronta la configurazione ricevuta con quelle del codice finché non si trova quella con distanza minima. Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.2
Esempio Cuori 00000000 Quadri 00111100 Fiori 11110000 Picche 00001111 In questo caso: dmin = 4 quindi er = 3 ed ec = 1 Che succede quando invio Cuori e arriva 00000111? Che succede quando arriva 00001100? Che succede quando arriva 00000100? Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.2
Esempio A 000000 B 001111 C 010011 D 011100 E 100110 F 101001 G 110101 H 111010 In questo caso: dmin = 3 quindi er= 2 ed ec = 1 Che succede quando arriva 110011? L’elemento a distanza minima è C (d = 1) quindi viene rilevato l’errore e corretto come 010011. Che succede quando arriva 011111? Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.2
Esercizio • Si progetti un codice di Hamming atto a rappresentare 8 diversi simboli (ad es. i numeri naturali da 1 a 8) facendo uso di 4 bit e garantendo una distanza minima dmin = 2. • Possibile soluzione: 1 è 0000, 2è1100, 3è0011, 4è1111, 5è1001, 6è0110, 7è1010, 8è0101 Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.2