12
(α) Το ελάχιστο απαιτούμενο μήκος για την αναπαράσταση για : τους 100 μαθητές βρίσκεται από τη δύναμη του 2 που είναι μεγαλύτερη του 100 αφού 2^7 = 128 άρα 7 δυαδικά ψηφία : τα 30 μαθήματα βρίσκεται πάλι με τη δύναμη του 2 που είναι μεγαλύτερη του 30 αφού 2^5 = 32 άρα 5 δυαδικά ψηφία Το πακέτο θα προκύψει από την μετατροπή του 33ου μαθητή και του 15ου μαθήματος σε δυαδικό συνδυασμένα πλάι πλάι [μαθητης]|[μάθημα]. Αν αρχίσουμε από 0000001 για πρώτο μαθητή και 00001 για πρώτο μάθημα για την μετατροπή του 33ο μαθητή έχουμε το εξής πηλίκο υπόλοιπο 33/2 16 1 16/2 8 0 8/2 4 0 4/2 2 0 2/2 1 0 1/2 0 1 ο δυαδικός προκύπτει αν θέσουμε τα υπόλοιπα ανάποδα δηλαδή το τελευταίο πρώτα (εδώ δεν έχει σημασία γιατί είναι ομοιόμορφο αλλά αλλού έχει σημασία): 100001 και προσθέτου το 0 διότι θέλουμε 7 ψηφία όπως προαναφέρθηκε.

diktya II crc hamming kai alla

Embed Size (px)

Citation preview

Page 1: diktya II crc hamming kai alla

(α)

Το ελάχιστο απαιτούμενο μήκος για την αναπαράσταση για

: τους 100 μαθητές βρίσκεται από τη δύναμη του 2 που είναι μεγαλύτερη του 100 αφού 2^7 = 128 άρα 7 δυαδικά ψηφία

: τα 30 μαθήματα βρίσκεται πάλι με τη δύναμη του 2 που είναι μεγαλύτερη του 30 αφού 2^5 = 32 άρα 5 δυαδικά ψηφία

Το πακέτο θα προκύψει από την μετατροπή του 33ου μαθητή και του 15ου μαθήματος σε δυαδικό συνδυασμένα πλάι πλάι [μαθητης]|[μάθημα].

Αν αρχίσουμε από 0000001 για πρώτο μαθητή και 00001 για πρώτο μάθημα για την μετατροπή του 33ο μαθητή έχουμε το εξής

πηλίκο υπόλοιπο

33/2 16 1

16/2 8 0

8/2 4 0

4/2 2 0

2/2 1 0

1/2 0 1

ο δυαδικός προκύπτει αν θέσουμε τα υπόλοιπα ανάποδα δηλαδή το τελευταίο πρώτα (εδώ δεν έχει σημασία γιατί είναι ομοιόμορφο αλλά αλλού έχει σημασία):

100001 και προσθέτου το 0 διότι θέλουμε 7 ψηφία όπως προαναφέρθηκε.

Page 2: diktya II crc hamming kai alla

άρα : 0100001 είναι ο 33ος φοιτητής

για το 15ο μάθημα τώρα :

πηλίκο υπόλοιπο

15/2 7 1

7/2 3 1

3/2 1 1

1/2 0 1

άρα 1111 και επειδή θέλουμε 5 ψηφία προσθέτουμε αριστερά ένα μηδενικό : 01111

το πακέτο γίνεται τελικώς:

33ος φοιτητής 15ο μάθημα

0100001 01111

(β)

για το πακέτο με CRC κάνουμε τα εξής διαιρούμε (διαίρεση XOR) το πακέτο που βρήκαμε προηγουμένως δια της γεννήτριας εκφρασμένη σε δυαδικό. Το υπόλοιπο που βρίσκουμε από αυτήν την διαίρεση το προσθέτουμε δεξιά του πακέτου που βρήκαμε στο ερώτημα (α).

η γεννήτρια χ^3 + 1 εκφρασμένη στο δυαδικό είναι 1001 διότι

Page 3: diktya II crc hamming kai alla

1001 = 2^3επί (1) + 2^2 επί (0) + 2^1 επί (0) + 2^0 επί (1)

άρα έχουμε διαίρεση ως εξής

___________0 1001 010000101111 (στην ουσία θα χωρίσουμε σε 4αδες το πακέτο) 0000 (ξεκινώντας από την πρώτη (0100) βλέπουμε ότι το πρώτο αριστερά είναι 0 άρα βάζουμε 0 στο πηλίκο και πολλαπλασιάζουμε με τον διαιρέτη, αν ήταν 1 βάζουμε 1.

μετά κάνουμε XOR των 2 τετράδων και κατεβάζουμε κάτω τα νούμερα πλην της πρώτης δυάδας η νέα τετράδα που προκύπτει συμπληρώνεται με το αμέσως επόμενο νούμερο του διαιρετέου (εδώ 0 με πράσινο). XOR σημαίνει ότι όπου υπάρχει διαφορετική δυάδα 0 και 1 = 1 και όπου ίδια δυάδα 0-0 και 1-1 παίρνουμε 0.

Άρα ____________0_____ 1001 010000101111 0000 __________ 1000 (με κόκκινο το μηδέν που “κατεβαίνει” )

το αριστερό ψηφίο στο 1000 (νέα τετράδα) είναι το 1 άρα προσθέτω 1 στο πηλίκο και πολλαπλασιάζω εκ νέου.

____________01____1001 010000101111 0000 ______ 1000 1001 _____

0010 “κατεβαίνει” το επόμενο ψηφίο του διαιρετέου δηλαδή ένα δεύτερο 0

συνεχίζουμε μέχρι τέλους ώστε να μείνει κανένα νούμερο στο διαιρετέο που να μην έχει χρησιμοποιηθεί ως εξής :

Page 4: diktya II crc hamming kai alla

δίνει υπόλοιπο 0 (χωρίς να είμαι σίγουρος για το τι γίνεται όταν βρίσκουμε υπόλοιπο 0 , υ-π-ο-θ- έ-τ-ω ότι απλώς προσθέτουμε ένα μηδενικό δεξιά ) το πακέτο απλώς διαμορφώνεται με την προσθήκη δεξιά/τέλος στο αρχικό πακέτο (τον διαιρετέο) του υπολοίπου άρα εδώ έχουμε :

010000101111 0

Page 5: diktya II crc hamming kai alla

(γ)

Αυτόματη διόρθωση Λαθών: Hamming (Δημιουργία Πακέτου)

Θα δούμε την τεχνική αυτόματης διόρθωσης λαθών κατά Hamming, μέσα από ένα παράδειγμα, αφού δώσουμε κάποιες εισαγωγικές έννοιες.

Το επίπεδο δικτύου (Network Level) προσθέτει κάποια bits ελέγχου λαθών στα πακέτα πηροφορίας. Έτσι, στο πακέτο που προκύπτει, τα bits μπορούν να είναι είτε Data Bits (πληροφορίας) είτε Control Bits ( Ελέγχου).

Κάθε Data Bit ελέγχεται από ένα σύνολο bits ελέγχου.Κάθε bit ελέγχου θα ελέγχει ένα σύνολο από Data Bits.

Ας δούμε ένα παράδειγμα, για τον τρόπο δημιουργίας του επεκτεταμένου πακέτου, σε βήματα.

Έστω το πακέτο: 100001011110

Βήμα 1.

Δημιουργούμε ένα νέο, μεγαλύτερο πακέτο, του οποίου το μέγεθος ποικίλλει ανάλογα με τον αριθμό bits του αρχικού πακέτου. Κάποιος τύπος για τον υπολογισμό bits του νέου πακέτου δεν υπάρχει ( ή τουλάχιστον, εγώ δεν τον ξέρω και δεν τον βρήκα πουθενά), αλλά μπορούμε να το δημιουργήσουμε εμπειρικά. Αν κάποιες θέσεις περισσέψουν, απλά τις διαγράφουμε, ενώ αν μας λείπουν θα τις δημιουργήσουμε. Στο νέο πακέτο, οι θέσεις που αντιστοιχούν σε δυνάμεις του 2, θα μείνουν (για αρχή) κενές. Στις υπόλοιπες, θα εισαχθούν τα bits του αρχικού πακέτου, με τη σειρά που δίνονται.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

- - 1 - 0 0 0 - 0 1 0 1 1 1 1 - 0

Page 6: diktya II crc hamming kai alla

C1 C2 D1 C3 D2 D3 D4 C4 D5 D6 D7 D8 D9 D10 D11 C5 D12

Η πρώτη σειρά του πίνακα δείχνει τις θέσεις του νέου πακέτου, το οποίο όπως βλέπουμε θα αποτελείται από 17 bits.Στη δεύτερη σειρά, δημιουργήσαμε το (ατελές προς το παρόν) πακέτο μας με τον εξής τρόπο: Αφήσαμε τις θέσεις που αντιστοιχούν στις δυνάμεις του 2 (1, 2, 4, 8) κενές. Οι θέσεις αυτές αντιστοιχούν στα bits ελέγχου (C1, C2, C3, C4). Στις υπόλοιπες θέσεις, βάλαμε τα bits του αρχικού πακέτου. (100001011110) ---> (D1, D2, D3, D4, D5, D6, D7,D8,D9,D10,D11,D12)

Βήμα 2.

Θα δούμε τώρα, πώς γίνεται η εισαγωγή των bits ελέγχου (στις κενές θέσεις του πακέτου).Δημιουργούμε τον παρακάτω πίνακα:

D / C 1 2 4 8 1635679

10111213141517

Η πρώτη γραμμή, αντιστοιχεί στις θέσεις των Control Bits, δηλαδή στις δυνάμεις του 2 (1, 2, 4, 8,16).Η πρώτη στήλη, αντιστοιχεί στις θέσεις των Data Bits, δηλαδή 3, 5, 6, 7, 9, 10, 11,12,13,14,15,17 όπως φαίνεται και από τον πίνακα του Βήματος 1.Άρα, για τον πίνακα, καθολικά, ισχύουν: α. Οι γραμμές αντιστοιχούν στα Data Bits. β. Οι στήλες αντιστοιχούν στα Control Bits.

Βήμα 3.

Κάθε Data Bit μπορεί να γραφτεί σαν άθροισμα δυνάμεων του 2. Για παράδειγμα: 3 = 20 + 21 = 1 + 2Έτσι, πάμε στον πίνακα του βήματος 2, και σημειώνουμε εκείνα τα κελιά, των οποίων οι στήλες δίνουν το άθροισμα των γραμμών.Έχουμε: 3 = 1+25 = 1+46 = 2+47 = 1+2+4

Page 7: diktya II crc hamming kai alla

9 = 1+810 = 2+811 = 1+2+812= 4+813= 1 +4+814= 2+4+815= 1+2+4+817= 1+16

Και ο πίνακας που προκύπτει είναι:

D / C 1 2 4 8 163 (1) + +5 (0) + +6 (0) + +7 (0) + + +9 (0) + +10 (1) + +11 (0) + + +12 (1) + +13 (1) + + +14 (1) + + +15 (1) + + + +17 (0) + +

Η σημασία του πίνακα:

Το Control Bit της θέσης 8, ελέγχει τα Data Bits των θέσεων 9, 10 και 11. Το Data Bit 3, ελέγχεται από τα Control Bits 1 και 2. Κατά αντιστοιχία, μπορούμε να δούμε τί συμβαίνει και με τα υπόλοιπα Control και Data Bits.

Δίπλα από τον κάθε αριθμό των Data Bits, αντιστοιχήσαμε και το Bit της αρχικής ακολουθίας για λόγους ευκολίας, στο επόμενο βήμα.

Βήμα 4

Στο βήμα αυτό, θα δούμε πώς “γεμίζουμε” τις κενές θέσεις του πακέτου μας ( Πίνακας στο Βήμα 1).Έστω ότι μας ζητείται Άρτια Ισοτιμία Άσσων

Πάμε στον πίνακα του Βήματος 3 και βλέπουμε ότι:

Το Control Bit της θέσης 1, ελέγχει τα Data Bits: 3, 5, 7, 9, 11,13,15,17 που αντιστοιχούν στα bits: 1, 0, 0, 0, 0, 1, 1, 0. Οι άσσοι που ελέγχονται από το C1 είναι 3 (στις θέσεις 3 , 13 και 17). Άρα η ισοτιμία είναι περιττή. Για να την κάνουμε άρτια, θα πρέπει να προσθέσουμε άλλον έναν άσσο, που σημαίνει ότι στη θέση C1 του πακέτου θα βάλουμε “1” (διατήρηση άρτιας ισοτιμίας).

Page 8: diktya II crc hamming kai alla

Το Bit ελέγχου της θέσης 2 (C2) ελέγχει τα Data Bits των θέσεων: 3, 6, 7, 10, 11,14,15, που αντιστοιχούν στα bits 1,0,0,1,0,1,1. Η ισοτιμία των άσσων είναι άρτια (4 άσσοι), άρα στη θέση του C2 βάζουμε “0”.

Το Control Bit της θέσης 4 (C3) ελέγχει τα Data Bits των θέσεων: 5, 6, 7,12,13,14,15 που αντιστοιχούν στα bits 0, 0, 0,1,1,1,1. Η ισοτιμία των άσσων είναι άρτια (4 άσσοι), άρα στη θέση του C3 βάζουμε “0”.

Το Control Bit της θέσης 8 (C4) ελέγχει τα Data Bits των θέσεων 9, 10, 11 ,12,13,14,15 που αντιστοιχούν στα bits 0, 1, 0,1,1,1,1. Η ισοτιμία άσσων είναι περιττή (5 άσσοι) άρα προσθέτουμε “1” στη θέση του C4 .

Το Control Bit της θέσης 16 (C5) ελέγχει τα Data Bits της θέσης 16 που αντιστοιχεί στο bit 0. Η ισοτιμία άσσων είναι άρτια (λαμβάνουμε ως άρτιο το μηδέν) άρα προσθέτουμε “0” στη θέση του C5 .

Ο πίνακας που προκύπτει είναι:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

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

C1 C2 D1 C3 D2 D3 D4 C4 D5 D6 D7 D8 D9 D10 D11 C5 D12

και το πακέτο που προκύπτει μετά την προσθήκη των Control Bits είναι το:

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

101 000 010 101 111 00 Σημείωση: Αν μας ζητούνταν Περιττή Ισοτιμία Άσσων, θα κάναμε το αντίστοιχο, αλλά θα κοιτάγαμε το πλήθος των άσσων να είναι περιττό. Έτσι, για παράδειγμα, Στο C1 θα βάζαμε “0”, ενώ στο C3 “1” για να διατηρηθεί η περιττή ισοτιμία.

Page 9: diktya II crc hamming kai alla

(δ)

Χωρίζουμε το σήμα • ανά 2 ψηφία για το QPSK• ανά 3 ψηφία για το 8PSK• ανά 4 ψηφία για το 16-QAM

και για κάθε δυάδα / τριάδα ή τετράδα bits του σήματος θα έχουμε ένα σύμβολο (π.χ. 3π/4 , π/2 κ.α.)

ξεκινάμε στον οριζόντιο άξονα και πάμε αριστερόστροφα για να προσθέσουμε 00 στο π/4 01 στο 3π/4 10 στο 5π/4 και 7π/4 . Για διευκόλυνση τα δυαδικά ψηφία αυξάνουμε 00<01<10<11

Page 10: diktya II crc hamming kai alla

και χωρίζουμε το σήμα που έχουμε βρει ανά δυάδες ξεκινώντας από αριστερά

και κάνουμε την αντιστοίχηση των δυαδικών σε π όπου π.χ. 00 βάζουμε π/4 κοκ

10 10 00 01 01 01 11 10 0...

5π/4 5π/4 π/4 3π/4 3π/4 3π/4 7π/4 5π/4

π/4 ή 3π4

/ \ π/4 3π/4

(συνήθως προστίθεται/pading το

0 άρα π/4)

8PSK

101 000 010 101 111 00...

5π/4 0 π/2 5π/4 7π/4 0 (με προσθήκη 0

ειδάλλως π/4)

16-QAM

Page 11: diktya II crc hamming kai alla

1010 0001 0101 1110 0 ....

Α3 5π/4 Α2 π/4 Α2 3π/4 Α3 7π/4 Α1 π/4 (με padding 3 μηδενικών)

Page 12: diktya II crc hamming kai alla

πηγές:http://dtps.unipi.gr/forum/index.php?act=Attach&type=post&id=121536http://dtps.unipi.gr/forum/index.php?act=Attach&type=post&id=121538http://dtps.unipi.gr/forum/index.php?act=Attach&type=post&id=120811http://dtps.unipi.gr/forum/index.php?act=Attach&type=post&id=82621

thanks σε maria_dtps,kouzel,marilena,