1) Hamming bound, coset, codici equivalenti

Documenti analoghi
1) Codici ciclici. 2) Esempi di codici ciclici. 3) Algoritmi di codifica e decodifica. 4) Circuiti di codifica

Codici Lineari G = [I K P], (1)

Codifica di canale. (dalle dispense e dalle fotocopie) Trasmissione dell Informazione

3x 2 = 6. 3x 2 x 3 = 6

SISTEMI LINEARI. x y + 2t = 0 2x + y + z t = 0 x z t = 0 ; S 3 : ; S 5x 2y z = 1 4x 7y = 3

a + 2b + c 3d = 0, a + c d = 0 c d

1) Codici convoluzionali. 2) Circuito codificatore. 3) Diagramma a stati e a traliccio. 4) Distanza libera. 5) Algoritmo di Viterbi

1) Codici lineari a blocchi. 2) Matrice generatrice del codice. 3) Proprietà dei codici lineari a blocchi. 4) Matrice di controllo di parità

Sistemi di equazioni lineari

Elementi di Algebra Lineare Matrici e Sistemi di Equazioni Lineari

Metodi per la risoluzione di sistemi lineari

Introduzione soft alla matematica per l economia e la finanza. Marta Cardin, Paola Ferretti, Stefania Funari

Sistemi II. Sistemi II. Elisabetta Colombo

RANGO DI UNA MATRICE ρ(a)

ESERCIZI DI MATEMATICA DISCRETA ANNO 2006/2007

Esercitazione 6 - Soluzione

SISTEMI LINEARI MATRICI E SISTEMI 1

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n

APPLICAZIONI LINEARI

1 Equazioni parametriche e cartesiane di sottospazi affini di R n

Appunti su Indipendenza Lineare di Vettori

MATRICI E SISTEMI LINEARI

FONDAMENTI DI ALGEBRA LINEARE E GEOMETRIA

Analisi dei dati corso integrato - Algebra lineare,

La riduzione a gradini e i sistemi lineari (senza il concetto di rango)

x1 + 2x 2 + 3x 3 = 0 nelle tre incognite x 1, x 2, x 3. Possiamo risolvere l equazione ricavando l incognita x 1 x 1 = 2x 2 3x 3 2r 1 3r 2 x 2 x 3

Esercizi sui sistemi di equazioni lineari.

Profs. Roberto Cusani Francesca Cuomo

SISTEMI LINEARI. x 2y 2z = 0. Svolgimento. Procediamo con operazioni elementari di riga sulla matrice del primo sistema: R 2 R 2 3R

Dipendenza e indipendenza lineare (senza il concetto di rango)

Esercitazione di Analisi Matematica II

Esercizi di Matematica di Base Scienze biologiche e Scienze e Tecnologie dell Ambiente

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Per le risposte utilizza gli spazi predisposti. Quando richiesto, il procedimento va esposto brevemente, ma in maniera comprensibile.

Lezione 7: Il Teorema di Rouché-Capelli

Forme bilineari simmetriche

Registro Lezioni di Algebra lineare del 15 e 16 novembre 2016.

Codici convoluzionali

1 Indipendenza lineare e scrittura unica

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

Matematica per Analisi dei Dati,

RETI LINEARI R 3 I 3 R 2 I 4

I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.

ALGEBRA E GEOMETRIA Esercizi Corso di Laurea in Chimica - anno acc. 2015/2016 docente: Elena Polastri,

Determinanti. Definizione ed esempi. Definizione ed esempi. Proprietà dei determinanti Rango di matrici

Corso di Matematica per la Chimica

Applicazioni eliminazione di Gauss

0.1 Spazi Euclidei in generale

RETTE E PIANI NELLO SPAZIO

1 Il metodo dei tagli di Gomory

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

Esercizi svolti. delle matrici

Note sui sistemi lineari

SISTEMI LINEARI, METODO DI GAUSS

Definizione 1. Una matrice n m a coefficienti in K é una tabella del tipo. ... K m, detto vettore riga i-esimo, ed a im

Lezione 10: Teorema di Rouchè-Capelli e la classificazione dei sistemi lineari

15 luglio Soluzione esame di geometria - Ing. gestionale - a.a COGNOME... NOME... N. MATRICOLA... ISTRUZIONI

Geometria BIAR Esercizi 2

Luigi Piroddi

dipendenti. Cosa possiamo dire sulla dimensione di V?

Geometria analitica: rette e piani

EQUAZIONE DELLA RETTA

Esercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =

ha come obiettivo quello di costruire a partire da A una matrice U, m n, che abbia il

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

Metodo dei minimi quadrati e matrice pseudoinversa

ESAME DI MATEMATICA I parte Vicenza, 05/06/2017. x log 2 x?

Codici binari decimali

Sui determinanti e l indipendenza lineare di vettori

Appunti sui Codici di Reed Muller. Giovanni Barbarino

Il teorema di Rouché-Capelli

Condizione di allineamento di tre punti

1 Il polinomio minimo.

3.6 Metodi basati sui piani di taglio

Dipendenza e indipendenza lineare

10.. Codici correttori d errore. Modulo TLC:TRASMISSIONI Codici correttori d errore

Luigi Piroddi

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite

Corso di Matematica Generale M-Z Dipartimento di Economia Universitá degli Studi di Foggia ALGEBRA LINEARE. Giovanni Villani

4.5 Metodo del simplesso

1 se k = r i. 0 altrimenti. = E ij (c)

SPAZI VETTORIALI. Esercizi Esercizio 1. Sia V := R 3. Stabilire quale dei seguenti sottoinsiemi di V sono suoi sottospazi:

1) Probabilità di errore di trasmissione. 2) Capacità di canale. 3) Esempi di calcolo della capacità. 4) Disuguaglianza di Fano

ESERCIZI SULLE MATRICI

Geometria Analitica Domande e Risposte

CODICI CICLICI. TEORIA DEI CODICI CORSO DI GRAFI E COMBINATORIA A.A Prof.ssa Bambina Larato - Politecnico di Bari

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Esercizio 1 Trovare, se esistono, le soluzioni del sistema lineare. y + 3z = 3 x y + z = 0. { x + y = 1

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

GEOMETRIA PIANA. 1) sia verificata l uguaglianza di segmenti AC = CB (ossia C è punto medio del segmento AB);

Esercizi sulla retta. Gruppo 1 (4A TSS SER, 4B TSS SER, 4A AM )

Chi non risolve esercizi non impara la matematica.

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

Algebra lineare Geometria 1 11 luglio 2008

(x B x A, y B y A ) = (4, 2) ha modulo

Corso di Matematica II Anno Accademico Esercizi di Algebra Lineare. Calcolo di autovalori ed autovettori

Esercizi di ripasso: geometria e algebra lineare.

Transcript:

Argomenti della Lezione ) Hamming bound, coset, codici equivalenti 2) Esercizi sui codici lineari a blocchi

Osservazione () Per effettuare la decodifica a rivelazione di errore si può seguire una delle due procedure seguenti: a) Verificare che il vettore y ricevuto sia uguale ad una delle codeword del codice C. b) Verificare che la sindrome s associata al vettore y ricevuto sia uguale al vettore nullo. Per effettuare la decodifica a correzione di errore si può seguire una delle due procedure seguenti che permettono di stimare la codeword trasmessa x: a) Identificare all'interno della matrice canonica la posizione in cui si trova il vettore y ricevuto. Scegliere come vettore trasmesso (codeword) quello che compare nella stessa colonna di y e in prima riga. b) Calcolare la sindrome s associata ala vettore y ricevuto e identificare il coset leader corrispondente ad s nella tabella di associazione sindrome/coset leader. Scegliere come vettore di errore stimato tale coset leader e sommarlo ad y ottendo la codeword stimata x. 2

Sia H la matrice di controllo di parità di un codice lineare a blocchi ed e il generico vettore di errore, scritti come: e [ e e... ] 2 e n Osservazione (2) H T h h2... h n dove h i è la i-esima riga della matrice H T. La sindrome associata ad e si può scrivere come: s eh T Quindi s è uguale alla somma delle righe di H T che corrispondono alle posizioni in cui si è verificato un errore. Nel caso di codice a correzione di errore singolo, la sindrome associata ad un errore singolo in posizione i è uguale alla riga i-esima di H T (o alla colonna i-esima di H). Se esiste una riga di H T composta da tutti valori pari a zero oppure se esistono due righe di H T uguali allora non è possibile correggere tutti i vettori di errore a peso unitario. i n e h i i 3

Sia t la capacità di correzione degli errori per un codice lineare a blocchi C. Un dato requisito su t si tramuta in un vincolo su n e k. Infatti per la disuguaglianza detta Hamming Bound si ha: 2 n k + Osservazione (3) n + n 2 +... + n t t i n i numero di diversi coset del codice C numero di diversi vettori di errore di peso numero di diversi vettori di errore di peso numero di diversi vettori di errore di peso 2 numero di diversi vettori di errore di peso t Nota : il coefficiente binomiale rappresenta il numero di possibili combinazioni in cui possono essere disposti i elementi in n posti (n i): n n! i!( n i)! Nota 2: la Hamming Bound diventa uguaglianza per codici perfetti. i 4

Osservazione (3) cont. Consideriamo il codice lineare a blocchi C {,,,}. Poichè il numero M di codeword è uguale a 4 e M2 k allora k2. Tale codice ha n3. d min e quindi non può nè correggere nè rivelare errori. Infatti, ad esempio il vettore di errore a peso unitario [] sommato alla seconda codeword produce la codeword [] e ciò non permette di rivelare tale errore singolo. Tale codice ha 2 n-k 2 diversi coset di 2 k 4 diversi elementi ciascuno che sono: {,,,} il cui coset leader è {,,,} il cui coset leader è 5

Osservazione (3) cont. Consideriamo il codice lineare a blocchi C 2 {,,,}. Tale codice, come il codice C ha n3 e k2. d min 2 e quindi non può correggere errori, ma può rilevare errori singoli. Tale codice ha 2 n-k 2 diversi coset di 2 k 4 diversi elementi ciascuno che sono: {,,,} il cui coset leader è {,,,} il cui coset leader è Poichè 2 n-k 2 ed n3, i due diversi coset leader associati ai due diversi coset non coprono tutti i possibili vettori di errore a peso unitario di lunghezza 3 che sono:,,, (includendo anche il vettore errore di tutti zeri). Considerando la Hamming bound, per permettere la correzione di errori singoli, cioè per permettere t è necessario aumentare la ridondanza cioè aumentare n-k (o equivalentemente aumentare 2 n-k ). 6

Osservazione (3) cont. Consideriamo la disuguaglianza Hamming Bound per t: 2 n k + n + n!!( n )! + n Tale disuguaglianza è verificata per i seguenti valori minimi di n al variare di k: k n R c k/n note 3,33 Verificata con uguaglianza (codice perfetto). Corrisponde al codice a ripetizione (3,) 2 5,4 3 6,5 4 7,57 Verificata con uguaglianza (codice perfetto). Corrisponde al codice di Hamming (7,4) 7

Osservazione (3) cont. Analizziamo il caso in cui k ed n3 (per aumentare n-k abbiamo diminuito k). Consideriamo il codice lineare a blocchi C 3 {,}. Tale codice è il codice a ripetizione (3,). I 2 n-k 4 diversi coset di C 3 sono: {,} il cui coset leader è {,} il cui coset leader è {,} il cui coset leader è {,} il cui coset leader è I quattro coset leader ora includono tutti i 4 possibili vettori di errore a peso. 8

Esercizio Sia dato un codice C a ripetizione (4,). Si determini: ) se C è lineare e/o sistematico e perchè 2) la matrice generatrice del codice 3) la capacità di correzione dell errore 4) la capacità di rivelazione dell errore 5) il circuito codificatore 9

Esercizio cont. ) Il codice a ripetizione è un codice lineare a blocchi di tipo (n,). Per questo codice n4.la relazione di corrispondenza tra le dataword e le codeword è la seguente: u -> x u -> x Poiché il vettore x di tutti zeri appartiene al codice ed inoltre la somma modulo 2 delle codeword è ancora una codeword, allora il codice è lineare. Il codice è sistematico poiché le codeword hanno come simbolo iniziale la dataword associata. 2) Per la matrice G generatrice del codice, di ordine k x n x 4, si può scrivere: x ug in Ponendo x x [ x x2 x3 x4] u [ u] [ ] e u [] si ha G [ ] cui

Esercizio cont. 3) La capacità di correzione dell errore si calcola a partire dalla distanza minima. Poiché esistono soltanto due parole di codice che differiscono in tutti i quattro bit, la distanza minima di Hamming è d min 4. Tale codice può correggere fino a t errori dove: t d 2 4 2 min 4) Tale codice può rivelare fino a r errori dove: r dmin 4 3

Esercizio cont. 4) Poiché k il registro a scorrimento in ingresso è costituito da un solo stadio, mentre essendo n4 il registro a scorrimento in uscita è costituito da 4 stadi. Dalla relazione matriciale tra x, u e G si può scrivere: x u, x 2 u, x 3 u, x 4 u. Il circuito codificatore è il seguente: k u x x 2 x 3 x 4 n4 2

Esercizio 2 Si consideri un codice lineare a blocchi a correzione di errore singolo, e caratterizzato dalla seguente matrice di controllo di parità: H Trovare l errore associato alla ricezione della parola y[ ] 3

Calcoliamo la sindrome associata ad y[ ] H Esercizio 2 Esercizio 2 cont cont. ] [ ] [ T yh s Poichè s[ ] è uguale alla 5 a colonna di H (o alla 5 a riga di H T ), allora è stato introdotto un errore in 5 a posizione: e[ ] 4

Esercizio 3 Si consideri un codice lineare a blocchi con k2 e n5, e caratterizzato dalla seguente matrice generatrice: G Determinare: ) Le parole di codice 2) La capacità di correzione e di rivelazione dell errore 3) Utilizzando la sindrome, verificare che la parola z[ ] non appartiene al codice 4) Utilizzando la sindrome effettuare la correzione della suddetta parola z. 5

Esercizio 3 cont. ) Le parole di codice si ottengono moltiplicando tutte le possibili dataword che si ottengono con k2 per la matrice generatrice del codice: x ug [ ] u u 2 u u u u [ ] x [ ] [ ] x [ ] [ ] x [ ] [ ] x [ ] 6

Esercizio 3 cont. 2) Per ricavare la capacità di correzione e di rivelazione dell errore del codice bisogna determinare la distanza minima. Poiché il codice è lineare, la distanza minima è data dal peso di Hamming della parola di codice x che ha peso minimo. Poiché le parole di codice x hanno peso rispettivamente: 3, 3 e 4, allora la distanza minima del codice è pari a 3. La capacità di correzione e di rivelazione dell errore sono rispettivamente: t d 2 3 2 min r dmin 3 2 7

Esercizio 3 cont. 3) La sindrome associata ad un vettore z è un vettore di dimensione mn-k. Per risalire alla sindrome, la quale permette di verificare l esistenza di una parola di codice ed eventualmente di correggerla, bisogna calcolare la matrice del controllo di parità H (matrice di ordine (n-k) n) partendo dalla matrice P (matrice di ordine k (n-k)): [ P ] H I G [ I P] k T n k P H [ P T I ] 3 8

Esercizio 3 cont. s zh T [ ] [ ] Poiché la sindrome s associata al vettore z non risulta un vettore di soli zeri, allora z non è una codeword. 9

Esercizio 3 cont. 4) Per correggere la parola z bisogna calcolare il vettore di errore e. Sappiamo che il codice è a correzione di errore singola e che s[ ] è uguale alla quarta colonna di H e quindi si è verificato un errore in quarta posizione: e [ ] A tale vettore di errore corrisponde la codeword: x z+ e [ ] 2

Esercizio 4 Un codice lineare a blocchi (6,3) sistematico ha i tre bit di parità calcolati mediante le tre equazioni: x x 4 u u + u + u 3 5 2 6 u u2 x + + u 3 Determinare: ) La matrice generatrice del codice 2) L insieme delle parole di codice Decodificare le parole: y [ ] e y 2 [ ] 2

) Essendo il codice sistematico, la matrice generatrice 3 6 può essere scritta come: ed essendo: [ ] P I G 3 3 4 u u x + Esercizio 4 Esercizio 4 cont cont. si ha: 2 6 3 2 5 u u x u u u x + + + G 22

Esercizio 4 cont. 2) Poichè k3, esistono 2 k 8 codewords date da: x ug G Scrivendo tutte le possibili combinazioni di dataword di tre bit si ottiene la tabella: dataword codeword 23

Per la decodifica è necessario calcolare la matrice di controllo di parità: P G Esercizio 4 Esercizio 4 cont cont. [ ] 3 I P H T T H 24

Esercizio 4 cont. Per decodificare la parola y [ ] sindrome associata: s bisogna calcolare la [ ] [ ] T yh Poichè s è un vettore di tutti zeri, la parola y è stata ricevuta senza errori e la codeword trasmessa è x y [ ] 25

Esercizio 4 cont. Per decodificare la parola y 2 [ ] sindrome associata: s bisogna calcolare la [ ] [ ] T 2 y2h Poichè s 2 è uguale alla quarta riga di H T, la parola y 2 è stata ricevuta con un errore in quarta posizione, e quindi la codeword trasmessa è: x y 2 + e [ ] + [ ] [ ] 26

Esercizio 5 Un codice lineare a blocchi ha la seguente matrice di controllo di parità: H ) Determinare la matrice generatrice del codice 2) Decodificare la parola y[ ] ed identificare la dataword trasmessa. 27

) Poichè H è in generale una matrice di ordine (n-k) n, si ha che: n-k3, n6, > k3. La matrice generatrice del codice è una matrice k n del tipo: Esercizio 5 Esercizio 5 cont cont. ] [ 3 I P H T Ricavando la matrice P di ordine k (n-k) si può risalire alla matrice G: [ ] P I G 3 G P 28

Esercizio 5 cont. Per decodificare la parola y [ ] bisogna calcolare la sindrome associata: s yh T [ ] [ ] Poichè s è uguale alla seconda riga di H T, la parola y è stata ricevuta con un errore in seconda posizione, e quindi la codeword trasmessa è: x y + e [ ] + [ ] [ ] Poichè il codice è sistematico, la dataword trasmessa è: u [ ] 29

Osservazione (4) Ogni codice lineare a blocchi C ha un codice equivalente C con matrice generatrice in forma sistematica (o standard). Sia G la matrice generatrice di un codice binario lineare a blocchi C. La matrice generatrice G di un codice C equivalente al codice C può essere ottenuta da G tramite le seguenti operazioni: ) permutazione delle righe di G 2) sostituzione di una riga di G con la somma di una riga con un altra riga 3) permutazione delle colonne di G N.B. le operazioni elementari sulle righe del tipo ) e 2) portano ad una matrice G che genera un codice C C. Le operazioni semplici sulle colonne del tipo 3) portano ad una matrice G che genera un codice C equivalente a C, ma non necessariamente uguale. 3

Esercizio 6 Un codice lineare a blocchi ha la seguente matrice generatrice: G Determinare la matrice generatrice in forma sistematica di un codice equivalente 3

Esercizio 6 cont. G Permutando la seconda colonna con la terza si ottiene la matrice G in forma sistematica: ' G 32

Esercizio 6 cont. Si può verificare che il codice lineare C generato da G è diverso dal codice lineare C generato dalla matrice G : x ug u u 2 [ ] dataword C codeword x ug' 2 [ u ] u C dataword codeword 33

Esercizio 7 Un codice lineare a blocchi ha la seguente matrice generatrice: G Costruire la tabella di decodifica (sindrome/coset-leader) e decodificare la parola y[ ] 34

Esercizio 7 cont. Il codice lineare C (4,2) generato da G è equivalente (in particolare è uguale) al codice lineare C generato dalla matrice G ottenuta sostituendo la prima riga di G con la somma della prima e seconda riga di G: G' a cui corrisponde la matrice di controllo di parità: H 35

Esercizio 7 cont. Le codewords di C sono: {,,, } I 2 n-k 4 coset (distinti) di C sono: + C {,,, } + C {,,, } + C {,,, } -> è uguale a C + C {,,, } + C {,,, } -> è uguale al secondo coset + C {,,, } -> è uguale al secondo coset + C {,,, }... Sono così calcolati i 4 coset di C 36

Esercizio 7 cont. Il numero di sindromi è pari a 2 n-k 4. Ad ogni sindrome è associato un coset leader. Calcolando la sindrome di ogni coset leader si ottiene la tabella di decodifica: Tabella di decodifica sindrome coset leader La sindrome associata alla parola y[ ] è s[ ], che corrisponde ad un vettore di errore: e[ ] e quindi la codeword decodificata è: xy+e[ ] 37

Esercizio 7 cont. Poiché per questo codice con n4 e k2 la Hamming Bound non è verificata neanche per t, allora il codice non può correggere gli errori singoli. Infatti i 4 coset leader di C non possono includere tutti i 4 vettori a peso unitario ed il vettore a peso nullo. 38

Esercizio 8 Costruire un codice lineare a blocchi con n5 e t. ) Per scegliere il valore di k devo fare in modo che la Hamming bound sia verificata per i valori dati di n e t. I valori di k che verificano la Hamming Bound sono k e k2. Scelgo k2 perché offre una ridondanza (n-k) minore. 2) Il codice deve essere composto da 2 k 2 2 4 codeword: C{x, x 2, x 3, x 4 } 39

Esercizio 8 cont. 3) Poiché il codice è lineare a blocchi, C deve includere la codeword di tutti zeri e la somma di ogni coppia di codeword deve essere una codeword. 4) Per avere t, la distanza minima deve essere: d min 2t+3. Essendo il codice lineare ciò implica che il peso di ogni codeword (esclusa la codeword di tutti zeri) deve essere 3. 4

Esercizio 8 cont. 5) Se assumiamo che il codice sia sistematico, possiamo scrivere le 4 codeword: x x 2??? x 3??? x 4??? 6) Scegliendo la seconda codeword con peso pari a 3 si ha: x x 2 x 3??? x 4??? 4

Esercizio 8 cont. 7) Scegliendo la terza codeword con distanza pari a 3 dalla seconda codeword e con peso 3: x x 2 x 3 x 4??? 8) Scegliendo la quarta codeword come somma della seconda e terza codeword: x x 2 x 3 x 4 42

Esercizio 8 cont. Si può verificare che il codice C formato da: x x 2 x 3 x 4 è un codice lineare a blocchi con distanza minima pari a 3. 43

Per trovare la matrice generatrice G del codice C è necessario trovare una base del sottospazio vettoriale generato dalle codeword del codice. Poniamo le 2 k codeword del codice sulle righe di una matrice ed operiamo l eliminazione di Gauss: Esercizio 8 Esercizio 8 cont cont. La matrice ridotta in questa forma ha due vettori riga non nulli che formano una base per il codice lineare a blocchi C, il quale per definizione è un sottospazio vettoriale di dimensione k2 (numero di vettori della base). 44

Esercizio 8 cont. La matrice generatrice G del codice C è quindi: G la quale è scritta in forma sistematica. 45