I CODICI.

Slides:



Advertisements
Presentazioni simili
Dall’informazione al linguaggio macchina
Advertisements

Rappresentazioni numeriche
Teoria dei codici correttori d'errore
Informatica Generale Marzia Buscemi IMT Lucca
Fondamenti di Informatica
Rappresentazione dei dati e codifica delle informazioni
Rappresentazioni numeriche
Trasmissione delle informazioni
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
Sistemi e Tecnologie della Comunicazione
Algebra binaria Luglio 2002 Luglio 2002 Algebra binaria.
Gli alberi binari sono contenitori efficienti.
Rappresentazione dei dati e codifica delle informazioni
Circuiti di memorizzazione elementari: i Flip Flop
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 3 Codifica binaria.
Sistemi Elettronici Programmabili
Sistemi Elettronici Programmabili
A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Somma e differenza di due numeri in C2Somma e differenza di due numeri in C2 Half AdderHalf.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 Complemento a MComplemento a M Rappresentazione di numeri con segnoRappresentazione di numeri.
A.S.E.5.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 5 Rappresentazione di numeri con segnoRappresentazione di numeri con segno –Modulo e segno (MS)
Sistemi di Numerazione
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)
Ottobre Arch. degli elab. Mod. A – 1. Rappresentazione dellinformazione1 Rappresentazione dei numeri interi.
Confronto di due signed (in compl. a 2) Caso 1: numeri dello stesso segno Non ci può essere overflow (sottraendo, viene fuori un numero più piccolo in.
Algoritmi e strutture dati
Esistono 10 tipi di persone al mondo: Quelli che conoscono il codice binario & Quelli che non lo conoscono.
Rappresentazioni numeriche
Rappresentazione binaria dei numeri interi senza segno.
CODICI Si ringrazia il prof. Di Santo per aver gentilmente messo a disposizione il proprio materiale per la preparazione di alcune delle slides presenti.
Codici binari decimali
La conversione analogico-digitale, campionamento e quantizzazione
Rappresentazioni numeriche. Introduzione Un calcolatore elettronico dispone di uno spazio finito per memorizzare le cifre che esprimono un valore numerico.
Sistemi di numerazione Introduzione Max Plus II
Cos’è un problema?.
Display a 7 segmenti Il display a 7 segmenti è un dispositivo composto da 7 diodi luminosi LED (Light-Emitting Diode) sagomati a forma di rettangolo o.
Il sistema binario.
Sistema di comunicazione
Intelligenza Artificiale Algoritmi Genetici
Gli esseri viventi ricevono informazione direttamente dal mondo circostante e dai propri simili attraverso i sensi (percezione). La percezione, tuttavia,
Codifica binaria Rappresentazione di numeri
Programma del corso Dati e loro rappresentazione Architettura di un calcolatore Sistemi operativi Linguaggi di programmazione Applicativi: - fogli elettronici.
Conversione binario - ottale/esadecimale
Conversione binario - ottale/esadecimale
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
Cos’è una sequenza? Una sequenza è una successione finita di valori, dove ogni valore ha una durata prefissata e costante (T). I valori della sequenza.
Rappresentazione dell’informazione
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Rete Asincrona Una rete sequenziale asincrona è dotata di due ingressi E, X e di una uscita Z. L'uscita Z deve diventare 1 solamente quando durante l'ultima.
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori (Reti Locali, Internet)
RAPPRESENTAZIONE DELL'INFORMAZIONE
Dalle potenze ai numeri binari
Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 7.
Parte Terza: Codificare l’informazione
Che cos’è un sistema di numerazione?
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Linguaggi e Programmazione per l’Informatica Musicale
I computer vengono utilizzati per automatizzare la soluzione di problemi di varia natura trattando le informazioni in entrata (DATI) eseguendo gli opportuni.
Tecniche di progettazione Fault Tolerant
Rappresentazione dell’Informazione

INFORmazione autoMATICA
Fondamenti di Informatica1 Memorizzazione su calcolatore L'unità atomica è il bit (BInary DigiT) L'insieme di 8 bit è detta byte Altre forme di memorizzazione:
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Bit singolo e burst u un canale che trasmette voce tollera bene gli errori distribuiti uniformemente –perche’ errori singoli hanno effetti simili al rumore.
La codifica dei numeri.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 CodiciCodici BCDBCD GRAYGRAY ASCIIASCII RIEPILOGO Aritmetica in Base 2RIEPILOGO Aritmetica.
Transcript della presentazione:

I CODICI

I codici Codice (C): insieme di simboli (alfabeto) e di regole per generare parole che rappresentano gli elementi di un altro insieme di entità (C’). Simboli di C Parole di C Entità di C’ Cifre decimali Numeri naturali I I I I I I (0,1,2,..9) (p.e. 12) I I I I I I Bit Stringhe di 4 bit Numero intero (0, 1) (p.e. 1100) (p.e. 12) Lettere dell’ Parole italiane I I I I I I alfabeto italiano (p.e. dodici) I I I I I I (a, b, ..., z)

I codici (cont.) Codifica: operazione per cui ad una parola di C viene associato un elemento di C’.   Decodifica: operazione per cui ad un elemento di C’ si fa corrispondere una parola di C. Codice non ambiguo: codice in cui la corrispondenza tra le parole di C e gli elementi di C' è univoca.

Se si indica con b: il numero di simboli differenti usati per identificare le parole di C (nel caso di uso di un sistema di numerazione, b identifica la sua base); n: la lunghezza (costante) delle parole di C; m: il minimo valore di n che rende non ambiguo il codice C per codificare gli elementi di C’; N = |C’|   allora bm >= N (maggiore o uguale )

Un codice si dice:   irridondante se n = m ridondante se n > m ambiguo se n < m

Codifica binaria: distanza di Hamming Si definisce distanza di Hamming d(x,y) fra due parole (x,y) di un codice (C) il numero di posizioni (bit) per cui differiscono d( 10010 , 01001 ) = 4 d( 11010 , 11001 ) = 2 La distanza minima di un codice e’ allora dmin = min(d(x,y)) per ogni x e y appartenenti a C e diversi tra loro

Ambiguità e ridondanza   codici irridondanti h = 1 (e n = m) codici ridondanti h >= 1 (e n > m) codici ambigui h = 0

Esempi di calcolo distanza di Hamming   Esempi di calcolo distanza di Hamming Parole di C Prima codifica Seconda Terza Quarta Quinta alfa 000 0000 00 110000 beta 001 0001 01 0011 100011 gamma 010 0010 11 0101 001101 delta 011 10 0110 010110 mu 100 0100 1001 011011 h = 1 h = 1 h = 0 h = 2 h = 3 Irr. Rid. Amb. Rid. Rid. Rivela Rivela errori e corregge errori  

Codici binari decimali Si usano per rappresentare le dieci cifre decimali in binario dato che 23 < 10 < 24 occorrono almeno 4 bits Binario Decimale BCD Eccesso-3 Biquinary 1 di 10 0 0 0000 0011 0100001 0000000001 1 1 0001 0100 0100010 0000000010 10 2 0010 0101 0100100 0000000100 11 3 0011 0110 0101000 0000001000 100 4 0100 0111 0110000 0000010000 101 5 0101 1000 1000001 0000100000 110 6 0110 1001 1000010 0001000000 111 7 0111 1010 1000100 0010000000 1000 8 1000 1011 1001000 0100000000 1001 9 1001 1100 1010000 1000000000 145 decimale Binario 10010001 BCD 0001 0100 0101 Biquinary 0100010 0110000 1000001

Codice Gray(codice riflesso) Codici binari in cui le rappresentazioni di valori consecutivi variano per un solo bit 001 010 001 011 1 2 1 2 0 | 0 | 0 0 | 0 | 0 011 010 3 3 000 000 7 4 7 4 111 100 100 110 6 5 6 5 110 101 101 111 Dec. Binario GRAY-2 GRAY-3 0 000 0 0 0 00 1 001 0 1 0 01 2 010 1 1 0 11 3 011 1 0 0 10 4 100 1 10 5 101 1 11 6 110 1 01 7 111 1 00 E’ possibile costruire ricorsivamente un codice gray ad n+1 bits partendo da uno ad n bits utilizzando i seguenti passi: Le prime 2n parole del codice ad n+1 bits sono uguali a quelle del codice ad n bits estese (MSB) con lo ‘0’ Le seconde 2n parole del codice ad n+1 bits sono uguali a quelle del codice ad n bits ma scritte in ordine inverso (riflesso) ed estese (MSB) con ‘1’

Codice ASCII - codici carattere I codici carattere vengono usati per rappresentare in binario i simboli non numerici usati nella scrittura (ALFABETO , punteggiatura, parentesi ...) ed anche comandi standard provenienti componenti di I/O (tastiera, stampante ,...) Il più diffuso e’ il codice ASCII (American Standard Code for Information Interchange) composto da parole di lunghezza fissa a 7 bit (128 combinazioni) Una estensione successiva ad 8 bit del codice ASCII fu sviluppata dall’IBM e prende il nome di EBCDIC (Extended Binary-Coded Decimal Interchange Code) Ulteriori estensioni hanno permesso di incorporare nella rappresentazione i simboli utilizzati negli alfabeti di diverse lingue (cinese, russo..)

Codice ASCII - codici carattere

Codici rivelatori di errore (error detecting codes) 10001 10001 11001 TX RX Collegamento Ricevitore Trasmettitore Per “rivelare” errori di trasmissione il sistema che invia dati introduce ridondanza nelle informazioni trasmesse. Codice (n, k) con n> k => codice con parole di lunghezza n di cui k bit di informazione Un codice rivelatore di errore ha la proprietà che la generazione di un errore su una parola appartenente al codice produce una parola non appartenente al codice Si definisce peso di un errore il numero di bit “corrotti” durante la trasmissione In sistemi binari ho due soli casi di errore Trasmetto 0 Ricevo 1 Trasmetto 1 Ricevo 0

Codici rivelatori di errore (error detecting codes) Si definisce distanza di Hamming d(x,y) fra due parole (x,y) di un codice (C) il numero di posizioni (bit) per cui differiscono d( 10010 , 01001 ) = 4 d( 11010 , 11001 ) = 2 La distanza minima di un codice e’ allora dmin = min(d(x,y)) per ogni x e y appartenenti a C e diversi tra loro Un codice a distanza minima d e’ capace di rivelare errori di peso <= d-1

Codici rivelatori di errore (error detecting codes) Codice 1 Codice 2 A => 000 000 B => 100 011 C => 011 101 D => 111 110 110 111 110 111 100 100 101 101 010 011 010 011 000 000 001 001 dmin=2 dmin=1 Parole del codice (legali) Parole non appartenenti al codice

Codice di parità (distanza minima 2) Posso costruire un codice a dmin pari a 2 utilizzando le seguenti espressioni: d1 + d2 + d3 + ….. + dn + p = 0 parità oppure d1 + d2 + d3 + ….. + dn + p = 1 disparità Dove n è il numero di bit usati per rappresentare in binario gli oggetti (informazione), + e’ l’operatore di somma modulo 2 e p il bit di “parita” da aggiungere a quelli di informazione per costruire parole del codice (CODIFICA) Bits di informazione Parità Disparità 000 000 0 000 1 001 001 1 001 0 010 010 1 010 0 011 011 0 011 1 100 100 1 100 0 101 101 0 101 1 110 110 0 110 1 111 111 1 111 0 E’ un codice di distanza minima pari a 2 che permette di rivelare errori di peso 1 (single error)

Codice di parità (distanza minima 2) Bits di informazione inviati Bits di informazione ricevuti Sistema trasmissione Gen. parità Bit di parità parità ricevuta Verifica parità Segnale di errore I1 + I2 + I3 + p = 0 I1 + I2 + I3 + p = ? Se pari a 0 non ci sono stati singoli errori Se pari a 1 si è verificato un singolo errore Es. devo trasmettere l’informazione 101 Il generatore di parità calcola il bit di parità 1 + 0 + 1 + p = 0 cioè p = 0 e trasmetto 1010 Il ricevitore riceve 1110 ne verifica la parità 1 + 1 + 1 + 0 = 1 <> da 0 quindi si è verificato un errore Se avessi ricevuto 1111 => 1+1+1+1 = 0 tutto OK? , niente singoli errori !! (I doppi sono sfuggiti al check)

Codici correttori di errore (error correcting codes) E’ un codice capace di correggere gli errori generati durante la trasmissione Dato un codice a distanza minima d esso ha una capacita’ di correzione di errori di peso <= INTINF((d-1)/2) Quindi un codice a distanza minima 3 può correggere errori di peso = 1 001010 001110 2 001101 1 001100 001001 001011 3 d = 3 001000 001111 000000 101111 000111 101000 011000 001111

Codici di correzione e rivelazione 000110 001010 2 001011 3 000101 001001 001111 4 001100 1 d = 4 001000 000111 000000 010111 000011 101000 100111 011000 Un codice a distanza minima 4 può correggere errori di peso 1 (single error) e rivelare errori di peso 2 (double error). In alternativa puo’ rivelare errori di peso <= 3 001010 000110 2 3 001011 000101 4 001001 001111 001100 d = 4 001000 000111 010111 000000 101000 000011 011000 100111

Codici Hamming(1) Gruppi I7 + I6 + I5 + p4 = 0 I7 + I6 + I3 + p2 = 0 Metodo per la costruzione di codici a distanza minima 3 per ogni i e’ possibile costruire un codice a 2i -1 bit con i bit di parità (check bit) e 2i -1-i bit di informazione. I bit in posizione corrispondente ad una potenza di 2 (1,2,4,8,...) sono bit di parità i rimanenti sono bits di informazione Ogni bit di parità viene raggruppato con i bit di informazione la cui posizione espressa in binario ha 1 nella potenza di 2 corrispondente al bit di parità I7 I6 I5 p4 I3 p2 p1 7 6 5 4 3 2 1 posizione Gruppi X X X X I7 + I6 + I5 + p4 = 0 X X X X I7 + I6 + I3 + p2 = 0 X X X X I7 + I5 + I3 + p1 = 0 Bit di parità

Circuito di EDAC (Error Detection And Correction) Bits di informazione inviati Bits di informazione ricevuti Sistema trasmissione Generatore di chek bits (Encoder) Bits di parità Segnale di errore Controllo dei chek bits (Decoder) p4 = I5 + I6 + I7 Sindrome p2 = I3 + I6 + I7 S4 = p4 + I5 + I6 + I7 p1 = I3 + I5 + I7 S2 =p2 + I3 + I6 + I7 S1 = p1+ I3 + I5 + I7 Somma modulo 2 Se i tre bit di sindrome sono pari a 0 non ci sono stati errori altrimenti il loro valore da’ la posizione del bit errato