Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Dispensa sulla codifica Hamming, Dispense di Reti Di Telecomunicazioni

Dispensa sulla codifica Hamming

Tipologia: Dispense

2011/2012

Caricato il 20/02/2012

rocki90
rocki90 🇮🇹

1 documento

1 / 25

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Codifica dell’informazione 1
CODIFICA
DELL’INFORMAZIONE
E CODICI BINARI
Andrea Bobbio
Anno Accademico 2001-2002
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Anteprima parziale del testo

Scarica Dispensa sulla codifica Hamming e più Dispense in PDF di Reti Di Telecomunicazioni solo su Docsity!

CODIFICA

DELL’INFORMAZIONE

E CODICI BINARI

Andrea Bobbio

Anno Accademico 2001-

La codifica dell’informazione

I sistemi di elaborazione operano al loro interno sol- tanto con segnali a due valori (binari).

I sistemi di elaborazione devono tuttavia scambiare in- formazioni con il mondo esterno in ingresso e in uscita.

Tali informazioni devono essere comprensibili ad un operatore umano, e assumono prevalentemente la forma di caratteri alfanumerici (numeri decimali, let- tere dell’alfabeto, simboli di punteggiatura, simboli ma- tematici etc..).

Tale apparente incomunicabilita fra i due linguaggi, viene ricomposta mediante l’adozione di opporture con- venzioni (o codici), mediante le qualie possibile rap- presentare in modo univoco un certo numero di simboli con configurazioni di bit prestabilite.

La codifica dell’informazione

Siano dati due alfabeti qualunque, A di k simboli e B di m simboli:

A = {ak− 1 , ak− 2... , a 0 }

B = {bm− 1 , bm− 2... , b 0 }

`e sempre possibile codificare l’insieme delle parole di A nell’alfabeto B e viceversa.

Procedimento: Si possono interpretare i k simboli di A come un siste- ma di numerazione posizionale in base k, e quindi ogni parola di A pu`o essere interpretata come un numero intero nel sistema posizionale di base k.

Analogamente, ogni parola di B pu`o essere interpretata come un numero intero nel sistema posizionale di base m.

Codificare una parola di A in B equivale ad un cam- biamento di base, da base k a base m.

Esempio di codifica

Sia A = {A, B, C} un alfabeto di 3 caratteri e B = {Rosso, V erde, Giallo, Blu} un alfabeto di 4 caratteri.

Si vuole codificare la seguente stringa di A in B

B C C A B

Per interpretare i simboli di A come un sistema di nu- merazione posizionale in base 3, attribuisco ai simboli di A i seguenti valori:

A = 2 ; B = 1 ; C = 0

Per interpretare i simboli di B come un sistema di nu- merazione posizionale in base 4, attribuisco ai simboli di B i seguenti valori:

Rosso = 3 ; V erde = 2 ; Giallo = 1 ; N ero = 0

Da cui:

B C C A B = 1· 34 +0· 33 +0· 32 +2· 31 +1· 30 = 88(10)

Vale la conversione 88(10) −→ (^1120) (4), Per cui, infine:

(B C C A B)A −→ (Giallo Giallo V erde N ero)B

Codici decimali pesati a 4 bit

Per rappresentare le 10 cifre distinte dei numeri deci- mali, occorrono codici binari a 4 bit.

Un codice decimale si dice pesato se la relazione che intercorre tra la cifra decimale D da rappresentare e l’insieme delle cifre binarie ad esso associato `e del tipo:

D =

m∑− 1 i=

bi · pi

dove:

→ m : numero di bit del codice → bi : generico bit del codice → pi : peso corrispondente.

Codice decimale BCD

Il codice decimale BCD (Binary Coded Decimal) `e un codice pesato con pesi (8 − 4 − 2 − 1).

Con questa codifica, ogni cifra decimale `e rappresentata dal binario puro corrispondente, secondo la seguente tabella:

Decimale Codice BCD

Con questa codifica, le posizioni del codice da (1 0 1 0) a (1 1 1 1) non sono utilizzate.

Conversione binario BCD → decimale

Si raggruppano le cifre binarie a 4 a 4 e si converte ciascun raggruppamento nella corrispondente cifra de- cimale secondo il codice BCD.

ESEMPIO:

Ricavare il valore decimale della sequenza di bit

0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1

sapendo che corrisponde a una codifica BCD.

Codici a barre

I codici a barre, usati prevalentemente sui prodotti commerciali, sono particolari forme di codici binari.

Per informazione sui codici a barre `e possibile con- sultare la pagina:

http://www.bizfonts.com/upc-ean/

Codice ASCII

Il codice ASCII e di gran lunga il codice alfanumerico piu diffuso per lo scambio di informazioni fra sistemi di elaborazione.

La sigla ASCII significa American Standard Code for Information Interchange.

Il codice ASCII costituisce di fatto uno standard per la codifica dell’informazione nei sistemi di elaborazione.

Il codice ASCII standard e codificato su 7 bit, e quindi puo rappresentare al massimo 2^7 = 128 simboli diversi.

Esiste una versione del codice ASCII che usa un ottavo bit (1 byte). Tale codice viene detto Codice ASCII esteso, ed `e, ad esempio, usato nei personal computer IBM MS/DOS.

Codice ASCII

ASCII Table Dec Hx Oct Char Dec Hx Oct Char Dec Hx Char Dec Hx Oct Char


0 0 000 NUL (null) 32 20 040 SPACE 64 40 100 @ 96 60 140 ‘ 1 1 001 SOH (start heading) 33 21 041! 65 41 101 A 97 61 141 a 2 2 002 STX (start of text) 34 22 042 " 66 42 102 B 98 62 142 b 3 3 003 ETX (end of text) 35 23 043 # 67 43 103 C 99 63 143 c 4 4 004 EOT (end of trans) 36 24 044 $ 68 44 104 D 100 64 144 d 5 5 005 ENQ (enquiry) 37 25 045 % 69 45 105 E 101 65 145 e 6 6 006 ACK (acknowledge) 38 26 046 & 70 46 106 F 102 66 146 f 7 7 007 BEL (bell) 39 27 047 ’ 71 47 107 G 103 67 147 g 8 8 010 BS (backspace) 40 28 050 ( 72 48 110 H 104 68 150 h 9 9 011 TAB (horizontal tab) 41 29 051 ) 73 49 111 I 105 69 151 i 10 A 012 LF (NL line feed) 42 2A 052 * 74 4A 112 J 106 6A 152 j 11 B 013 VT (vertical tab) 43 2B 053 + 75 4B 113 K 107 6B 153 k 12 C 014 FF (NP form feed) 44 2C 054 , 76 4C 114 L 108 6C 154 l 13 D 015 CR (carriage return) 45 2D 055 - 77 4D 115 M 109 6D 155 m 14 E 016 SO (shift out) 46 2E 056. 78 4E 116 N 110 6E 156 n 15 F 017 SI (shift in) 47 2F 057 / 79 4F 117 O 111 6F 157 o 16 10 020 DLE (data link esc) 48 30 060 0 80 50 120 P 112 70 160 p 17 11 021 DC1 (device contr 1) 49 31 061 1 81 51 121 Q 113 71 161 q 18 12 022 DC2 (device contr 2) 50 32 062 2 82 52 122 R 114 72 162 r 19 13 023 DC3 (device contr 3) 51 33 063 3 83 53 123 S 115 73 163 s 20 14 024 DC4 (device contr 4) 52 34 064 4 84 54 124 T 116 74 164 t 21 15 025 NAK (negative ack) 53 35 065 5 85 55 125 U 117 75 165 u 22 16 026 SYN (synchr idle) 54 36 066 6 86 56 126 V 118 76 166 v 23 17 027 ETB (end trans block) 55 37 067 7 87 57 127 W 119 77 167 w 24 18 030 CAN (cancel) 56 38 070 8 88 58 130 X 120 78 170 x 25 19 031 EM (end of medium) 57 39 071 9 89 59 131 Y 121 79 171 y 26 1A 032 SUB (substitute) 58 3A 072 : 90 5A 132 Z 122 7A 172 z 27 1B 033 ESC (escape) 59 3B 073 ; 91 5B 133 [ 123 7B 173 { 28 1C 034 FS (file separator) 60 3C 074 < 92 5C 134 \ 124 7C 174 | 29 1D 035 GS (group separator) 61 3D 075 = 93 5D 135 ] 125 7D 175 } 30 1E 036 RS (rec separator) 62 3E 076 > 94 5E 136 ^ 126 7E 176 ~ 31 1F 037 US (unit separator) 63 3F 077? 95 5F 137 _ 127 7F 177 DEL

Codici Ridondanti

Per codificare M simboli distinti (parole) con un codice binario, occorrono m ≥ d log 2 M e bit.

Un codice si dice ridondante, quando codifica gli M simboli distinti con n = m+r bit, cio`e usando r bit ag- giuntivi rispetto agli m bit strettamente richiesti dalla codifica binaria.

L’aggiunta di bit di ridondanza permette di costruire codici che consentono di controllare eventuali errori di trasmissione.

Si hanno due tipi di codici ridondanti:

¶ Codici a rivelazione di errore - Consentono di indi- viduare la presenza di un errore;

¶ Codici a correzione di errore - Consentono non solo di individuare la presenza di un errore, ma anche di identifcarne la posizione in modo da poterlo cor- reggere.

Codice BCD con bit di parit`a

Per costruire un codice BCD a rivelazione di errore, si puo aggiungere ad ogni parola codice un bit ridondante (r = 1) detto di parita.

Il bit di parit`a viene posto a 0 o a 1, in modo tale che la somma degli uni nella parola codice sia pari:

Decimale Codice BCD Bit parit`a

Codici Ridondanti - Distanza di Hamming

La distanza di Hamming fra due parole codice, si ot- tiene contando il numero di bit diversi in posizioni cor- rispondenti:

Distanza di Hamming= 0 0 1 1 1 1

In un codice a rivelazione di errore la distanza di Ham- ming fra due parole codice deve essere ≥ 2, in quanto un errore singolo deve produrre una sequenza di bit che non appartiene a nessuna parola codice.

In un codice a correzione di errore singolo la distanza di Hamming fra due parole codice deve essere ≥ 3, in quanto un errore singolo deve produrre una sequenza di bit che ha distanza di Hamming 1 dalla parola o- riginaria e distanza di Hamming almeno 2 rispetto a ogni altra parola codice, in modo da identificare univo- camente la parola originaria.

Codici di Hamming

Il codice di Hamming fornisce una procedura sistema- tica per generare codici ridondanti correttivi, tali che sia palese l’indicazione degli eventuali bit errati nella parola codice.

Verra considerato solo il caso di codice di Hamming autocorrettivo per bit singolo (in grado cioe di correg- gere un eventuale errore su un solo bit).

Siano: m bit di parola r bit di ridondanza n = m + r bit di parola codice

Ognuna dell 2m^ parole legali, ha n parole codice errate a distanza di Hamming 1, ottenute cambiando un bit alla volta nella parola originaria.

Ognuna dell 2m^ parole legali richiede (n + 1) configu- razioni di bit dedicate. Per cui deve essere:

2 n^ ≥ 2 m^ (n + 1) 2 m^ · 2 r^ ≥ 2 m^ (m + r + 1) 2 r^ ≥ (m + r + 1)