Professional Documents
Culture Documents
Arxes D
Arxes D
ΤΩΝ ΑΣΚΗΣΕΩΝ
105
106
Λύσεις Κεφαλαίου 1
Άσκηση 1.1
Οι δύο κωδικοποιήσεις είναι
Με την πρώτη κωδικοποίηση κάθε µήνυµα διαρκεί 10 λεπτά, άρα στη διάρκεια µιας
χρονιάς:
1η: 365 x 10 λεπτά = 3650 λεπτά.
Κατά µέσο όρο ένα µήνυµα στην πρώτη κωδικοποίηση διαρκεί 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
Η κωδικοποίηση, η αλλοίωση και η αποκωδικοποίηση της λήψης είναι
Παρατηρούµε ότι ακόµη και µε την µετατροπή ενός 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
Άσκηση 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
Μέγιστη εντροπία θα είχαµε αν τα τέσσερα σύµβολα ήταν ισοπίθανα, δηλαδή µε
Άσκηση 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
Μέγιστη εντροπία θα είχαµε αν τα τρία σύµβολα ήταν ισοπίθανα, δηλαδή µε
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
γ) Μέγιστη εντροπία θα είχαµε αν τα τέσσερα σύµβολα ήταν ισοπίθανα, δηλαδή µε
Άσκηση 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
α) Έχουµε
111
β) Έχουµε
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.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/σύµβολο
Άσκηση 2.8
1 3 3 9 3 9 9 27
64 64 64 64 64 64 64 64
112
Η Εντροπία της επέκτασης είναι
Άσκηση 2.9
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
Άσκηση 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
β) Μέγιστη εντροπία θα είχαµε αν τα τέσσερα σύµβολα ήταν ισοπίθανα, δηλαδή µε
εντροπία γίνεται 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
Άσκηση 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
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 01 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 )
β) Είναι
Άσκηση 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 και
Με το ίδιο σκεπτικό, όλες οι πιθανότητες της µορφής p(a / b) είναι είτε 0 είτε 1.
Άσκηση 3.8
α) Το διάγραµµα του καναλιού είναι
a1 1
b1
1
a2
a3 1
b2
1
a4
Άσκηση 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 )
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/σύµβολο
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.
Είτε 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( p ) + h(0.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
= log 2 m + H ( A)
123
Συνεπώς, η διαπληροφορία είναι
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/σύµβολο
∆ 0,4 00 Α 01
Α 0,15 01 Β 10
Β 0,15 10 δηλαδή Γ 110
Γ 0,15 110 ∆ 00
Ε 0,15 111 Ε 111
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
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
αποτελείται κυρίως από συχνά σύµβολα (δηλαδή µε µεγάλη πιθανότητα)
ε) Την µέγιστη εντροπία θα την είχαµε αν τα οκτώ σύµβολα ήταν ισοπίθανα. Αυτή θα
ήταν Η=log28=3 bits/σύµβολο. Άρα η εντροπία της πηγής Α είναι µικρότερη από
3bits/σύµβολο
Άσκηση 4.4
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
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 + 18 + 18 + 18 + 24 + 6 + 6 + 6 + 6 138
= = = 2.156 bits/διπλό σύµβ
64 64
δηλαδή η απόδοση είναι 1.078 bits/σύµβολο
128
ε) Το µήνυµα κωδικοποιείται ως εξής:
Άσκηση 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
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
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.6
Είναι p(A)= 9 και p(M)= 1 .
10 10
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
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
∆ Γ Ε Α Β
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
Βήµα 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:
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
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
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
Βήµα 1:
27/64 9/64 9/64 9/64 3/64 3/64 3/64 1/64
Βήµα 2:
27/64 9/64 9/64 9/64 4/64 3/64 3/64
bba bbb
Βήµα 3:
27/64 9/64 9/64 9/64 6/64 4/64
Βήµα 4:
27/64 10/64 9/64 9/64 9/64
140
Βήµα 5:
27/64 18/64 10/64 9/64
aaa aab
aba baa
Βήµα 6:
27/64 19/64 18/64
aaa
Βήµα 7:
37/64 27/64
aaa
141
Βήµα 8:
aaa
Αν συγκρίνουµε τους τρεις κώδικες 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. ∆είχνουµε στον παρακάτω
πίνακα όλες τις δυνατές λήψεις και τις αντίστοιχες αποκωδικοποιήσεις.
143
β) Το µήνυµα Α θα αποκωδικοποιηθεί σωστά µόνο στην πρώτη περίπτωση πιο πάνω
δηλαδή µόνο αν µεταδοθούν σωστά και τα δύο δυαδικά ψηφία. Άρα η πιθανότητα
ορθής µετάδοσης του µηνύµατος Α είναι (0.99)(0.99)=0.98, συνεπώς η πιθανότητα
σφάλµατος είναι 0.02=2%.
144
πιθανότητα για κανένα σφάλµα: (0.99) 6
Από τις περιπτώσεις του πίνακα όπου έχουµε ορθή αποκωδικοποίηση προκύπτει ότι η
πιθανότητα ορθής µετάδοσης είναι
Άσκηση 5.3
Όχι, δεν είναι κατάλληλος σε περιβάλλον µε θόρυβο διότι δεν είναι σε θέση να
διορθώσει ούτε ένα σφάλµα. Οι κωδικές λέξεις είναι πολύ «κοντά» µεταξύ τους και
δεν υπάρχει περιθώριο για διόρθωση. Για παράδειγµα, αν σταλεί το µήνυµα 000000
και συµβεί λάθος στο τελευταίο ψηφίο, τα λαµβανόµενο µήνυµα 000001 θα εκληφθεί
ως σωστό από το δέκτη (εφόσον υπάρχει τέτοια κωδική λέξη).
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 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
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
Άσκηση 5.5
Ο πίνακας Α έχει διαστάσεις 3x2. Άρα k=2 και n-k=3, οπότε n=5. ∆ηλαδή η
διάσταση του κώδικα είναι k=2 ενώ το µήκος του n=5. Ο ρυθµός είναι R=k/n=2/5.
Ας βρούµε τον κώδικα:
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
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ο
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
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
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
ΒΙΒΛΙΟΓΡΑΦΙΑ
[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.
[7] J.H. van Lint, “Introduction to Coding Theory”, New York: Springer-Verlag,
1982
153
154