Tecniche di protezione dell`informazione ALTRI ESERCIZI DI

Transcript

Tecniche di protezione dell`informazione ALTRI ESERCIZI DI
Tecniche di protezione dell’informazione
ALTRI ESERCIZI DI PREPARAZIONE AL COMPITO
1
ESERCIZIO 1
Un codice di Hamming è caratterizzato da una matrice di parità [2m − 1, m]
tale che dmin = 3. Progettare la matrice di parità del codice di Hamming
(15,11).
SOLUZIONE 1
Il codice di Hamming che si deve progettare ha:
n = 15
k = 11
→
r =n−k =4
pertanto la matrice di parità H è una matrice [15,4].
È noto che la distanza minima di un codice è uguale al minimo numero
di righe linearmente dipendenti della matrice H. Perché il codice abbia
distanza minima tre:
1. H non deve avere la riga (0000) (il codice avrebbe distanza minima 1)
2. H non deve avere 2 righe uguali (il codice avrebbe distanza minima 2)
Di conseguenza, le righe della matrice H che stiamo progettando sono tutti
gli elementi di H4 , ad eccezione di (0000). Decidiamo inoltre di progettare
un codificatore sistematico. Si ha ad esempio (le ultime 4 righe sono fisse,
le prime 11 possono essere permutate: il codice generato (le 2k parole) è lo
stesso, ma cambia il codificatore (associazione tra vettori di informazione e
parole di codice)).


0011


 0101 


 0110 


 0111 


 1001 




 1010 


 1011 



H=
 1100 
 1101 




 1110 


 1111 


 1000 


 0100 




 0010 
0001
1
Si ringrazia lo studente Matteo Beardo per aver scritto questa soluzione.
1
ESERCIZIO 2
È dato un codice a blocco C(n, k) con matrice di parità H:






H=





100
001
110
011
100
010
001












Si utilizza una modulazione 4-PSK con labeling di Gray.
1. Calcolare la distanza minima del codice e le sue molteplicità.
2. Error correction soft: stimare la Pw (e) asintotica del codice per Eb /N0 =11
dB.
3. Confrontare il codice con un codice di Hamming (7,4), caratterizzato
da dmin =3 e Amin =7, e quantificare il guadagno in dB conseguito dal
migliore dei due rispetto all’altro.
4. Error detection. Calcolare la percentuale di vettori di errore di peso
1, 2, 3 e 7, che vengono rivelati mediante il metodo della sindrome.
SOLUZIONE 2
Questo codice è caratterizzato da k = 4 (quindi |C| = 2k = 16) e n = 7.
Si utilizza la modulazione 4-PSK con labeling di Gray di figura, che equivale
a due costellazioni 2-PSK trasmesse su canali ortogonali:
2
Visto che la matrice H ha la forma
"
H=
P
Ir
#
il codificatore è sistematico, quindi possiamo ricavare facilmente G a partire
da H:


1000100
 0100001 


G = [Ik P ] = 

 0010110 
0001011
1) Generiamo tutte le 16 parole di codice utilizzando la base costituita dalle
righe della matrice G:
c
0000000
1000100
0100001
1100101
0010110
1010010
0110111
1110011
0001011
1001111
0101010
1101110
0011101
1011001
0111100
1111000
wH (c)
0
2
2
4
3
3
5
5
3
5
3
5
4
4
4
4
Si ha quindi dmin = 2, Amin = 2, wmin = 2 (ottenuta sommando i pesi
dei due vettori di informazione (1000 e 0100) che generano le due parole di
codice di peso 2).
Come alternativa, si poteva calcolare la distanza minima ragionando
sulla matrice H ed evitando di generare tutte le parole di codice.
Ricordiamo la proprietà della sindrome:
yH = 0
⇐⇒
Quindi
• se H ha una riga nulla → dmin = 1
ma non ci sono righe nulle
3
y∈C
• se H ha due righe uguali → dmin = 2
la riga 1 è uguale alla riga 5 → dmin = 2
Per calcolare le molteplicità basta osservare la matrice H. Dal momento che
la riga 1 è uguale alla riga 5 e la riga 2 è uguale alla riga 7, ci sono solo 2
parole di codice con peso di Hamming = 2:
c1 = 1000100
c2 = 0100001
Quindi Amin = 2. Poiché il codificatore è sistematico queste due parole di
codice sono generate, rispettivamente, dai vettori di informazione (1000) e
(0100). Segue wmin = 2. Si ritrova quindi:
dmin = 2
Amin = 2
wmin = 2
2) Si ha Eb /N0 = 11 dB corrispondenti a
Eb
= 12.59
N0
L’approssimazione asintotica della Pw (e) coincide con quella ricavato per la
√
costellazione 2-PSK. Utilizzando l’approssimazione erfc x < e−x si ottiene:
s
s
1
Eb
dmin = erfc
Pw (e) ≈ Amin erfc Rc
2
N0
4 Eb
−4
2<e 7
7 N0
Eb
N0
2
= 5.63 · 10−7
3) L’espressione asintotica della FER del codice di Hamming (7,4) è:
s
1
Pw (e)Hamming ≈ Amin erfc
2
4 Eb
3
7 N0
Il codice di Hamming ha prestazioni migliori (a parità di Eb /N0 l’argomento
della erfc è più grande).
Fissato un valore di Pb (e) (sufficientemente basso da ritenere valide le
approssimazioni asintotiche, ad esempio Pb (e) ≤ 10−7 ), e trascurando in
prima approssimazione le molteplicità:
µ
2
¶
Eb
=3
N0 codice
³
G = 10 log10 ³
Eb
N0
Eb
N0
µ
¶
Eb
N0 Hamming
´
´ codice
Hamming
4
= 10 log10
3
= 1.76 dB
2
4)
numero vettori di errore di peso i rivelati mediante il metodo della
sindrome = numero vettori di peso i 6∈ C
Si ottiene quindi (nota: se si era calcolata la distanza minima a partire
dalla matrice H a questo punto bisogna comunque generarsi le 16 parole di
codice):
% vettori di errore di peso 1 rivelati = 100% (un codice a blocco rivela
tutti gli errori con peso ≤ dmin − 1)
Ã
Ã
% vettori di errore di peso 2 rivelati =
Ã
% vettori di errore di peso 3 rivelati =
7
2
7
3
Ã
!
−2
7
2
5
=
21 − 2
= 90%
21
=
35 − 4
= 89%
35
!
−4
7
3
Ã
% vettori di errore di peso 7 rivelati =
!
!
7
7
Ã
!
−0
7
7
!
= 100%
ESERCIZIO 3
È dato un codice convoluzionale con codificatore:
s(1)
+
+
Si utilizza un pattern di punturazione periodico (101101)
1. Costruire il trellis del codice equivalente k/n (k > 1).
2. Questo codice punturato è catastrofico? Nel caso affermativo, mostrare
un esempio di questo comportamento.
3. Scegliere un pattern di punturazione che non porta ad un codice catastrofico.
4. Scegliere un pattern di punturazione per conseguire un code-rate 2/3.
5. Calcolare la distanza minima del codice ottenuto.
6. Supponendo di effettuare una decodifica soft in entrambi i casi, confrontare le prestazioni del codice convoluzionale punturato con quelle
di un codice a blocco di parità C(3,2), valutando il guadagno in dB
conseguito dal migliore dei due rispetto all’altro.
7. Nel caso di bit-rate Rb =2 Mbps calcolare il ritardo introdotto nella
catena di trasmissione.
SOLUZIONE 3
Innanzitutto costruiamo il trellis del codice “madre”:
6
1) Col pattern di punturazione (101101) si ottiene un codice con k = 3,
n = 4, Rc = 3/4, il cui trellis è il seguente:
Il trellis del codice equivalente di rate 3/4 (con 8 archi uscenti da ogni stato)
è il seguente:
7
2) Questo codice punturato è catastrofico. Infatti esiste un percorso
chiuso nel trellis
1. etichettato con tutti vettori nulli
2. generato da bit di informazione non tutti nulli
Il percorso chiuso in questione è il seguente:
Ad esempio, se trasmetto il vettore di informazione di tutti zero
uT = (00000000...0...)
la corrispondente sequenza di codice è
cT = (00000000...0...)
Se sul canale si verificano 2 errori, e si riceve
y = (01010000...0...)
si ha che y ∈ C, quindi Viterbi sceglierà sicuramente
cR = y = (01010000...0...)
quindi il vettore di informazione stimato in ricezione è
uR = (011 000 001 000 001 ... 000 001 ...)
Si vede quindi come in questo caso un numero finito (2) di errori sul canale
causi in ricezione un numero infinito di errori sulla sequenza di informazione.
8
3) Il pattern di punturazione
10 11 10
porta a un codice che non è catastrofico. Il trellis del codice è infatti:
Dal disegno del trellis si vede che non esiste alcun percorso chiuso
1. etichettato con tutti vettori nulli
2. generato da bit di informazione non tutti nulli
quindi il codice non è catastrofico.
4) Un possibile pattern di punturazione per conseguire un code-rate 2/3
è
10 11
5) Il trellis del codice ottenuto col pattern di punturazione del punto 4) è il
seguente:
9
Per calcolare la distanza minima applichiamo l’algoritmo di Viterbi su questo
trellis:
c’è una sequenza con peso dmin = 1:
10
Si ha quindi:
dmin = 1
Amin = 1
wmin = 1
6) L’espressione asintotica della BER del codice convoluzionale punturato è:
s
s
1 wmin
Eb
1
Pb (e) ≈
erfc Rc
dmin = erfc
2 k
N0
4
2 Eb
3 N0
Per quanto riguarda il codice a blocco di parità, iniziamo a calcolarne la
distanza minima. Enumeriamo le parole di codice:
C = {000, 011 101 110}
si ha quindi:
dmin = 2
Amin = 3
wmin = 4
Quindi l’espressione asintotica della BER del codice a blocco di parità è:
s
s
Eb
1 wmin
erfc Rc
dmin = erfc
Pb (e) ≈
2 k
N0
4 Eb
3 N0
Il sistema codificato col codice a blocco ha prestazioni migliori (a parità di
Eb /N0 l’argomento della erfc è più grande).
A parità di Pb (e), trascurando le molteplicità:
2
3
µ
¶
Eb
4
=
N0 codice convoluzionale 3
³
G = 10 log10
Eb
N0
´
µ
¶
Eb
N0 codice a blocco
convoluzionale = 10 log 2 = 3 dB
´
³ codice
10
Eb
N0
codice a blocco
7) Il ritardo introdotto dal codice convoluzionale nella catena di trasmissione
si può stimare dell’ordine di:
D = 5ν = 5 sezioni del trellis
= 10 bit di informazione
10
=
= 5 µs
Rb
11
ESERCIZIO 4
Un codice TCM è costituito da:
• un codice convoluzionale con codificatore:
+
s(1)
+
+
• la costellazione 4-PSK di figura:
1. Disegnare il trellis del codice TCM.
2. Supponendo di ricevere questa sequenza di segnali:
r = −1.0 + 1.0 + 2.0 − 1.0 + 1.0 + 1.0 − 1.0 − 1.0[−1.0 per sempre]
calcolare la sequenza di informazione scelta in ricezione.
3. Calcolare la probabilità di errore sul bit per Eb /N0 =11 dB utilizzando
l’approssimazione asintotica.
12
SOLUZIONE 4
1) Il trellis del codice TCM è il seguente:
2) Applicando Viterbi soft si ha (possiamo usare la metrica semplificata
perché la costellazione ha inviluppo costante):
(+1.0 + 1.0) (−1.0 − 1.0) (−1.0 − 1.0)
(−1.0 + 1.0) (+2.0 − 1.0)
0
0
0
−1
−3
2
7
3
5
0
5
Quindi la sequenza di informazione stimata in ricezione è
uR = 1010... [0 per sempre]
13
2
9
2
11
0
9
0
−2
0
−2
0
2
1
2
−2
3
0
7
3) Per scrivere l’espressione asintotica della BER è necessario conoscere la
distanza minima del codice convoluzionale e le sue molteplicità. Applichiamo
l’algoritmo di Viterbi per calcolare questi parametri:
c’è una sequenza con peso dmin = 3:
Si ha quindi:
dmin = 3
Amin = 1
wmin = 2
Si ha Eb /N0 = 11 dB corrispondenti a
Eb
= 12.59
N0
Per questo codice TCM l’espressione asintotica della BER coincide con quella ricavata per i codici convoluzionali applicati alle costellazioni 2-PSK (per
codici TCM qualsiasi bisogna fare riferimento alla distanza Euclidea, che in
questo caso risulta invece proporzionale alla distanza di Hamming del codice
√
costituente). Utilizzando l’approssimazione (erfc x < e−x ) si ha quindi:
s
1 wmin
Pb (e) ≈
erfc
2 k
s
1
Eb
Rc
dmin = erfc
2
N0
14
3 Eb
−3
<e 4
4 N0
Eb
N0
= 7.93 · 10−5