CODICI CORRETTORI E RIVELATORI DI ERRORE

Похожие документы
Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

La codifica. dell informazione

Le quattro operazioni fondamentali

Prontuario degli argomenti di Algebra

SCOMPOSIZIONE IN FATTORI PRIMI:

1 Multipli di un numero

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Le frazioni algebriche

Lab. Sistemi - Classe 5Bn A. S. 2000/2001 ITIS Primo Levi - Torino AA.AA. STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

4 0 = 4 2 = 4 4 = 4 6 = 0.

Le tecniche di calcolo mentale rapido usano alcune proprietà delle operazioni. Le principali proprietà utilizzate sono: = = 2 3

ESERCIZI DEL CORSO DI INFORMATICA

Normalizzazione. Definizione

La tabella dell addizione Completa la tabella e poi rispondi alle domande.

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

Informatica Teorica. Macchine a registri

4) 8 g di idrogeno reagiscono esattamente con 64 g di ossigeno secondo la seguente reazione:

Algebra di Boole Algebra di Boole

1.5 DIVISIONE TRA DUE POLINOMI

Numeri Frazionari. Numeri Frazionari

PROPORZIONI 6 : 3 10 : 5 8 : 4 42 : 21...

ARROTONDANDO FIGURE CON TRIANGOLI EQUILATERI

EQUAZIONI DI PRIMO GRADO

Sistemi Web per il turismo - lezione 3 -

PREVISIONE DEL TIPO DI NUMERO DECIMALE GENERATO DA UNA FRAZIONE di Luciano Porta

0.1 Esercizi calcolo combinatorio

STATISTICA DESCRITTIVA. Elementi di statistica medica GLI INDICI INDICI DI DISPERSIONE STATISTICA DESCRITTIVA

Lan Ethernet. Appunti a cura del prof. Mario Catalano

Il calcolatore. Architettura di un calcolatore (Hardware)

Metodi per la risoluzione di sistemi lineari

IGiochidiArchimede-SoluzioniBiennio 23 novembre 2005

1 IL LINGUAGGIO MATEMATICO

DISPENSA NUMERI MULTIPLI, DIVISORI, PRIMI, MCD E mcm DEFINIZIONI. Multiplo di un numero

Torino 20 marzo 2013 Corso di Metrologia applicata alla Meteorologia

Regola del partitore di tensione

Collaudo statico di un ADC

NUMERI COMPLESSI. Test di autovalutazione

Analisi. Calcolo Combinatorio. Ing. Ivano Coccorullo

E un trasduttore digitale in grado di fornire una indicazione binaria della. Non sfruttano alcun principio fisico. Nei trasduttori lineari a principio

Prof.ssa Laura Pagnozzi Prof. Ivano Coccorullo. Calcolo Combinatorio

Il Modello di von Neumann (2) Prevede 3 entità logiche:

PROBABILITÀ SCHEDA N. 5 SOMMA E DIFFERENZA DI DUE VARIABILI ALEATORIE DISCRETE

SPECIFICHE OPERATIVE X LA CONTABILITA DEI PROFESSIONISTI

Il test (o i test) del Chi-quadrato ( 2 )

Risoluzione di problemi ingegneristici con Excel

Esercizi sulla conversione tra unità di misura

CAPITOLO V. DATABASE: Il modello relazionale

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

Introduzione alle macchine a stati (non definitivo)

Esercitazioni di statistica

1.2 MONOMI E OPERAZIONI CON I MONOMI

Manuale del software Supplemento. Comunicazione tra sensore per rilevamento oggetti O2D2xx e Siemens Simatic S / / 2011

Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario

Manutenzione periodica al PIANO DEI CONTI

ESERCIZI IN PIÙ I NUMERI COMPLESSI

Lezione 2. Sommario. Il sistema binario. La differenza Analogico/Digitale Il sistema binario

SPORTELLO DIPENDENTE. - Personale amministrativo tecnico ausiliario (A.T.A.);

differiticerti.notebook November 25, 2010 nov nov nov Problemi con effetti differiti

Introduzione I contatori sono dispositivi fondamentali nell elettronica digitale e sono utilizzati per:

VERSIONE 1.2 PROT- D

il costo in contabilità generale

Le sue caratteristiche:

VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA

Capitolo 9. Esercizio 9.1. Esercizio 9.2

L indagine statistica

Internet (- working). Le basi.

CORSO DI STATISTICA (parte 1) - ESERCITAZIONE 5

Indice. Ricerca richiesta d offerta. Risultati della ricerca Navigazione Stati

Reti di Calcolatori:

Matematica con il foglio di calcolo

GRIGLIA DI CORREZIONE 2012 Matematica Classe V Scuola Primaria

Specifiche tecniche e di formato Presentazione comunicazione unica per la nascita d impresa

La funzione Hash. Garanzia dell integrità dei dati e autenticazione dei messaggi

La disposizione estetica della lettera commerciale

Procedura operativa per la gestione della funzione di formazione classi prime

ESERCITAZIONE MICROECONOMIA (CORSO B) ESEMPI DI ESERCIZI DI TEORIA DEI GIOCHI

PENSIONI MINIME E MAGGIORAZIONI 2013: ATTENZIONE AI REDDITI

Fondamenti di Internet e Reti

WebUploader Manuale d uso

Syllabus: argomenti di Matematica delle prove di valutazione

EXCEL. Alfabetizzazione Informatica Prof. GIUSEPPE PATTI

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Funzioni condizionali

Applicazione Periodo Fertile

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

SIMATIC WinCC V7.0 SP2 COMUNICAZIONE CON PLC S7. Leonetti Domenico Versione 2.0

Corso di laurea in Scienze Motorie Corso di Statistica Docente: Dott.ssa Immacolata Scancarello Lezione 15: Metodi non parametrici

Dr. Greco Polito Silvana. LAN: Local Area Network

Studio di funzione. Tutti i diritti sono riservati. E vietata la riproduzione, anche parziale, senza il consenso dell autore. Funzioni elementari 2

TECNICHE DI SPOSTAMENTO A MURO: ALCUNE DIFFERENZE TRA SESSI E LIVELLO TECNICO

Equazione irrazionale

Disconnessione Utente

Esercizi svolti di aritmetica

Транскрипт:

CODICI CORRETTORI E RIVELATORI DI ERRORE Una problematica che va affrontata quando si tratta di codificare informazioni è la gestione degli errori. Infatti, per quanto la tecnologia sia avanzata, può sempre succedere che l informazione trasmessa venga alterata. In poche parole qualcosa che è partito come 0 potrebbe arrivare come 1. Esistono delle tecniche per scoprire se ci sono stati degli errori ed in alcuni casi di correggerli. Codici rivelatori di errore (permettono di scoprire solo la presenza di un errore): - tecnica del bit di parità dispari; - tecnica del bit di parità pari; - tecnica CRC (Controllo a ridondanza ciclica) Codici correttori di errore (permettono di scoprire se c è un errore, ma anche di individuarne la posizione): - controllo di parità trasversale e longitudinale (detta anche parità incrociata); - codice di Hamming - 1 -

CODICI RILEVATORI BIT DI PARITÀ PARI Data una sequenza di n 1 bit, il corrispettivo codice di parità si ottiene aggiungendo un bit di controllo, detto bit di parità in modo tale che: il numero di bit a 1 sia pari (parità pari); il numero di bit a 1 sia dispari (parità dispari). Esempio Consideriamo un codice a 8 bit: 00111011 Per il codice parità pari viene aggiunto un bit nella posizione meno significativa (la prima da destra) in modo che il numero di 1 sia pari. Quindi diventerà: 001110111 parità pari Se la sequenza fosse stata: 10111011 Avremmo ottenuto: 101110110 parità pari CRC La semplice rilevazione degli errori è più efficiente; il metodo usato comunemente è il codice CRC o codice a ridondanza ciclica. (Ciclic Redundancy Check). II bit di dati da inviare vengono considerati come coefficienti (di valore 0 o 1) dei termini di un polinomio M(x). Se i bit sono m essi rappresentano i coefficienti di un polinomio di termini da x m-1 a x, in cui sono presenti i termini che corrispondono a bit di valore 1 e sono assenti quelli che corrispondono a bit di valore 0. Es.: stringa da inviare è 11001 (in questo caso m=5), il polinomio che la rappresenta è M(x)= x 4 + x 3 + 1 di grado 4 Viene inoltre utilizzato un polinomio G(x), chiamato polinomio generatore (di grado r e composto da r+1 bit), noto al mittente e al ricevente, in cui i bit di ordine più alto e più basso devono essere a 1. Es.: polinomio generatore G(x)= x 3 + 1 di grado 3 che equivale a: 1001 (4 bit) Sia M(x) la stringa di bit da inviare (di m bit) e G(x) il polinomio generatore (di r+1 bit): il grado di M(x) deve essere maggiore di quello di G(x), cioè m > r. Il metodo si basa sul calcolo di una checksum che dipende da M(x) e G(x), da aggiungere in fondo a M(x) in modo che la stringa ottenuta sia divisibile per G(x). II mittente invia un frame composto dai bit di dati (M(x)) e dalla checksum. Per calcolare la checksum di un pacchetto M(x) di m bit si procede così: si appendono r bit 0 (dove r è il grado di G(x)) a destra di M(x) in modo da ottenere il polinomio P(x)= x r M(x) di m + r bit; si divide il polinomio ottenuto P(x) per G(x); si sottrae il resto (che è sempre di r bit o meno) da P(x); il risultato è il frame completo di checksum da trasmettere; questo frame è divisibile per G(x) (resto 0). - 2 -

Per verificare la corretta ricezione basta che il ricevente divida il frame per G(x); se la divisione dà un resto vuol dire che si è verificato un errore. Le operazioni sui polinomi vengono eseguite in aritmetica modulo 2: non ci sono riporti per l'addizione o prestiti per la sottrazione; addizione e sottrazione sono identiche all'or esclusivo. La divisione viene eseguita come se fosse binaria ma la sottrazione è eseguita in modulo 2 (in pratica un divisore è contenuto nel dividendo se il dividendo ha tanti bit quanti il divisore, contando le cifre dal primo 1 a sinistra). Questo metodo non è infallibile; possono verificarsi degli errori nel frame inviato, che danno comunque 0 come risultato della divisione del frame per G(x), e che quindi non vengono rilevati. La scelta del polinomio G(x) è importante per la bontà del metodo. Alcuni polinomi che sono diventati standard internazionali sono: CRC-8 ATM(HEC) = X 8 +X 2 +X+1 CRC-12 = X 12 +X 11 +X 3 +X 2 +X 1 +1 CRC-16 = X 16 +X 15 +X 2 +1 CRC-32 (Ethernet FDDI) = X 32 + X 26 +X 23 +X 22 +X 16 +X 12 + X 10 +X 11 +X 8 + X 7 + X 5 + X 4 + X 2 + X + 1 CRC-CCITT = X 16 +X 12 +X 5 +1 Esempio Sia M(x) = 010110100. x 7 + x 5 + x 4 + x 2 di grado 8 (il termine x 8 ha coefficiente 0) Sia G(x) = x 4 +x 2 + 1 di grado 4 cioè 10101 polinomio generatore II grado del polinomio generatore è 4 (lunghezza 1) quindi P(x) è 0101101000000 0101101000000:10101 = 10011011 ----111 1110 --1110 --111 resto 0101101000000-111 0101101000111 sequenza che viene inviata II destinatario deve dividere questo polinomio ricevuto per G(x) e ottenere resto 0 (se il resto non è 0 si è verificato un errore). 0101101000111:10101 = 10011011 ----111 1110 --1111 11111-10101 ----- - 3 -

CODICI CORRETTORI PARITA INCROCIATA La tecnica più elementare di codice correttore è quella a parità incrociata (bit di parità trasversale e longitudinale). Questa tecnica consiste nel calcolare oltre al bit di parità per ogni parola (parità trasversale) anche un bit di parità per i bit che occupano la stessa posizione in ogni parola di un messaggio (parità longitudinale) e quindi richiede di aggiungere al messaggio un'ulteriore parola. L'aumento della ridondanza porta ad una maggiore efficacia nella gestione degli errori. La parità incrociata permette di individuare la posizione di un errore su un singolo bit (evidenziato sia dal bit di parità trasversale che dal bit di parità longitudinale) e quindi di correggerlo. Se gli errori sono più di uno, possono solo essere rilevati ma non corretti e in certi casi alcuni errori possono non venire individuati. 0 1 DISTANZA DI HAMMING Una parola di codice (codeword) su n bit consiste di m bit di dati e di r bit di controllo con n=m+r. Il numero di bit diversi tra due parole di codice viene detto distanza di Hamming; si può calcolare il numero di bit diversi facendo l'or esclusivo delle due stringhe e contando il numero di bit 1 del risultato; se due parole hanno distanza d significa che servono d errori per trasformare una nell'altra. es.: le stringhe: 1011011 1010010 hanno distanza 2 perché hanno solo 2 bit diversi In genere non tutte le possibili stringhe di n bit (2 n ) sono legali (anche se quelle con m bit di dati lo sono); la distanza minima tra le parole legali del codice è la distanza di Hamming del codice. es.: se le parole di un codice sono: 1011011 1010010 1101001 0100110 la distanza minima si determina calcolando la distanza tra tutte le coppie e poi prendendo la minima tra le distanze calcolate. La distanza di Hamming indica quanti errori si possono rilevare e quanti se ne possono correggere. Per rilevare d errori serve una distanza di d+1; per correggere d errori serve una distanza di 2d+1 (la parola originale è la più vicina valida). - 4 -

CODICE DI HAMMING CODICI CORRETTORI II codice di Hamming è un codice che permette di aggiungere un certo numero di bit ai bit di dati in modo da comporre parole con distanza 3 in grado di rilevare e correggere errori su un singolo bit. Il numero di bit da aggiungere aumenta all'aumentare del numero dei bit di dati. I bit aggiunti sono bit di parità calcolati su sottoinsiemi di bit della parola di codice; numerando a partire da 1 a sinistra i bit che compongono la parola di codice, i bit di parità vengono inseriti nelle posizioni che sono potenze di 2 (1, 2, 4, 8,16...); gli altri bit sono i bit di dati. Ogni bit di parità viene calcolato su un sottoinsieme di bit; ogni bit di dati può essere incluso in diversi sottoinsiemi e influire su diversi bit di parità. Per sapere su quali bit di parità influisce il bit di dati k basta riscrivere k come somma di potenze di 2 (per esempio 11 =1 +2 + 8); ogni bit di dati è controllato da tutti e soli i bit di parità che appartengono alla sua espansione (il bit 11 è controllato dai bit 1, 2 e 8). In ricezione, per ogni parola di codice vengono ricalcolati i bit di parità per ogni posizione k (con k= 1, 2, 4, 8,16...). Se la parità non è corretta viene aggiunto k a un contatore inizializzato a 0; al termine il valore del contatore indica la posizione del bit errato (se non sono corretti i bit di parità 1, 2 e 8 il bit errato è quello in posizione 11). Esempio: (1 2 3 4) posizioni Partendo dalla sequenza: 0 1 1 0 si calcolano e si inseriscono i bit di parità nelle posizioni 1, 2 e 4: 0 _ 1 1 0 quindi i bit di dati occupano le posizioni 3, 5, 6 e 7. 0 _ 1 1 0 1 1 1 2 2 2 4 4 4 Il bit 3 influenza i bit di parità 1 e 2 (3=1+2). il bit 5 influenza i bit di parità 1 e 4 (5=1+4). il bit 6 influenza i bit di parità 2 e 4 (6=2+4). il bit 7 influenza i bit di parità 1, 2 e 4 (7=1+2+4). Il bit di parità 1 è calcolato sui bit di dati 3, 5 e 7 (0 1 0) e quindi vale 1. Il bit di parità 2 è calcolato sui bit di dati 3, 6 e 7 (0 1 0) e quindi vale 1. Il bit di parità 4 è calcolato sui bit di dati 5, 6 e 7 (1 1 0) e quindi vale 0. Perciò si ottiene la sequenza: 1 1 0 0 1 1 0 Se un errore modifica la sequenza in: 1 1 0 0 1 0 0 ricalcolando i bit di parità si ottiene: bit di parità 1 calcolato sui bit di dati 3, 5 e 7 (0 1 0): 1 bit di parità 2 calcolato sui bit di dati 3, 6 e 7 (0 0 0): 0 bit di parità 4 calcolato sui bit di dati 5, 6 e 7 (1 0 0): 1 Confrontando i bit della sequenza con quelli calcolati viene incrementato il contatore k: il bit di parità 1 è uguale: k=0; il bit di parità 2 è diverso: k=2 (+2); il bit di parità 4 è diverso: k=6 (+4). Pertanto si può stabilire che c'è un bit errato nella posizione 6 e lo si può correggere riottenendo la sequenza: 1 1 0 0 1 1 0. Con questa codifica, se m sono i bit che costituiscono l informazione, il numero r di bit da aggiungere (ridondanti) si calcola come: il minimo r tale che 2 r >= m + r + 1-5 -