1 / 17

Teoria dei codici correttori d'errore Fondatore: Richard W. Hamming

Teoria dei codici correttori d'errore Fondatore: Richard W. Hamming Articolo : Error Detecting and Error Correcting Codes (1950) In ogni trasmissione digitale possono avvenire errori.

lamis
Download Presentation

Teoria dei codici correttori d'errore Fondatore: Richard W. Hamming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Teoria dei codici correttori d'errore Fondatore: Richard W. Hamming Articolo: Error Detecting and Error Correcting Codes (1950) In ogni trasmissione digitale possono avvenire errori. Es. ricezione da sonde spaziali o satelliti: canale molto disturbato, segnale molto debole  errori frequenti. Es. riproduzione musica o immagini digitali: supporto fisico danneggiato. Senza metodi efficaci e veloci di correzione degli errori non darebbe possibile ricevere informazioni dallo spazio, usare un lettore di CD o un telefonino! Es. graffio di alcuni millimetri sulla superficie di un CD non pregiudica l'ascolto grazie a codice di Reed - Solomon, in grado di correggere 'raffiche' di errori consecutivi di notevole lunghezza. Es. Telefoni cellulari GSM e satelliti: interferenze gestite utilizzando codici convoluzionali. Applicazioni nei campi più diversi: dalle telecomunicazioni alla biologia molecolare

  2. Gestione errore su 1 bit in sequenze di bit. Codice di ripetizione:Ripeti ciascun bit 3 volte Se uno dei bit è erroneamente invertito, viene riconosciuto e corretto durante la decodifica del suo blocco di 3 bit. 0000 000 000 000 000 Inefficiente: rapporto tra i bit attuali e i bit totali è solo 1/3 (per memorizzare/comunicare 1MB si memorizzano/inviano 3Mb) Codifica Hamming (7,4)Sequenza di bitsuddividisa in porzioni da 4 bit. Sia b il vettore che rappresenta una di tali porzioni, e codifichiamo b come bG a 7 bit, (operazioni modulo 2) Il tasso è 4/7, molto migliore. Vedremo che corregge 1 errore. •  00000001111111

  3. A=alfabeto An=insieme di sequenze di n simboli su A Definizione. La distanza di Hamming tra x e y in An è d(x,y)=numero di coordinate i t.c. xi diverso da yi es. d(0110,0011)=2 La distanza di Hamming è una metrica: d(x,y) = d(y,x) d(x,z) < d(x,y) + d(y,z) d(x,y) = 0 sse x=y

  4. Definizione: Un codice a correzione di errore è un sottoinsieme C di An. La distanza minima di C è (minimo su tutte le coppie di parole diverse in C) d(C)=mind(x,y) Definizione: C è e error detecting se può rilevare<e errori; C è t error correcting se può correggere<t errori DECODIFICA: a minima distanza Nota(esercizio): su BSC (con prob. errore <1/2) (min distanza)=(max probabilità)

  5. Definizione: Un codice a correzione di errore è un sottoinsieme C di An. La distanza minima di C è (minimo su tutte le coppie di parole diverse in C) d(C)=mind(x,y) Definizione: C è e error detecting se può rilevare<e errori; C è t error correcting se può correggere<t errori Proposizione: Se d(C)>2t+1, C e’ 2t error detecting e t error correcting Dim. d(C)=2t+1  sequenza a distanza <2t da parola codice non è in C  2t error detecting d(C)= 2t+1  sequenza r a distanza <t da p.c. ha distanza almeno 2t+1-t>t da ogni altra p.c. (vale disug. triangolare)  prendendo la p.c. più vicina a r correggiamo t errori  t error correcting y x r t t 1

  6. Parametri: q = |A| n = lunghezza delle parole codice k = lunghezza del messaggio (lunghezza pre-codifica) = logq |C| d = d(C) Si vuole: valori grandi di k e d, e valori piccoli di n. Possiamo anche cercare di massimizzare il tasso del codice k/n codice a correzione di errore con questi parametri codice (n, k, d)q .

  7. Trasmissione su canali rumorosi: • confronto tra Teoria di Hamming e Teoria di Shannon • (Visione ad Alto Livello) • Scopo: • Shannon: massimizzare il tasso e minimizzare la probabilità di decodifica errata. • Fornisce: funzioni di codifica e decodifica • Hamming: massimizzare il tasso • e numero errori corretti. • Fornisce: codice • (funzioni di codifica e decodifica efficienti) • Modello d’errore: • Shannon: random. Hamming: avversariale (caso peggiore). • In Pratica: • Risultati di Shannon ottimali ma non costruttivi • Teoria dei codici: non ottimali ma efficienti e veloci

  8. Codici a correzione di errore • Applicazioni in vari campi: matematica e informatica. Es.: • Trasmissione affidabile • Memorizzazione su supporti soggetti a guasti (es. CD graffiato) • Complessità: per pseudo-randomness, hardness amplification, probabilistically checkable proofs. • Crittografia: schemi di condivisione segreti, sistemi crittografici. • Matematica combinatoria e ricreativa.

  9. Esempio: Derandomizzazione di algoritmi Definizione: • A= algoritmo randomizzato (usa n random bits indip.) • A volte basta indipendenza limitata. • Pairwise independence sufficiente  derandomizzazione possibile: • Invece di y di n bits random • (A corretto  prob scegliere y con successo =p>0) • run A per ogni y in S • ( A corretto  esiste y con successo) • Algoritmo Deterministico A’ running time T(A’)= O(|S|T(A)) vogliamo S piccolo Teroria dei codici  Esiste S dimensione O(n)

  10. Codici lineari Alfabeto= A = campo finito (es. {0,…,q-1}, q primo, operazioni mod q) codice è lineare  esiste una matrice di controllo parità H (n-k x n) su A tale che C è lo spazio nullo di H, cioè C = {y | HyT = 0} C lineare è un sottospazio lineare di An x, y є C x + y є C x є C, a є Σ ax є C. C lineare generato da una matrice G (k x n): righe = insieme massimale di parole codice linearmente indipendenti = base spazio lineare. Codice = {x | x=aG}

  11. Codice di Hamming n=2l-1 Codice = spazio nullo di H = {x | HxT=0} Numero parole codice = ESEMPIOn=7=23-1 l=3, k=4, numero parole codice =16

  12. Definizione w(x) = peso di Hamming di x = numero componenti di x non nulle w(C)= minx in Cw(x) Lemma Dato codice lineare C w(C)= min numero colonne linearmente dipendenti di H Dim. H ha r colonne l.d. in posizioni i1,…,ir  esistono a1,...,ar tali che  Esiste parola codice di peso r:

  13. Lemma Dato codice lineare C • w(C)= min numero colonne linearmente dipendenti di H • Per codici di Hamming il peso minimo di una parola è 3: • Tutte colonne non nulle  min num colonne l.d. >1 • Tutte colonne diverse  c+c’ non nullo  min num colonne l.d. >2 • In H tutti vettori  date c,c’ esiste in H colonna c’’=c+c’ •  c + c’+ c’ ’=0  min num colonne l.d. è 3

  14. Lemma Dato codice lineare C, w(C) = d(C) Dim. Corollario Un codice lineare C corregge t errori se w(C)= d(C) > 2t+1 CODIFICA/DECODIFICA?

  15. CODIFICA/DECODIFICA dei Codici di Hamming D(C)=3  corregge 1 errore Siano c=(c0,…,cn-1)=parola codice, r=(r0,…,rn-1)=sequenza da decodificare c r r=c+e, ei=1 sse errore in posizione i HrT=H(c+e)T=HcT +HeT=HeT 0 errori  r=c e=0  HrT=H0T=0 1 errore posizione i  r=c+(0...010…0)=c+ei  HrT=HeiT=ai DECODIFICA: Calcola sindrome s=HrT se s=0 output r se s=ai output r+ei Se si sono avuti >2 errori?

  16. CODIFICA dei Codici di Hamming INPUT: bit di informazione= blocco di k=2l-l-1 bits Vogliamo codifica sistematica: bit di informazione in primi k bit della p.c. Proprietà Se scegliamo H=[A | In-k] allora G=[Ik | AT] Dim. Dobbiamo mostrare che CODIFICA SISTEMATICA: input a=(a0,…,ak-1) output parola codice c=aG c=(a0,…,ak-1,ck,…,cn-1)

More Related