

























Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
I codici per la rilevazione e la correzione degli errori nella trasmissione digitale, concentrandosi sulla distanza di hamming, i codici di parità e i codici di hamming. Vengono presentati esempi pratici per il calcolo della distanza di hamming e la costruzione di codici correttori ottimi, illustrando come rilevare e correggere gli errori nei dati trasmessi. Il documento include anche una discussione sul controllo di parità incrociata e il checksum per migliorare l'affidabilità della trasmissione dei dati. L'obiettivo è fornire una comprensione approfondita delle tecniche utilizzate per garantire l'integrità dei dati nelle comunicazioni digitali.
Tipologia: Slide
1 / 33
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


























Trasmissione dell’Informazione
Lo scambio digitale di informazioni tra sottosistemi è quindi costituito da un flusso di elettroni in movimento che generano un campo magnetico e sono soggetti a rumori proprio di natura elettromagnetica: questi rumori possono arrivare a sovrapporsi al segnale fino al punto di distorcere il valore iniziale, variando uno o più valori di tensione, e “consegnando” al destinatario un’informazione diversa da quella che era stata trasmessa
Nell’esempio della figura un bit ha cambiato valore, cioè il valore iniziale 10011, trasmesso dal sistema mittente, viene interpretato 10111 dal sistema ricevente per effetto dei disturbi: in questo caso si dice che un bit si è sporcato
Un bit a causa di un disturbo del canale si è sporcato
IL BIT, ARRIVANDO DALLA SORGENTE ALLA DESTINAZIONE PUO' SPORCARSI.
Trasmissione dell’Informazione
Codifica dell’Informazione
Distanza di Hamming
Con distanza di Hamming tra due configurazioni binarie si intende il numero di bit per cui le due configurazioni differiscono
Vediamo alcuni esempi, dove indichiamo con D(A,B) la distanza tra due configurazioni binarie di 4 bit:
Reticolo di Hamming a 3 bit
Operativamente per calcolare la distanza tra due codifiche si esegue l’operazione di XOR tra i due codici e si contano quanti numeri 1 ha il risultato
s1 10001001 s2 10110001 s1 XOR s2 00111000
la distanza di Hamming tra s1 e s2 è pari a 3.
Distanza minima
Si definisce distanza minima di un codice la minima distanza che intercorre tra due configurazioni qualunque del codice
Per esempio, il codice ASCII ha : DMIN (Codice ASCII) = 1
in quanto esistono configurazioni che differiscono per un solo bit I codice non ridondanti hanno DMIN = 1 mentre i codici ridondanti devono avere DMIN >= 1
P Q P xor Q 0 0 0 0 1 1 1 0 1 1 1 0
In generale, un codice per la rilevazione di modifiche su k bit deve avere almeno DMIN = k + 1
Codici di Hamming
Per consentire la rilevazione e la correzione di errori è necessario utilizzare codici ridondanti, ovvero codici che utilizzano un numero maggiore di bit rispetto al numero strettamente necessario per codificare l’insieme sorgente
Indichiamo per esempio: m bit di dati contenenti l’informazione da trasmettere; r bit di controllo o bit ridondanti.
Ciascuna parola in codice utilizza n = m + r bit, quindi ha lunghezza pari a n bit.
I codici di identificazione e correzione di errore con controllo di parità si chiamano codici di Hamming
Per esempio, aggiungiamo il bit di parità come LSB al seguente alfabeto in codice di 7 bit. Ora le parole hanno lunghezza 8 bit e se si verificasse il danneggiamento di un bit durante la trasmissione, il ricevitore sarebbe in grado di accorgersene riconoscendo la presenza dell’errore semplicemente effettuando il conteggio degli 1 presenti
Una volta intercettato l’errore viene richiesta la ritrasmissione del messaggio
Si definisce codice legittimo una parola in codice che soddisfa l’algoritmo di parità
Possiamo facilmente notare che il controllo di parità con ridondanza singola non si accorge di doppi errori
Questo sistema di rilevazione e correzione di un errore è quello normalmente utilizzato sui bus all’interno dei PC dato che la frequenza con cui si sporcano i bit sono dell’ordine di “ 1 ogni qualche migliaia di ore di funzionamento ”. Sarebbe anche sufficiente la richiesta di ritrasmissione e quindi potrebbe bastare questo semplice controllo di parità come precauzione in caso di errori
SE SODDISFA LA PARITA' SI DICE CODICE LEGITTIMO
Questo sistema di rilevazione e correzione di un errore è quello normalmente utilizzato sui bus all’interno dei PC dato che la frequenza con cui si sporcano i bit sono dell’ordine di “ 1 ogni qualche migliaia di ore di funzionamento ”. Sarebbe anche sufficiente la richiesta di ritrasmissione e quindi potrebbe bastare questo semplice controllo di parità come precauzione in caso di errori
Diversa è l’ipotesi di trasferimento di dati verso HD o dispositivi elettromeccanici dove è necessario cautelarsi con sistemi più complessi in grado di effettuare direttamente l’autocorrezione
Nel nostro esempio, oltre alle codifiche riportate nella tabella che segue, abbiamo
per esempio:
che sono altre configurazioni non contemplate nella codifica ma che rispettano le
condizioni di parità.
Supponiamo però che l’ultimo byte (10001000) arrivi a destinazione con tutti zeri
(00000000), cioè che si siano sporcati 2 bit: il destinatario non si accorgerebbe
dell’errore e lo interpreterebbe come dato valido.
CODICE LEGITTIMO Si definisce codice legittimo una parola in codice che soddisfa l’algoritmo di parità.
Quindi il controllo di parità con ridondanza singola non si accorge di doppi errori, e comunque in caso di singolo errore non sa correggerlo, ma solamente identificarlo
Individuazione e correzione degli errori
Se la distanza di Hamming tra codici legittimi è pari almeno a d = 2n + 1, allora è correggibile l’errore sino all’ordine n di errori
Codice correttore di ordine n
il codice di Hamming è un codice che consente di correggere un singolo errore e funziona con qualunque dimensione del messaggio da trasmettere
L’idea di base del codice di Hamming è quella di codificare la posizione dell’eventuale errore : si aggiungono alcuni bit di controllo, tanti quanti sono necessari per codificare la posizione del bit errato ma, poiché anche i bit di controllo sono soggetti a errore, occorre includere anche le posizioni di questi bit nel conteggio totale
Bit dati + Bit di controllo Codework Codice di Hamming
Costruiamo un codework
Vogliamo trasmettere la stringa 00101101
Per ottenere un codice correttore ottimo abbiamo bisogno di 4 bit di parità, infatti:
1 2 3 4 5 6 7 8 9 10 11 12
Bit di controllo
Bit di dati
Rileviamo e correggiamo l’errore
Riceviamo la stringa 100000011101
Analizziamo la stringa per vedere se c’è un bit errato ed eventualmente lo correggiamo
1 2 3 4 5 6 7 8 9 10 11 12
Bit di controllo
Bit di dati
Si sommano le posizioni dei bit di parità con errore e si trova la posizione del bit errato
2+4=
Il bit errato si trova alla posizione 6, quindi può essere cambiato, ottenendo così la stringa trasmessa correttamente