You are on page 1of 50

ΑΝΑΛΥΤΙΚΕΣ ΛΥΣΕΙΣ

ΤΩΝ ΑΣΚΗΣΕΩΝ

105
106
Λύσεις Κεφαλαίου 1

Άσκηση 1.1
Οι δύο κωδικοποιήσεις είναι

ΚΩ∆ΙΚΑΣ 1 ΚΩ∆ΙΚΑΣ 2 Συχν. µηνυµάτων


00 0 200 µέρες
01 10 100 µέρες
10 110 50 µέρες
11 111 15 µέρες

Με την πρώτη κωδικοποίηση κάθε µήνυµα διαρκεί 10 λεπτά, άρα στη διάρκεια µιας
χρονιάς:
1η: 365 x 10 λεπτά = 3650 λεπτά.

Με τη δεύτερη κωδικοποίηση τα τέσσερα µηνύµατα έχουν διάρκεια 0, 10, 20 και 20


λεπτά αντίστοιχα. Άρα στη διάρκεια µιας χρονιάς:

2η: 200 x 0 λεπτά + 100 x 10 λεπτά + 50 x 20 λεπτά + 15 x 20 λεπτά


= 2300 λεπτά.

Κατά µέσο όρο ένα µήνυµα στην πρώτη κωδικοποίηση διαρκεί 10 λεπτά (προφανώς)
ενώ στη δεύτερη 2300/365= 6,3 λεπτά! Η δεύτερη κωδικοποίηση είναι φανερά πιο
αποδοτική, παρά το γεγονός ότι περιέχει και µηνύµατα µεγαλύτερου µήκους διότι τα
τελευταία εµφανίζονται πολύ σπάνια.

Άσκηση 1.2
Όταν ένα µήνυµα επαναλαµβάνεται 7 φορές, υπάρχει περιθώριο να γίνει λάθος µέχρι
και 3 φορές. Στη περίπτωση αυτή, το µήνυµα θα φτάσει στον τελικό αποδέκτη
τουλάχιστον 4 φορές σωστά οπότε θα καταλάβουµε ότι αυτό ήταν το αρχικό µήνυµα
που στάλθηκε.

107
Άσκηση 1.3
Το αλφάβητο είναι Α={-20,-19,-18, ... , 42, 43} (64 σύµβολα)
Υπάρχουν ακριβώς 26=64 δυαδικές κωδικές λέξεις µήκους 6, άρα µπορούµε να
αντιστοιχίσουµε κάθε θερµοκρασία µε µια τέτοια λέξη. Το µήκος λοιπόν των κωδικών
λέξεων πρέπει να είναι τουλάχιστον 6.
Στην Κρήτη οι µεγαλύτερες θερµοκρασίες εµφανίζονται πιο συχνά, άρα είναι
προτιµότερο αυτές να κωδικοποιηθούν µε µικρότερες κωδικές λέξεις ενώ οι µικρές
θερµοκρασίες µε µεγαλύτερες κωδικές λέξεις. Έτσι το µήνυµα της θερµοκρασίας θα
φτάνει συνήθως πιο γρήγορα.

Άσκηση 1.4
Οι δύο κωδικοποιήσεις µε Morse είναι
ΒΥΘΟΣ =  • • • /  •   /  •  • /    / • • •
ΤΕΝΤΑ =  / • /  • /  / • 
Παρατηρούµε µεγάλη διαφορά στο µήκος. Η λέξη ΒΥΘΟΣ αντιστοιχεί σε περισσότερα
κωδικά σύµβολα διότι περιέχει πιο σπάνια γράµµατα του αλφαβήτου απ’ ότι η λέξη
ΤΕΝΤΑ.

Άσκηση 1.5
Η κωδικοποίηση, η αλλοίωση και η αποκωδικοποίηση της λήψης είναι

ΚΑΛΟΣ → 11001010 11000001 11001010 11001111 11010011


11001010 11000001 11001011 11001111 11010011 → ΚΑΚΟΣ

Παρατηρούµε ότι ακόµη και µε την µετατροπή ενός bit αλλοιώνεται όλο το µήνυµα,
άρα ο κώδικας ASCII δεν είναι καλός σε περιβάλλον µε θόρυβο.

108
Λύσεις Κεφαλαίου 2

Άσκηση 2.1
1
Είναι Ι= log 2 , άρα
p
1
α) p= εφόσον υπάρχουν δύο όψεις του νοµίσµατος, Ι = log 2 2 = 1 bit
2
1
β) p = , Ι = log 2 4 = 2 bits
4
γ) Αναφέραµε στη θεωρία ότι η πιθανότητα να πετύχουµε τη νικήτρια στήλη στο
ΛΟΤΤΟ (η οποία µπορεί να βρεθεί εύκολα µε συνδυαστική) είναι
1
p=
13.983.816
Άρα το ζητούµενο πληροφοριακό περιεχόµενο είναι log 2 13.983.816 ≅ 23.74 bits

δ) Ας βρούµε πρώτα πόσες πινακίδες µπορούν να υπάρξουν.


Μια πινακίδα έχει τη µορφή
ΧΧΧΑΑΑΑ
Όπου κάθε Χ είναι ένα από τα 14 πιθανά γράµµατα ενώ ο αριθµός ΑΑΑΑ είναι από
3
1000 µέχρι 9999. Υπάρχουν 14 τριάδες γραµµάτων και 9000 αριθµοί. Άρα υπάρχουν

14 3 ⋅ 9000 =24696000 τρόποι

να συµπληρωθεί µια πινακίδα. Άρα η πιθανότητα της δεδοµένης πινακίδας είναι


1
p=
2,496,000
και το πληροφοριακό περιεχόµενό της (αυτοπληροφορία) είναι

log 2 2496000 =24.55 bits


Το γεγονός δ) λοιπόν περιέχει περισσότερη πληροφορία από το γ)

Άσκηση 2.2
1
Η ένδειξη κάθε ζαριού έχει πιθανότητα p= και πληροφοριακό περιεχόµενο
6
I = log 2 6 = log 2 2 ⋅ 3 = log 2 2 + log 2 3 = 1 + 1.58 = 2.58 bits

109
Η ζητούµενη εντροπία είναι επίσης
1 1
H = 6 ⋅ ( log 2 6) = log 2 6 = 2.58 bits/σύµβολο
6 6

Άσκηση 2.3
Είναι
1 2 10 3 10 4 10
H= log 2 10 + log 2 + log 2 + log 2
10 10 2 10 3 10 4
1 2 3 4
= log 2 10 + (log 2 10 − log 2 2) + (log 2 10 − log 2 3) + (log 2 10 − log 2 4)
10 10 10 10
1 2 3 4 2 3 4
=( + + + ) log 2 10 − log 2 2 − log 2 3 − log 2 4
10 10 10 10 10 10 10
2 3 8 3
= log 2 10 − − log 2 3 − = log 2 2 + log 2 5 − 1 − log 2 3
10 10 10 10
3
= log 2 5 − log 2 3 bits/σύµβολο
10
Μέγιστη εντροπία θα είχαµε αν τα τέσσερα σύµβολα ήταν ισοπίθανα, δηλαδή µε

πιθανότητα 1/4 το καθένα, και η εντροπία θα ήταν H = log 2 4 = 2 bits/σύµβολο.

Άσκηση 2.4
Είναι x=1-(0.3+0.5)=0.2 και
1 10
I (a) = log 2 = log 2 bits,
0.3 3
1
I (b) = log 2 = log 2 2 = 1 bit,
0.5
1
I (c) = log 2 = log 2 5 bits.
0.2
10
Επίσης H ( A) = 0.3 ⋅ (log 2 ) + 0.5 + 0.2 ⋅ log 2 5 bits/σύµβολο.
3
Μέγιστη εντροπία θα είχαµε αν τα τρία σύµβολα ήταν ισοπίθανα, δηλαδή µε

πιθανότητα 1/3 το καθένα, και η εντροπία θα ήταν H = log 2 3 bits/σύµβολο.

110
Άσκηση 2.5
α) Όλες οι πιθανότητες είναι µεταξύ 0 και 1 και επιπλέον
1 1 1 1 1 1 32
+ + + + + = =1
2 4 8 16 32 32 32
1 1 1 1 1 1
β) H = log 2 2 + log 2 4 + log 2 8 + log 2 16 + log 2 32 + log 2 32
2 4 8 16 32 32
1 1 1 1 1 1 16 + 16 + 12 + 8 + 5 + 5 62 31
= + 2+ 3+ 4+ 5+ 5= = bits/σύµβολο
2 4 8 16 32 32 32 32 16
γ) Μέγιστη εντροπία θα είχαµε αν τα τέσσερα σύµβολα ήταν ισοπίθανα, δηλαδή µε

πιθανότητα 1/4 το καθένα, και η εντροπία θα ήταν H = log 2 4 = 2 bits/σύµβολο.

δ) Στο ερώτηµα γ) έχουµε µεγαλύτερη εντροπία και µεγαλύτερη αβεβαιότητα. Στην


αρχική πηγή έχουµε µεγαλύτερη σιγουριά καθώς γνωρίζουµε ότι κατά 50% η πηγή θα
στέλνει το σύµβολο Α.

Άσκηση 2.6
Είναι

α) H = log 2 4 = 2 bits/σύµβολο

1 1 1 1 1 3
β) H = log 2 2 + log 2 4 + 2( log 2 8) = + + = 1.75 bits/σύµβολο
2 4 8 2 2 4
1 1 1 1
γ) H= log 2 2 + log 2 2 = + = 1 bit/σύµβολο
2 2 2 2
1 1023 1024 10
δ) H = log 2 1024 + log 2 ≅ + 0 ≅ 0.01 bit/σύµβολο
1024 1024 1023 1024
ε) H = 1 log 2 1 = 0

στ) Ξεκινήσαµε µε την πιο αβέβαιη πηγή όπου όλα τα σύµβολα είναι ισοπίθανα και
καταλήξαµε στο στην πιο βέβαιη πηγή όπου στέλνεται µε απόλυτη σιγουριά ένα µόνο
σύµβολο. Παρατηρούµε ότι όσο «διαταράσσεται η ισορροπία στην πηγή», όσο δηλαδή
µικραίνει η αβεβαιότητα τόσο µικραίνει και η εντροπία της πηγής.

Άσκηση 2.7
α) Έχουµε

p (b1 ) = p (b1 / a1 ) p (a1 ) + p (b1 / a 2 ) p (a 2 ) =(0.2)(0.1)+(0.1)(0.9)=0.11


p(b2 ) = p(b2 / a1 ) p (a1 ) + p(b2 / a 2 ) p(a 2 ) =(0.3)(0.1)+(0.7)(0.9)=0.66
p(b3 ) = p(b3 / a1 ) p (a1 ) + p(b3 / a 2 ) p(a 2 ) =(0.5)(0.1)+(0.2)(0.9)=0.23

111
β) Έχουµε

p (a1b1 ) = p (a1 ) p (b1 / a1 ) =(0.1)(0.2)=0.02


p (a1b2 ) = p (a1 ) p (b2 / a1 ) =(0.1)(0.3)=0.03
p (a1b3 ) = p (a1 ) p (b3 / a1 ) =(0.1)(0.5)=0.05

p (a 2 b1 ) = p (a 2 ) p (b1 / a 2 ) =(0.9)(0.1)=0.09
p (a 2 b2 ) = p (a 2 ) p (b2 / a 2 ) =(0.9)(0.7)=0.63
p (a 2 b2 ) = p (a 2 ) p (b2 / a 2 ) =(0.9)(0.2)=0.18

γ) Οι τιµές εντροπίας είναι

Η(Α)= − (0.1) log 2 0.1 − (0.9) log 2 0.9 = 0.47 bits/σύµβολο

Η(Β)= − (0.11) log 2 0.11 − (0.66) log 2 0.66 − (0.23) log 2 0.23 = 1.23 bits/σύµβολο

Η(ΑΒ)= − (0.02) log 2 0.02 − (0.03) log 2 0.03 − (0.05) log 2 0.05

− (0.09) log 2 0.09 − (0.63) log 2 0.63 − (0.18) log 2 0.18 = 1.66 bits/σύµβολο
Η(Α/Β)= Η(ΑΒ) - Η(Β) = 1.66 – 1.23= 0.43 bits/σύµβολο
Η(Β/Α)= Η(ΑΒ) - Η(Α) = 1.66 – 0.47= 0.19 bits/σύµβολο

Παρατηρούµε ότι η εντροπία της πηγής Α µειώθηκε από Η(Α)=0.47 σε Η(Α/Β)=0.43,


Όπως επίσης και η εντροπία της πηγής Β µειώθηκε από Η(Β)= 1.23 σε Η(Β/Α)= 0.19

Άσκηση 2.8

Είναι Α={0,1} και Π(Α) = [ 1 3 ] και άρα


4 4
1 3 4 1 3 3
H= log 2 4 + log 2 = + (2 − log 2 3) = 2 − 1.58 = 0.81 bits/σύµβολο
4 4 3 2 4 4

Η τρίτη επέκταση A3 χρησιµοποιεί όλους τους δυνατούς συνδυασµούς τριάδων του


αλφαβήτου, δηλαδή τα παρακάτω σύµβολα µε αντίστοιχες πιθανότητες

000 001 010 011 100 101 110 111

1 3 3 9 3 9 9 27
64 64 64 64 64 64 64 64

(πολλαπλασιάσαµε τις αντίστοιχες πιθανότητες των συµβόλων για κάθε τριάδα)

112
Η Εντροπία της επέκτασης είναι

H ( A 3 ) = 3H ( A) = 3 ⋅ 0.81 = 2.43 bits/σύµβολο.

Άσκηση 2.9

Είναι Α={a,b,c} και Π(Α) = [ 1 1 1 ].


4 2 4
α) Η δεύτερη επέκταση δίνεται στον πίνακα
aa ab ac ba bb bc ca cb cc

1 1 1 1 1 1 1 1 1
16 8 16 8 4 8 16 8 16

β) Είναι

1 1 
H ( A) = log 2 2 + 2 log 2 4  = 1.5 bits/σύµβολο
2  4 
1 1  1  1 3
H ( A2 ) = log 2 4 + 4 log 2 8  + 4 log 2 16  = + + 1 = 3 bits/σύµβολο
4 8   16  2 2
Ισχύει πράγµατι H ( A ) = 2 H ( A) .
2

113
Λύσεις Κεφαλαίου 3

Άσκηση 3.1
α)
99/100

0 0

1/100

1 99/100 1

β) Από τα δεδοµένα της άσκησης

99 1 
1 2  100 100
Π ( A) =  , Π ( B / A) =
3 3  1 99 
 100 100
Άρα

99 1 
1 2   100 100  101 199 
Π (Β) = Π ( A) ⋅ Π ( B / A) =   =
3 3  1 99   300 300 
 100 100

1 0 99 1  99 1 
Π ( A, Β) = Π D ( A) ⋅ Π ( B / A) =  3   100 100 =  300 300 
 0 2  1 99  2 198 
3  100 100  300 300

γ) Η πιθανότητα να λάβουµε 0 στην έξοδο είναι 101 [από Π(Β)]


300
δ) Η πιθανότητα να σταλεί 0 και να ληφθεί 1 είναι 1 [από Π(Α,Β)]
300
ε) Η πιθανότητα αν σταλεί 0 να ληφθεί 1 είναι 1 [η πιθανότητα σφάλµατος]
100

Άσκηση 3.2

α) x = 1 και
8
1 1 1 1 1 3
H ( A) = log 2 2 + log 2 4 + 2( log 2 8) = + + = 1.75 bits/σύµβολο
2 4 8 2 2 4

114
β) Μέγιστη εντροπία θα είχαµε αν τα τέσσερα σύµβολα ήταν ισοπίθανα, δηλαδή µε

πιθανότητα 1/4 το καθένα, και η εντροπία θα ήταν H = log 2 4 = 2 bits/σύµβολο. Η

εντροπία γίνεται 0, όταν υπάρχει απόλυτη βεβαιότητα στην πηγή, δηλαδή όταν κάποιο
από τα 4 σύµβολα έχει πιθανότητα εκποµπής 1 ενώ όλα τα υπόλοιπα 0.

γ) Είναι
a 0.9 a
9 1 0 0
 10 10  0.1
 1 9 0 0 
Π(Β/Α) =
 10 10  0.1

 0 0 1 0
b 0.9 b
 0 0 0 1
c 1 c

d 1 d

9 1 0 0
 10 10 
1 1 1 1  1 9 0 0 =
δ) Π(Β) = Π(Α) Π(Β/Α)] =   ⋅  10 10
2 4 8 8 
 0 0 1 0
 0 0 0 1

9 1 1 9 1 1   19 11 1 1
= + + = .
 20 40 20 40 8 8   40 40 8 8 

Άρα, η πιθανότητα να λάβουµε b στην έξοδο είναι 11 .


40

Άσκηση 3.3
α) Π(Α) = [1/4 3/4] (εφόσον το 1 εκπέµπεται µε τριπλάσια πιθανότητα)
και
1 3 4 1 3 1 3 3
Η(Α) = log 4 + log = + (log 4 − log 3) = + − (1.59)
4 4 3 2 4 2 2 4
=0.81 bits/σύµβολο
β) Έχουµε
1/2
1 1 0 0 a
Π(Β/Α) =  2 2  1/2
 0 1 1 
2 2 b
1/2

1 c
1/2

115
γ) Έχουµε

1 1 0
Π(Β) = Π(Α) Π(Β/Α) = [1/4 3/4]  2 2  = [1/8 4/8 3/8]
 0 1 1 
2 2
Άρα πιθανότητα λήψης του συµβόλου c στη έξοδο είναι 3/8.

δ) Έχουµε

1 0 1 1 0 1 1 0
Π(Α,Β)=ΠD(Α)Π(Β/Α)=  4   2 2 =  8 8 
 0 3   0 1 1  0 3 3 
4 2 2  8 8
Άρα η ζητούµενη πιθανότητα είναι 1/8

Άσκηση 3.4
α) Είναι Π(Α) = [1/4 1/4 1/2 ] και

Η(Α) = 1 log 4 + 1 log 4 + 1 log 2 = 3 =1.5 bits/σύµβολο


4 4 2 2

β) Έχουµε
1
1 0 a 0
Π(Β/Α) =  1 1  1/2
 2 2 b
 0 1  1/2

c 1 1
γ) Έχουµε

1 0

Π(Β) = Π(Α) Π(Β/Α) = [1/4 1/4 1/2 ] 1 1  = [3/8 5/8]
 2 2
 0 1 
Άρα οι πιθανότητες των συµβόλων 0 και 1 στην έξοδο είναι 3/8 και 5/8 αντίστοιχα.

δ) Έχουµε

1 0 01 0 1 0
 4   4 
Π(Α,Β)=ΠD(Α)Π(Β/Α)=  0 1 0   1 2 1 =
2  18 1 
4  8
 1   0 1  1 
 0 0
2   0 2 
Άρα η ζητούµενη πιθανότητα είναι 1/8

116
Άσκηση 3.5
α) Είναι

 p (b1 / a1 ) p (b2 / a1 ) 
Π(Α) Π(Β/Α) = p ( a1 )[ p ( a 2 )] 
 p (b1 / a 2 ) p (b2 / a 2 )

= [ p (a1 ) p (b1 / a1 ) + p (a 2 ) p (b1 / a 2 ) p (a1 ) p (b2 / a1 ) + p (a 2 ) p (b2 / a 2 )]


= [ p (b1 ) p (b2 )]
= Π(Β)

β) Είναι

 p (a1 ) 0   p (b1 / a1 ) p (b2 / a1 ) 


ΠD(Α)Π(Β/Α) = 
 0 p (a 2 )  p (b1 / a 2 ) p (b2 / a 2 )

 p (a1 ) p (b1 / a1 ) p (a1 ) p (b2 / a1 )   p (a1 , b1 ) p (a1 , b2 ) 


= =
 p (a 2 ) p (b1 / a 2 ) p (a 2 ) p (b2 / a 2 )  p (a 2 , b1 ) p (a 2 , b2 )
= Π(Α,Β)

Άσκηση 3.6
Είναι

0.25 0 0 0 
0.10 0.30 0 0 

Π ( Α, Β) =  0 0.05 0.10 0 
 
 0 0 0.05 0.10
 0 0 0.05 0 

α) Τα αθροίσµατα των γραµµών µας δίνει τις πιθανότητες της πηγής Α ενώ των
στηλών της πηγής Β, άρα

Π(Α)= [0.25 0.40 0.15 0.15 0.05] και Π(Β)=[0.35 0.35 0.20 0.10]

β) Επειδή
p(x,y)=p(x)p(y/x) ή ισοδύναµα p(y/x) = p(x,y) / p(x)
για να βρούµε τα στοιχεία του Π(Β/Α) θα διαιρέσουµε τα στοιχεία του πίνακα Π(Α,Β)
µε το p(x) που αντιστοιχεί στην ίδια γραµµή, δηλαδή την πρώτη γραµµή δια 0.25, τη
δεύτερη µε 0.40, κοκ. Άρα

117
 1 0 0 0 
1 / 4 3 / 4 0 0 

Π ( B / A) =  0 1 / 3 2 / 3 0 
 
 0 0 1 / 3 2 / 3
 0 0 1 0 
Το διάγραµµα του καναλιού είναι

1
x1 y1

1/4
x2 3/4 y2

1/3
x3 2/3 Y3

1/3
x4 2/3 Y4
1
1
x5

γ) Είναι

Η(Α)= − (0.25) log 2 0.25 − (0.40) log 2 0.40 − 2 ⋅ (0.15) log 2 0.15 − (0.05) log 2 0.05

= 2.066 bits/σύµβολο

Η(Β)= − 2 ⋅ (0.35) log 2 0.35 − (0.20) log 2 0.20 − (0.10) log 2 0.10

= 1.857 bits/σύµβολο

Η(ΑΒ)= − (0.25) log 2 0.25 − (0.3) log 2 0.3 − 3 ⋅ (0.1) log 2 0.1 − 3 ⋅ (0.05) log 2 0.05

= 2.666 bits/σύµβολο
Η(Β/Α) = Η(ΑΒ)-Η(Α) = 2.666 - 2.066 = 0.6 bits/σύµβολο
Η(Α/Β) = Η(ΑΒ)-Η(Β) = 2.666 - 1.857 = 0.809 bits/σύµβολο

Άσκηση 3.7
α) Το διάγραµµα του καναλιού είναι

b1
a1 1

b2
1/2
a2 1/2
b3
1/4
a3 b4
3/4
a4 b5
1
b6

118
β) Είναι p (b4 / a3 ) = 1/4 και p (b5 / a2 ) = 0 όπως φαίνεται από το διάγραµµα ή και από

τον πίνακα Π(Β/Α).

Οι πιθανότητες p(a3 / b4 ) και p(a2 / b5 ) δεν φαίνονται άµεσα στο κανάλι αλλά
µπορούµε να τις µαντέψουµε λόγω της δοµής του καναλιού. ∆εδοµένου ότι

λαµβάνουµε στην έξοδο b4 είναι σίγουρο 100% ότι έχει σταλεί a3 , άρα p ( a3 / b4 ) =1

∆εδοµένου ότι λαµβάνουµε στην έξοδο b5 είναι σίγουρο 100% ότι έχει σταλεί a 3 και

όχι a 2 (ή οτιδήποτε άλλο), άρα p ( a2 / b5 ) =0.

Με το ίδιο σκεπτικό, όλες οι πιθανότητες της µορφής p(a / b) είναι είτε 0 είτε 1.

γ) Πρόκειται για κανάλι χωρίς απώλειες οπότε C = log 2 4 = 2 bits/σύµβολο.

Αν θέλουµε να το εξηγήσουµε, ο τύπος (1) της διαπληροφορίας (βλέπε θεωρία) δίνει


I ( A, B) = H ( A) − H ( A / B) = H ( A)
και τελικά

C = max{I ( A, B)} = max{H ( A)} = log 2 4 = 2 bits/σύµβολο


Π ( A) Π ( A)

Άσκηση 3.8
α) Το διάγραµµα του καναλιού είναι

a1 1
b1
1
a2

a3 1
b2
1
a4

β) Πρόκειται για καθοριστικό κανάλι οπότε C = log 2 2 = 1 bits/σύµβολο

Άσκηση 3.9
α) Έχουµε

1 − q q 
Π ( B / A) =  
 q 1 − q
Άρα

119
1 − q q 
Π ( B) = Π ( A) ⋅ Π ( B / A) = [ p 1 − p ] ⋅  
 q 1 − q
= [ p (1 − q) + (1 − p)q pq + (1 − p)(1 − q)]
= [ p + q − 2 pq 1 − p − q + 2 pq ]

p 0  1 − q q 
Π ( A, B ) = Π D ( A) ⋅ Π ( B / A) =   ⋅ 
 0 1 − p  q 1 − q
 p (1 − q ) pq 
= 
q (1 − p) (1 − p )(1 − q )

β) H ( AB) = − p(1 − q) log 2 p(1 − q ) − pq log 2 pq


− q (1 − p ) log 2 q (1 − p ) − (1 − p)(1 − q ) log 2 (1 − p)(1 − q )
= − p (1 − q ) log 2 p − p (1 − q ) log 2 (1 − q )
− pq log 2 p − pq log 2 q
− q (1 − p ) log 2 q − q (1 − p ) log 2 (1 − p )
− (1 − p )(1 − q ) log 2 (1 − p ) − (1 − p )(1 − q ) log 2 (1 − q )
= − p log 2 p − (1 − p ) log 2 (1 − p ) − q log 2 q − (1 − q ) log 2 (1 − q )
= h( p ) + h( q )

γ) Η µεγαλύτερη τιµή της H (B) µπορεί να επιτευχθεί αν τα σύµβολα της πηγής


εξόδου Β γίνουν ισοπίθανα, δηλαδή όταν

1 1
[ p + q − 2 pq 1 − p − q + 2 pq ] = 
2 2 
Είναι
1
p + q − 2 pq = ⇔ 2 p + 2q − 4 pq = 1 ⇔ 2 p (1 − 2q ) = 1 − 2q ⇔ 2 p = 1
2
1 1
⇔ p= (µε την προϋπόθεση ότι q≠ )
2 2
Τότε θα είναι H ( B ) = log 2 2 = 1 bit/σύµβολο

δ) I ( A, B ) = H ( A) + H ( B) − H ( AB) = h( p) + H ( B) − (h( p ) + h(q )) = H ( B ) − h(q )


ε) C = max I ( A, B) = max[H ( B) − h(q)] = 1 − h(q )
(όπως προκύπτει από το γ)

120
Άσκηση 3.10
α) Για πιθανότητα σφάλµατος q=0.5, είναι
1 1 1 1
h(q ) = log 2 2 + log 2 2 = + = 1 bit/σύµβολο
2 2 2 2
οπότε
C=1-h(q)= 0

Όταν η πιθανότητα σφάλµατος είναι 50%, ό,τι και να λάβουµε στην έξοδο έχουµε
πλήρη άγνοια για την πληροφορία που διοχετεύτηκε στο κανάλι. Ουσιαστικά δεν
µπορεί να µεταδοθεί πληροφορία. Έτσι εξηγείται η χωρητικότητα 0.

β) και γ) Για q=1/4 όπως και για q=3/4 είναι


1 3 4 1 3 3
h(q) = log 2 4 + log 2 = + (2 − log 2 3) = 2 − 1.59 = 0.81 bits/σύµβολο
4 4 3 2 4 4
οπότε
C=1-h(q)= 0.19 bits/σύµβολο

Είτε 25%, είτε 75% είναι η πιθανότητα σφάλµατος πρακτικά έχουµε το ίδιο
αποτέλεσµα. Όταν για παράδειγµα στην έξοδο του καναλιού λαµβάνουµε το σύµβολο
1, στην πρώτη περίπτωση είµαστε 75% σίγουροι ότι στάλθηκε 1 ενώ στη δεύτερη
75% ότι στάλθηκε 0, έχουµε δηλαδή την ίδια βεβαιότητα στην έξοδο. Η ίδια
ικανότητα του καναλιού ως προς την πληροφορία που διοχετεύεται στο κανάλι εξηγεί
και την ίδια χωρητικότητα.

Άσκηση 3.11
α) Έχουµε

0.9 0.1 0 
Π ( B / A) =  
 0 0.1 0.9
Άρα

0.9 0.1 0 
Π ( B) = Π ( A) ⋅ Π ( B / A) = [ p 1 − p ] ⋅  
 0 0.1 0.9
= [0.9 p 0.1p + 0.1(1 − p) 0.9(1 − p)] = [0.9 p 0.1 0.9(1 − p)]
και

121
p 0  0.9 0.1 0 
Π ( A, B ) = Π D ( A) ⋅ Π ( B / A) =  ⋅  
 0 1 − p   0 0.1 0.9
0.9 p 0.1p 0 
= 
 0 0.1(1 − p) 0.9(1 − p)

β) H ( AB) = − 0.9 p log 2 0.9 p − 0.1 p log 2 0.1 p


− 0.1(1 − p ) log 2 0.1(1 − p ) − 0.9(1 − p ) log 2 0.9(1 − p)
= −0.9 p log 2 0.9 − 0.9 p log 2 p
− 0.1 p log 2 0.1 − 0.1 p log 2 p
− 0.1(1 − p ) log 2 0.1 − 0.1(1 − p ) log 2 (1 − p )
− 0.9(1 − p ) log 2 0.9 − 0.9(1 − p ) log 2 (1 − p )
= − p log 2 p − (1 − p ) log 2 (1 − p ) − (0.1) log 2 0.1 − (0.9) log 2 0.9

= h( p ) + h(0.1)
και

H (B) = − 0.9 p log 2 0.9 p − 0.1log 2 0.1 − 0.9(1 − p) log 2 0.9(1 − p)


= −0.9 p log 2 0.9 − 0.9 p log 2 p − 0.1 log 2 0.1
− 0.9(1 − p ) log 2 0.9 − 0.9(1 − p ) log 2 (1 − p )
= 0.9[− p log 2 0.9 − p log 2 p − (1 − p ) log 2 0.9 − (1 − p ) log 2 (1 − p ) ]
− 0.1 log 2 0.1
= 0.9[− log 2 0.9 + h( p )] ] − 0.1 log 2 0.1
= 0.9h( p) − 0.9 log 2 0.9 − 0.1 log 2 0.1
= 0.9h( p) + h(0.1)

γ) I ( A, B ) = H ( A) + H ( B ) − H ( AB) = h( p ) + 0.9h( p ) + h(0.1) − h( p ) − h(0.1)


= 0.9h( p)

δ) C = max I ( A, B) = max[0.9h( p )] =0.9 bit/σύµβολο,


(διότι max h( p ) = log 2 2 = 1 )

122
Άσκηση 3.12

Έστω Π( A) = [ p1 p2 L pm ]
Είναι

1 1 1
 L 
m m m
1 1
L
1
1 1 1
Π( B) = Π( A) ⋅ Π( B / A) = [ p1 p2 L pm ]  m m m  =[ L ]
M M O  m m m
1 1 1
 L 
m m m
Επίσης

1 1 1
0 L 0 m 
L
 p1 m m
 
0 p2 0  1 1
L
1
Π ( A, B ) = Π D ( A) ⋅ Π ( B / A) =   m
M O M m m
  M M O M
0 0 L pm   1 1 1

 L 
m m m
 p1 p1 p1 
 L 
 m m m 
 p2 p2 p2 
= L
m m m 
 M M O M 
 pm pm pm 
 L 
 m m m 
Άρα,

H ( B ) = log 2 m
και

p m p m p m 
H ( AB) = m 1 log 2  + m 2 log 2  + L + m m log 2 
m p1  m p2   m p m 

= p1 (log 2 m − log 2 p1 ) + p 2 (log 2 m − log 2 p 2 ) + L + p m (log 2 m − log 2 p m )

= ( p1 + p 2 + L + p m ) log 2 m − p1 log 2 p1 − p 2 log 2 p 2 − L − p m log 2 p m

= log 2 m + H ( A)

123
Συνεπώς, η διαπληροφορία είναι

I ( A, B) = H ( A) + H ( B) − H ( AB) = H ( A) + log 2 m − log 2 m − H ( A) = 0


Άρα τελικά
C=0
Για m=3, το διάγραµµα είναι

1
όπου κάθε πιθανότητα που εµφανίζεται είναι .
3
Το κανάλι αυτό δεν είναι σε θέση να µεταδώσει καθόλου πληροφορία, καθώς ότι και
να λάβουµε στην έξοδο θα µπορούσε να προέλθει κάλλιστα από οποιοδήποτε σύµβολο
εισόδου µε ίσες πιθανότητες. Αυτή η πλήρης αδυναµία του καναλιού µεταφράζεται σε
µηδενική χωρητικότητα.

124
Λύσεις Κεφαλαίου 4

Άσκηση 4.1
α) Η εντροπία είναι

H = 4 × (0.15) log 2 0.15 − (0.4) log 2 0.4 = − (0.6) log 2 0.15 − (0.4) log 2 0.4
=(0.6)(2.74)+(0.4)(1.32) ≅ 2.17 bits/σύµβολο

β) Μια δυαδική κωδικοποίηση µε σταθερό µήκος κωδικών λέξεων θα µπορούσε να


είναι η εξής
Α 000
Β 001
Γ 010
∆ 100
Ε 111
(το µικρότερο µήκος που θα µπορούσαµε να έχουµε είναι 3 καθώς µε 2 δυαδικά
ψηφία σχηµατίζονται µόνο 4 κωδικές λέξεις)

γ) Ο κώδικας Shannon-Fano είναι

∆ 0,4 00 Α 01
Α 0,15 01 Β 10
Β 0,15 10 δηλαδή Γ 110
Γ 0,15 110 ∆ 00
Ε 0,15 111 Ε 111

δ) Ο κώδικας του ερωτήµατος β) έχει προφανώς µέσο µήκος 3 bits/σύµβολο


Ο κώδικας του ερωτήµατος γ) έχει µέσο µήκος
(0.4)x2+(0.15)x2+(0.15)x2+(0.15)x3+(0.15)x3= 2.3 bits/σύµβολο
βλέπουµε ότι ο κώδικας Shannon-Fano πλησιάζει περισσότερο στην εντροπία της
πηγής.

ε) Ο κώδικας που δίνεται έχει µέσο µήκος


(0.4)x1+(0.15)x3+(0.15)x3+(0.15)x3+(0.15)x3= 2.2 bits/σύµβολο
και πλησιάζει ακόµη περισσότερο την τιµή της εντροπίας.

125
στ) Ο πρώτος κώδικας έχει σταθερό µήκος οπότε είναι φανερά στιγµιαία
αποκωδικοποιήσιµος. Οι άλλοι δύο είναι επίσης στιγµιαία αποκωδικοποιήσιµοι διότι
είναι προθεµατικοί: καµιά κωδική λέξη δεν αποτελεί πρόθεµα σε µια άλλη.

Άσκηση 4.2
1ος: ευκρινής, όχι µονοσήµαντος
διότι πχ η λήψη 101010 µπορεί να αποδοθεί ΑΑΑ είτε ΑΒ είτε ΒΑ είτε Γ
ος
2 : ευκρινής, µονοσήµαντος, όχι προθεµατικός
διότι κάθε κωδική λέξη αποτελεί πρόθεµα της επόµενης
ος
3 : ευκρινής, µονοσήµαντος, προθεµατικός

Άσκηση 4.3
α) Ένας block κώδικας µε 8 κωδικές λέξεις πρέπει να έχει µήκος τουλάχιστον 3. Ένας
τέτοιος θα µπορούσε να είναι ο εξής
m 000
n 001
o 010
p 011
q 100
r 101
s 110
t 111

Το µέσο µήκος είναι προφανώς 3 bits/σύµβολο

β) Με τον αλγόριθµο Shannon-Fano βρίσκουµε τον κώδικα

s 0.30 0 0
o 0.20 0 1
r 0.13 1 0 0
n 0.12 1 0 1
m 0.10 1 1 0
t 0.08 1 1 1 0
P 0.05 1 1 1 1 0
q 0.02 1 1 1 1 1

126
γ) Το µήνυµα είναι 00 01 00 1110 01 = sosto
Με τον πρώτο κώδικα το µήνυµα θα καταλάµβανε 5x3=15 bits ενώ τώρα
καταλαµβάνει 12 bits. Άρα πετυχαίνουµε συµπίεση κι αυτό διότι η λέξη sosto
αποτελείται κυρίως από συχνά σύµβολα (δηλαδή µε µεγάλη πιθανότητα)

δ) Ο δεύτερος κώδικας έχει µέσο µήκος


(0.30)x2+(0.20)x2+(0.13)x3+(0.12)x3+(0.10)x3+(0.08)x4+(0.05)x5+(0.02)x5
= 0.60+0.40+0.39+0.36+0.30+0.32+0.25+0.10
= 2.72 bits/σύµβολο
Ένα κείµενο 1000 χαρακτήρων θα καταλάµβανε κατά µέσο όρο µε τον block
κώδικα 3000 bits ενώ µε τον κώδικα Shannon-Fαno καταλαµβάνει 2720 bits

ε) Την µέγιστη εντροπία θα την είχαµε αν τα οκτώ σύµβολα ήταν ισοπίθανα. Αυτή θα
ήταν Η=log28=3 bits/σύµβολο. Άρα η εντροπία της πηγής Α είναι µικρότερη από
3bits/σύµβολο

Άσκηση 4.4

α) Για το a η πιθανότητα εκποµπής είναι x = 1- 1 -1 = 6 = 3


8 8 8 4
Η εντροπία της πηγής Α είναι
3 4 1 1 3 1 1
H ( A) = log + log 8 + log 8 = (log 4 − log 3) + 3 + 3
4 3 8 8 4 8 8
3 6
= (2 − 1.58) + = 1.065 bits/σύµβολο
4 8
Η εντροπία θα ήταν µέγιστη εάν τα 3 σύµβολα ήταν ισοπίθανα, δηλ. µε πιθανότητα

1 το καθένα. Η τιµή της θα ήταν


3
1 
H = 3 ⋅  log 3  = log 3 = 1.58 bits/σύµβολο
3 
β) Με τον αλγόριθµο Shannon-Fano βρίσκουµε

a 6 0
8

b 1 1 0
8

c 1 1 1
8

127
6 1 1
Μέσο µήκος = ⋅ 1 + ⋅ 2 + ⋅ 2 = 1.25 bits/σύµβολο
8 8 8

γ) H επέκταση A 2 µε τις αντίστοιχες πιθανότητες είναι

aa ab ac ba bb bc ca cb cc

36 6 6 6 1 1 6 1 1
64 64 64 64 64 64 64 64 64

[για κάθε διπλό σύµβολο πολλαπλασιάζουµε τις αντίστοιχες πιθανότητες, πχ για το σύµβολο ab η
πιθανότητα είναι 6 1 =6 ]
8 8 64
Ο αλγόριθµος Shannon-Fano δίνει

aa 36 0
64
ab 6 1 0 0
64
ac 6 1 0 1
64
ba 6 1 1 0
64
ca 6 1 1 1 0
64
bb 1 1 1 1 1 0 0
64
bc 1 1 1 1 1 0 1
64
cb 1 1 1 1 1 1 0
64
cc 1 1 1 1 1 1 1
64

δ) Η νέα απόδοση είναι


36 6 6 6 6 1 1 1 1
⋅1 + ⋅ 3 + ⋅ 3 + ⋅ 3 + ⋅ 4 + ⋅ 6 + ⋅6+ ⋅6+ ⋅6
64 64 64 64 64 64 64 64 64

36 + 18 + 18 + 18 + 24 + 6 + 6 + 6 + 6 138
= = = 2.156 bits/διπλό σύµβ
64 64
δηλαδή η απόδοση είναι 1.078 bits/σύµβολο

128
ε) Το µήνυµα κωδικοποιείται ως εξής:

1ος κώδικας: aabaacaa = 0 0 10 0 0 11 0 0 (10 bits)


2ος κώδικας: aa ba ac aa = 0 110 101 0 (8 bits)

Γενικά βλέπουµε ότι η απόδοση από


1.250 bits/σύµβολο
βελτιώθηκε σε
1.078 bits/σύµβολο

Σύµφωνα µε το πρώτο θεώρηµα του Shannon η βελτίωση αυτή µπορεί να φτάσει


µέχρι την εντροπία της πηγής Α, δηλαδή 1.065 bits/σύµβολο (ερώτηµα α). Με τον
τρόπο αυτό πετυχαίνουµε συµπίεση δεδοµένων και κατά συνέπεια ταχύτερη µετάδοση
δεδοµένων.

Άσκηση 4.5
1 3 4 1 3 1 3 3
α) Η(Α) = log 4 + log = + (log 4 − log 3) = + − (1.58)
4 4 3 2 4 2 2 4
= 0.81 bits/σύµβολο

β) Οι πηγές που έχουµε είναι αντίστοιχα

A A2
a b aa ab ba bb
3 1 9 3 3 1
4 4 16 16 16 16

A3
aaa aab aba abb baa bab bba bbb
27 9 9 3 9 3 3 1
64 64 64 64 64 64 64 64

Οι κωδικοποιήσεις Shannon-Fano για τις τρεις πηγές είναι αντίστοιχα

129
a 3 0
4
b 1 1
4

aa 9 0
16
ab 3 1 0
16
ba 3 1 1 0
16
bb 1 1 1 1
16

aaa 27 0 0
64
aab 9 0 1
64
aba 9 1 0 0
64
baa 9 1 0 1
64
abb 3 1 1 0 0
64
bab 3 1 1 0 1
64
bba 3 1 1 1 0
64
bbb 1 1 1 1 1
64

Οι αντίστοιχες αποδόσεις των τριών κωδίκων (µέσα µήκη) είναι

1ος κώδικας: 1 bit/σύµβολο

2ος κώδικας: 9 x1+ 3 x2+ 3 x3+ 1 x3 = 27 bits/διπλό σύµβολο


16 16 16 16 16
= 1.68 bits/διπλό σύµβολο
= 0.84 bits/σύµβολο

3ος κώδικας: 27 x2+ 9 x2+( 9 x3)x2+( 3 x4)x3+ 1 x4


64 64 64 64 64
= 166 bits/ τριπλό σύµβολο
64
= 2.59 bits/τριπλό σύµβολο
= 0.86 bits/σύµβολο

130
Παρατηρούµε ότι ο κώδικας βελτιώνεται µε την δεύτερη επέκταση ενώ δεν
βελτιώνεται µε την τρίτη, αντίθετα ίσως απ’ ότι θα περίµενε κανείς. Αυτό διότι η
κατανοµή πιθανοτήτων στην τρίτη επέκταση δεν είναι αρκετά «βολική» ώστε να δίνει
σε κάθε διχοτόµηση ισοπίθανες οµάδες.

γ) Είναι αξιοσηµείωτο ότι αν τροποποιήσουµε µόνο το πρώτο βήµα (σκιασµένη στήλη)


τότε στα επόµενα βήµατα θα έχουµε «καλύτερα µοιρασµένες» οµάδες συµβόλων.
Πράγµατι

aaa 27 0
64
aab 9 1 0 0
64
aba 9 1 0 1
64
baa 9 1 1 0
64
abb 3 1 1 1 0 0
64
bab 3 1 1 1 0 1
64
bba 3 1 1 1 1 0
64
bbb 1 1 1 1 1 1
64

Το µέσο µήκος τώρα θα είναι

4ος κώδικας: 27 x1+( 9 x3)x3+( 3 x5)x3+ 1 x5


64 64 64 64
= 158 bits/ τριπλό σύµβολο
64
= 2.47 bits/τριπλό σύµβολο
= 0.82 bits/σύµβολο
βελτιωµένη δηλαδή σε σχέση µε την απόδοση των προηγούµενων κωδίκων.

Άσκηση 4.6
Είναι p(A)= 9 και p(M)= 1 .
10 10

α) Η τρίτη επέκταση της πηγής Χ={Α,Μ} είναι

ΑΑΑ ΑΑΜ ΑΜΑ ΑΜΜ ΜΑΑ ΜΑΜ ΜΜΑ ΜΜΜ


729 81 81 9 81 9 9 1
1000 1000 1000 1000 1000 1000 1000 1000

131
β) Ο κώδικας Shannon-Fano που προκύπτει είναι

ΑΑΑ 729 0
1000
ΑΑΜ 81 1 0 0
1000
ΑΜΑ 81 1 0 1
1000
ΜΑΑ 81 1 1 0
1000
ΑΜΜ 9 1 1 1 0 0
1000
ΜΑΜ 9 1 1 1 0 1
1000
ΜΜΑ 9 1 1 1 1 0
1000
ΜΜΜ 1 1 1 1 1 1
1000

γ) Για την ακολουθία ΑΑΑ ΑΑΜ ΑΑΑ

Αρχικός κώδικας 000 001 000 9 bits


Shannon-Fano 0 100 0 5 bits

Παρατηρούµε ότι µε την δεύτερη κωδικοποίηση το ίδιο µήνυµα συµπιέζεται αρκετά.

δ) Ο πρώτος κώδικας έχει απόδοση 1 bit/pixel. Ο δεύτερος κώδικας έχει απόδοση


729 × 1bit +3 × ( 81 ×3bits) +3 × ( 9 ×5bits) + 1 × 5bits
1000 1000 1000 1000

= 1598 bits ανά 3 pixels = 0,532 bits/pixel


1000

ε) Η απόδοση αυτή σύµφωνα µε το πρώτο Θεώρηµα Shannon µπορεί να µειωθεί µέχρι


την εντροπία της πηγής η οποία είναι
1 9 10 1 9
H (X ) = log 2 10 + log 2 = log 2 10 + (log 2 10 − log 2 9)
10 10 9 10 10

9
= log 2 10 − log 2 9 = 3.322 – 2.853 = 0.469 bits/pixel
10

Άσκηση 4.7
Για τους δύο πρώτους πίνακες δεν είναι δυνατόν να κατασκευάσουµε δυαδικό δέντρο
διότι δεν είναι προθεµατικοί.

132
Για τον τρίτο κώδικα έχουµε

Α 01
Β 00
Γ 100
∆ 110
Ε 111

0 1

0 1 0 1

Β Α 0 0 1

Γ ∆ Ε

Σηµείωση: Μπορούµε να συµπτύξουµε λίγο ακόµη τον κώδικά µας. Ένα δυαδικό
δέντρο λέγεται «πλήρες» όταν κάθε εσωτερικός κόµβος (εκτός δηλαδή από τα φύλλα)
έχει δύο παιδιά. Μπορούµε να διαγράψουµε τον τελευταίο κλάδο της διαδροµής Γ
(ουσιαστικά δεν προσφέρει κάτι περισσότερο στην κωδικοποίηση) και να προκύψει
πλήρες δέντρο. Η αντίστοιχη κωδική λέξη θα γίνει Γ = 10 και ο νέος κώδικας θα έχει
ελαφρώς µικρότερο µέσο µήκος.

Άσκηση 4.8
Η πηγή είναι
Α Β Γ ∆ Ε
0,15 0,15 0,15 0,4 0,15

Σχηµατίζουµε βήµα-βήµα το δέντρο του αλγορίθµου Huffman:

Βήµα 1: (τα τέσσερα τελευταία σύµβολα µπορούµε να τα διατάξουµε όπως θέλουµε)

0.40 0.15 0.15 0.15 0.15

∆ Γ Ε Α Β

133
Βήµα 2:
0.40 0.30 0.15 0.15

∆ Γ Ε

Α Β

Βήµα 3:
0.40 0.30 0.30

Α Β Γ Ε

Βήµα 4:
0.40 0.60

Α Β Γ Ε

Βήµα 5:
1

Α Β Γ Ε

134
Ο κώδικας Huffman είναι
Α 100
Β 101
Γ 110
∆ 0
Ε 111

Πρόκειται για τον κώδικα που δίνεται στο ερώτηµα 1 ε) και ο οποίος έχει µέσο µήκος
(βλέπε υπολογισµό στην άσκηση 1 πιο πάνω) 2.2 bits/σύµβολο

Άσκηση 4.9
Η πηγή είναι

m n o p q r s t
0,10 0,12 0,20 0,05 0,02 0,13 0,30 0,08

Σχηµατίζουµε βήµα-βήµα το δέντρο του αλγορίθµου Huffman:

Βήµα 1:
0.30 0.20 0.13 0.12 0.10 0.08 0.05 0.02

s o r n m t p q

Βήµα 2:

0.30 0.20 0.13 0.12 0.10 0.08 0.07

s o r n m t

p q

Βήµα 3:
0.30 0.20 0.15 0.13 0.12 0.10

s o r n m

p q

135
Βήµα 4:
0.30 0.22 0.20 0.15 0.13

s o r

n m t

p q

Βήµα 5:
0.30 0.28 0.22 0.20

s o

r n m

p q

Βήµα 6:
0.42 0.30 0.28

o r

n m t

p q

Βήµα 7:
0.58 0.42

s o

r n m

p q

136
Βήµα 8:
1

s o

r n m

p q

Ο κώδικας Huffman είναι


m 101
n 100
o 11
p 01010
q 01011
r 011
s 00
t 0100

Αν συγκρίνουµε µε τον κώδικα Shannon-Fano πού βρήκαµε στο ερώτηµα 3 β)

m 110
n 101
o 01
p 11110
q 11111
r 100
s 00
t 1110

137
θα διαπιστώσουµε ότι τα µήκη των αντίστοιχων κωδικών λέξεων είναι ακριβώς τα ίδια,
άσχετα αν οι κώδικες είναι διαφορετικοί. Ποιοτικά λοιπόν οι δύο κώδικες είναι ίδιοι και
έχουν το ίδιο µέσο µήκος 2.72 bits/σύµβολο.

Άσκηση 4.10
Οι τρεις πηγές είναι

A A2
a b aa ab ba bb
3 1 9 3 3 1
4 4 16 16 16 16

A3
aaa aab aba abb baa bab bba bbb
27 9 9 3 9 3 3 1
64 64 64 64 64 64 64 64

Για την πηγή Α, έχουµε

Βήµα 1:
3/4 1/4

a b

Βήµα 2:
1

a b

και ο κώδικας Huffman είναι

a 0
b 1

138
Για την πηγή Α2 έχουµε

Βήµα 1:
9/16 3/16 3/16 1/16

aa ab ba bb

Βήµα 2:
9/16 4/16 3/16

aa ab

ba bb

Βήµα 3:
9/16 7/16

aa

ab

ba bb

Βήµα 4:
1

aa

ab

ba bb

139
και ο κώδικας Huffman είναι
aa 0
ab 11
ba 100
bb 101

Τέλος, για την πηγή Α3 έχουµε

Βήµα 1:
27/64 9/64 9/64 9/64 3/64 3/64 3/64 1/64

aaa aab aba baa abb bab bba bbb

Βήµα 2:
27/64 9/64 9/64 9/64 4/64 3/64 3/64

aaa aab aba baa abb bab

bba bbb

Βήµα 3:
27/64 9/64 9/64 9/64 6/64 4/64

aaa aab aba baa

abb bab bba bbb

Βήµα 4:
27/64 10/64 9/64 9/64 9/64

aaa aab aba baa

abb bab bba bbb

140
Βήµα 5:
27/64 18/64 10/64 9/64

aaa aab

aba baa

abb bab bba bbb

Βήµα 6:
27/64 19/64 18/64

aaa

aab aba baa

abb bab bba bbb

Βήµα 7:
37/64 27/64

aaa

aab aba baa

abb bab bba bbb

141
Βήµα 8:

aaa

aab aba baa

abb bab bba bbb

και ο κώδικας Huffman είναι


aaa 1
aab 001
aba 010
abb 00000
baa 011
bab 00001
bba 00010
bbb 00011

Αν συγκρίνουµε τους τρεις κώδικες Huffman που βρήκαµε εδώ µε τους κώδικες 1,2
και 4 αντίστοιχα της άσκησης 5 θα διαπιστώσουµε ότι οι έχουν τα ίδια µήκη κωδικών
λέξεων. Έτσι οι αποδόσεις των τριών κωδίκων είναι
1.00 bit/σύµβολο,
0.84 bits/σύµβολο,
0.82 bits/σύµβολο.
αντίστοιχα. Η απόδοση λοιπόν βελτιώνεται συνεχώς.

142
Λύσεις Κεφαλαίου 5

Άσκηση 5.1
Παρατηρούµε ότι οι κωδικές λέξεις διαφέρουν ανά δύο µεταξύ τους τουλάχιστον κατά
3 δυαδικά ψηφία. Έτσι
α) Αν γίνουν µέχρι 2 σφάλµατα σε µια κωδική λέξη µπορεί να γίνει ανίχνευση διότι η
λήψη αποκλείεται να είναι κάποια κωδική λέξη.
β) Αν γίνει µέχρι 1 σφάλµα µπορεί να γίνει διόρθωση διότι είναι φανερό ποια είναι η
πλησιέστερη κωδική λέξη. Για παράδειγµα αν σταλεί 000000, σε όποια θέση και να
συµβεί σφάλµα το αποτέλεσµα θα είναι πιο κοντά στην αρχική κωδική λέξη 000000,
οπότε θα γίνει διόρθωση.
Στα 2 σφάλµατα δεν γίνεται διόρθωση, διότι αν σταλεί για παράδειγµα η κωδική λέξη
000000 και ληφθεί 000011 (δύο σφάλµατα), το λογικό είναι η αποκωδικοποίηση της
λήψης να δώσει 000111 διότι αυτή είναι η πλησιέστερη κωδική λέξη. Έτσι δεν
διορθώνεται το αρχικό µήνυµα.
γ) Έχουµε N=4=22 κωδικές λέξεις, άρα k=2, ενώ το µήκος είναι n=6, άρα ο ρυθµός
λοιπόν του κώδικα είναι
k 2 1
R= = =
n 6 3
δ) Αν παρατηρήσουµε τον κώδικα θα διαπιστώσουµε ότι η πραγµατική πληροφορία
καταλαµβάνει 2 ψηφία (πχ στην 1η και την 4η στήλη) ενώ η πλεονάζουσα πληροφορία
4 ψηφία (επαναλαµβάνεται ουσιαστικά και η 1η και η 4η στήλη άλλες δύο φορές)

Άσκηση 5.2
α) Στέλνεται το σύµβολο Α µε τον κώδικα 1, άρα Α=00. ∆είχνουµε στον παρακάτω
πίνακα όλες τις δυνατές λήψεις και τις αντίστοιχες αποκωδικοποιήσεις.

Αριθµός Τι φτάνει στην Πως


σφαλµάτων έξοδο (λήψη) αποκωδικοποιείται
0 00 00 (σωστά)
1 01 01 (λάθος)
10 10 (λάθος)
2 11 11 (λάθος)

Προφανώς δεν υπάρχει περιθώριο για καµία διόρθωση. Με το παραµικρό σφάλµα


λαµβάνουµε κάποια άλλη κωδική λέξη.

143
β) Το µήνυµα Α θα αποκωδικοποιηθεί σωστά µόνο στην πρώτη περίπτωση πιο πάνω
δηλαδή µόνο αν µεταδοθούν σωστά και τα δύο δυαδικά ψηφία. Άρα η πιθανότητα
ορθής µετάδοσης του µηνύµατος Α είναι (0.99)(0.99)=0.98, συνεπώς η πιθανότητα
σφάλµατος είναι 0.02=2%.

γ) Στέλνεται το σύµβολο Α µε τον κώδικα 2, άρα Α=000000. ∆είχνουµε στον


παρακάτω πίνακα όλες τις δυνατές λήψεις και τις αντίστοιχες αποκωδικοποιήσεις εάν
συµβούν µέχρι 2 σφάλµατα

Αριθµός Τι φτάνει στην πλησιέστερη


σφαλµάτων έξοδο κωδική λέξη
(λήψη) (αποκωδικοποίηση)
0 000000 000000 (σωστά)
100000
010000
1 001000 000000 (σωστά)
000100
000010
000001
110000
101000 111000 (λάθος)
2 011000
000110
000101 000111 (λάθος)
000011
100100
100010
100001
010100 000000 (σωστά)
010010
010001
001100
001010
001001

δ) Εάν συµβούν 3 η περισσότερα σφάλµατα τότε η λήψη θα πλησιάζει περισσότερο σε


άλλη κωδική λέξη, οπότε η αποκωδικοποίηση αποκλείεται να δώσει 000000=Α. ∆εν
γίνεται διόρθωση λοιπόν.

ε) Γνωρίζουµε ότι η πιθανότητα σφάλµατος σε ένα ψηφίο είναι q = 0.01 , οπότε η


πιθανότητα ορθής µετάδοσης του ψηφίου είναι 1 − q = 0.99 . Άρα, αν σταλεί η κωδική
λέξη Α=000000 έχουµε

144
πιθανότητα για κανένα σφάλµα: (0.99) 6

πιθανότητα για ένα σφάλµα : (0.99) 5 ⋅ (0.01)

πιθανότητα για δύο σφάλµατα: (0.99) 4 ⋅ (0.01) 2

Από τις περιπτώσεις του πίνακα όπου έχουµε ορθή αποκωδικοποίηση προκύπτει ότι η
πιθανότητα ορθής µετάδοσης είναι

P = (0.99) 6 + 6 ⋅ (0.99) 5 ⋅ (0.01) + 9 ⋅ (0.99) 4 ⋅ (0.01) 2 =0.9994


συνεπώς η πιθανότητα σφάλµατος είναι 0.0006 = 0,06%.

στ) Αν σταλεί ένα µήνυµα 10,000 bits αναµένεται λάθος σε


10,000*2%=200 bits µε τον πρώτο κώδικα
10,000*0.06%=6 bits µε τον δεύτερο κώδικα.

Μπορεί λοιπόν να τριπλασιάσαµε το µήκος του κώδικα (άρα τριπλασιάσαµε και το


χρόνο µετάδοσης), αλλά κερδίσαµε πολύ περισσότερο σε αξιοπιστία!

Άσκηση 5.3
Όχι, δεν είναι κατάλληλος σε περιβάλλον µε θόρυβο διότι δεν είναι σε θέση να
διορθώσει ούτε ένα σφάλµα. Οι κωδικές λέξεις είναι πολύ «κοντά» µεταξύ τους και
δεν υπάρχει περιθώριο για διόρθωση. Για παράδειγµα, αν σταλεί το µήνυµα 000000
και συµβεί λάθος στο τελευταίο ψηφίο, τα λαµβανόµενο µήνυµα 000001 θα εκληφθεί
ως σωστό από το δέκτη (εφόσον υπάρχει τέτοια κωδική λέξη).

Προσθέτουµε ένα bit ελέγχου ισοτιµίας:

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

Τώρα έχουµε άρτιο αριθµό bits σε κάθε κωδική λέξη. Έτσι αν συµβεί ένα σφάλµα θα
λάβουµε στην έξοδο περιττό αριθµό από bits και θα ανιχνευτεί σφάλµα.

145
Άσκηση 5.4
Ο πίνακας Α έχει διαστάσεις 2x2. Άρα k=2 και n-k=2, οπότε n=4. ∆ηλαδή η
διάσταση του κώδικα είναι k=2 ενώ το µήκος του n=4. Ο ρυθµός είναι R=k/n=1/2.
Ας βρούµε τον κώδικα:

1ος τρόπος (µε πίνακα ελέγχου): Είναι

1 1 1 0 
H = (A | I) =  
0 1 0 1 
Άρα

 x1 
 
 x2   x1 + x 2 + x3 = 0
H ⋅  = O ⇔ 
x
 3  x2 + x4 = 0
x 
 4
Θεωρώντας όλους τους συνδυασµούς δυαδικών ψηφίων για τα x1,x2 µπορούµε
εύκολα να βρούµε τα x3,x4. Έχουµε λοιπόν τoν κώδικα:
x1 x2 x3 x4
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 1

2ος τρόπος (µε γεννήτρια):

1 0 1 0
Είναι G = [I | At ] =  .
0 1 1 1 
Άρα

1 0 1 0
[0 0] G = [0 0]  = [0 0 0 0]
0 1 1 1 

1 0 1 0
[0 1] G = [0 1]  = [0 1 1 1]
0 1 1 1 

1 0 1 0
[1 0] G = [1 0]  = [1 0 1 0]
0 1 1 1 

1 0 1 0
[1 1] G = [1 1]  = [1 1 0 1]
0 1 1 1 

146
Ο κώδικας είναι λοιπόν: 0000
0111
1010
1101

Η ελάχιστη απόσταση είναι ίση µε το ελάχιστο µη µηδενικό βάρος, άρα d=2


Εφόσον η ελάχιστη απόσταση είναι 2 µπορεί να ανιχνεύσει µέχρι και 1 σφάλµα. Γενικά
δεν διορθώνει ούτε 1 σφάλµα. (Υπάρχουν ωστόσο περιπτώσεις που διορθώνει ένα
σφάλµα. Π.χ. στην κωδική λέξη 0000 αν συµβεί λάθος στο τέταρτο bit, υπάρχει η
δυνατότητα διόρθωσης)

Άσκηση 5.5
Ο πίνακας Α έχει διαστάσεις 3x2. Άρα k=2 και n-k=3, οπότε n=5. ∆ηλαδή η
διάσταση του κώδικα είναι k=2 ενώ το µήκος του n=5. Ο ρυθµός είναι R=k/n=2/5.
Ας βρούµε τον κώδικα:

1ος τρόπος (µε πίνακα ελέγχου): Είναι

 x1   x1 
   
 x2  1 1 1 0 0   x2   x1 + x 2 + x3 = 0
H  x3  = O ⇔
   x  = O ⇔ x + x = 0
  1 0 0 1 0   3  1 4
0 1 0 0 1 
 x4   x4   x 2 + x5 = 0
x  x 
 5  5
Έχουµε λοιπόν τoν κώδικα:
x1 x2 x3 x4 x5
0 0 0 0 0
0 1 1 0 1
1 0 1 1 0
1 1 0 1 1

2ος τρόπος (µε γεννήτρια):

1 0 1 1 0
Η γεννήτρια του κώδικα είναι G =  
0 1 1 0 1 

οπότε οι κωδικές λέξεις είναι οι

147
[0 0] G = [0 0 0 0 0],
[0 1] G = [0 1 1 0 1],
[1 0] G = [1 0 1 1 0],
[1 1] G = [1 1 0 1 1]

H ελάχιστη απόσταση του κώδικα είναι d=3, άρα µπορεί να διορθώσει ένα σφάλµα.

Άσκηση 5.6
Πίνακας ελέγχου:

H = ( A | I ) = (111 | 1) ,
Γεννήτρια:

 1 0 0 1
 
G = ( I | A t ) =  0 1 0 1 ,
 0 0 1 1
 
Ο πίνακας Α έχει διαστάσεις 1x3. Άρα k=3 και n-k=1, οπότε n=4. ∆ηλαδή η
διάσταση του κώδικα είναι k=3 ενώ το µήκος του n=4. Ο ρυθµός είναι R=k/n=3/4.
Ας βρούµε τον κώδικα µε τον πίνακα ελέγχου ισοτιµίας:

 x1   x1 
   
 x2   x2 
H ⋅   = O ⇔ (111 | 1) ⋅   = O ⇔ {x1 + x 2 + x3 + x 4 = 0}
x x
 3  3
x  x 
 4  4

Το τελευταίο συµβαίνει όταν τον πλήθος των xi είναι άρτιο, ουσιαστικά δηλαδή το 4ο

ψηφίο είναι το γνωστό bit ελέγχου ισοτιµίας. Έτσι προκύπτει ο κώδικας

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

148
Άσκηση 5.7
Θα δείξουµε ότι ο επαναληπτικός κώδικας µήκους n προκύπτει από τον (n-1)x1
πίνακα

1
 
1
A= 
M
 
1
 
Η διάσταση του γραµµικού κώδικα που προκύπτει από τον Α είναι k=1 ενώ το µήκος

είναι n. Έχουµε λοιπόν µόνο 2 = 2 κωδικές λέξεις. Ο πίνακας ελέγχου ισοτιµίας και η
k

γεννήτρια είναι αντίστοιχα

1 1 0 L 0
 
1 0 1 0
H = (A | I) =  και G = ( I | At ) = [1 | 1 1 L 1 ]
M M O 0
 
1 0 0 0 1 

Από την γεννήτρια προκύπτει

[ 0 ] ⋅ G = [ 0 ] ⋅ [1 | 1 1 L 1 ] = [ 0 0 0 L 0 ]
[1] ⋅ G = [1] ⋅ [1 | 1 1 L 1 ] = [1 1 1 L 1]
δηλαδή ο επαναληπτικός κώδικας µήκους n:

000 … 0
111 … 1

Άσκηση 5.8
Ο κώδικας Η(3) είναι block κώδικας µήκους 7, άρα ο αποκωδικοποιητής χωρίζει την
ακολουθία της λήψης σε 7άδες και ελέγχει κάθε 7άδα µε τον πίνακα ελέγχου:
1110100 1111111 1100100 0000000 1000101
Είναι

1 1
   
1 1
 1  0 0 0 1 1 1 1  1   1 
     
H  0  = 0 1 1 0 0 1 1  0  =  0  Σφάλµα στη θέση (101) 2 =5
 1  1 0 1 0 1 0 1  1   1 
      
 0 0
   
 0 0

149
1  1
   
1  1
1 0 0 0 1 1 1 1 1  0 
     
H 1 = 0 1 1 0 0 1 1 1 =  0  Σωστό
1 1 0 1 0 1 0 1 1  0 
      
1  1
   
1  1

1 1
   
1 1
 0  0 0 0 1 1 1 1  0   1 
     
H  0  = 0 1 1 0 0 1 1  0  =  1  Σφάλµα στη θέση (110) 2 =6
 1  1 0 1 0 1 0 1  1   0 
      
 0 0
   
 0 0

 0 0
   
 0 0
 0  0 0 0 1 1 1 1  0   0 
     
H  0  = 0 1 1 0 0 1 1  0  =  0  Σωστό
 0  1 0 1 0 1 0 1  0   0 
      
 0 0
   
 0 0

1 1
   
 0 0
 0  0 0 0 1 1 1 1  0   0 
     
H  0  = 0 1 1 0 0 1 1  0  =  1  Σφάλµα στη θέση (011) 2 =3
 1  1 0 1 0 1 0 1  1   1 
      
 0 0
   
1 1

Έτσι το µήνυµα αποκωδικοποιείται ως (σηµειώνονται µε τετράγωνο οι διορθώσεις)


1110000 1111111 1100110 0000000 1010101

150
Άσκηση 5.9
Ο πίνακας ελέγχου ισοτιµίας του κώδικα Η(4) περιέχει ως στήλες όλες τις δυνατές
τετράδες δυαδικών ψηφίων πλην της µηδενικής:

0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
 
0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
H =
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
 
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Η διάσταση του κώδικα είναι k = n − m = 15 − 4 = 11 , άρα περιέχει 2 k = 211 = 2048


κωδικές λέξεις. ∆ιορθώνει ένα σφάλµα (σε κάθε 15άδα δυαδικών ψηφίων).
Για τα τρία µηνύµατα
x = 000000000000000
y = 000011100001110
z = 001001001001001
έχουµε
0
 
0
H ⋅ x =   , άρα το πρώτο µήνυµα είναι σωστό και αποκωδικοποιείται ως έχει.
t

0
 
0
 

1
 
0
H ⋅ y t =   , άρα το δεύτερο µήνυµα έχει σφάλµα στη θέση (1011) 2 = 11 και
1
 
1
 
αποκωδικοποιείται ως:
000011100011110

1
 
1
H ⋅ z =   , άρα το τρίτο µήνυµα έχει σφάλµα στη θέση (1111) 2 = 15 και
t

1
 
1
 
αποκωδικοποιείται ως :
001001001001000

151
Άσκηση 5.10
Ο πίνακας ελέγχου ισοτιµίας σύµφωνα µε το παράδειγµα της σελίδα 87 είναι
0 1 1 1 1 1 1 1 1 1 1 11 
 
1 1 1 0 1 1 1 0 0 0 1 0 1 
1 1 0 1 1 1 0 0 0 1 0 1 1 
 
1 0 1 1 1 0 0 0 1 0 1 1 1 
1 1 1 1 0 0 0 1 0 1 1 0 1 
 
1 1 1 0 0 0 1 0 1 1 0 1 1 
H = [A | I] =  
1 1 0 0 0 1 0 1 1 0 1 1 1
 
1 0 0 0 1 0 1 1 0 1 1 1 1 
 
1 0 0 1 0 1 1 0 1 1 1 0 1 
1 0 1 0 1 1 0 1 1 1 0 0 1 
 
1 1 0 1 1 0 1 1 1 0 0 0 1 
1 0 1 1 0 1 1 1 0 0 0 1 1 

Αν θέσουµε
x = 000000 000000 000000 000000
y = 111111 111111 111111 111111
z = 111000 000000 000000 000000
αρκεί να ελέγξουµε τα γινόµενα H ⋅ x t , H ⋅ y t και H ⋅ z t .
Στο πρώτο γινόµενο προφανώς θα πάρουµε το µηδενικό διάνυσµα. Στο δεύτερο
γινόµενο ουσιαστικά προσθέτουµε όλα τα στοιχεία κάθε γραµµής του H (προσέξτε
ότι σε κάθε γραµµή του H έχουµε άρτιο αριθµό από 1, οπότε παίρνουµε παντού 0).
Στο τρίτο γινόµενο ουσιαστικά προσθέτουµε µόνο τα 3 πρώτα στοιχεία κάθε γραµµής:
0  0  0 
0  0  1 
     
0  0  0 
     
0  0  0 
0  0  1 
     
0 0 1
H ⋅ x =   = O
t
H ⋅ y =   = O
t
H ⋅ z =   ≠ O
t

0 0 0
     
0  0  1 
0  0  1 
     
0  0  0 
     
0  0  0 
 0   0   0 

Άρα µόνο στο τρίτο pixel ο αποκωδικοποιητής ανιχνεύει σφάλµα. Επειδή µάλιστα ο
κώδικας έχει ελάχιστη απόσταση 8 και διορθώνει µέχρι 3 σφάλµατα, ο
αποκωδικοποιητής θα διορθώσει το τρίτο pixel στην πιο κοντινή κωδική λέξη που είναι
000000 000000 000000 000000
(παίρνουµε δηλαδή ξανά το πρώτο pixel).

152
ΒΙΒΛΙΟΓΡΑΦΙΑ

[1] ∆.Π. Χρυσουλίδη, “Εισαγωγή στη Θεωρία Πληροφοριών”, Πολυτεχνική Σχολή


ΑΠΘ, 1991

[2] F.J. MacWilliams and N.J.A. Sloane, “The theory of Error Correcting Codes”.
Amsterdam: North-Holland, 7th impression, 1992

[3] C. Nikolaidis, “Binary Linear Codes with 2-transitive Automorphism Group and
Minimum Weight 4”, Doctoral Thesis, University of Oxford, 1995.

[4] S. Roman, “Coding and Information Theory”, Springer-Verlag, 1992

[5] K.S. Shanmugam, “Ψηφιακά και Αναλογικά Συστήµατα Επικοινωνίας”,


Μετάφραση, Εκδόσεις Πνευµατικού, 1979

[6] H. Taub and D.L. Schilling, “Τηλεπικοινωνιακά Συστήµατα”, ∆εύτερη Έκδοση


(Μετάφραση), Εκδόσεις Τζιόλα

[7] J.H. van Lint, “Introduction to Coding Theory”, New York: Springer-Verlag,
1982

153
154

You might also like