Upload
chinaski
View
1.195
Download
2
Embed Size (px)
Citation preview
(α)
Το ελάχιστο απαιτούμενο μήκος για την αναπαράσταση για
: τους 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 ψηφία όπως προαναφέρθηκε.
άρα : 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 διότι
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
συνεχίζουμε μέχρι τέλους ώστε να μείνει κανένα νούμερο στο διαιρετέο που να μην έχει χρησιμοποιηθεί ως εξής :
δίνει υπόλοιπο 0 (χωρίς να είμαι σίγουρος για το τι γίνεται όταν βρίσκουμε υπόλοιπο 0 , υ-π-ο-θ- έ-τ-ω ότι απλώς προσθέτουμε ένα μηδενικό δεξιά ) το πακέτο απλώς διαμορφώνεται με την προσθήκη δεξιά/τέλος στο αρχικό πακέτο (τον διαιρετέο) του υπολοίπου άρα εδώ έχουμε :
010000101111 0
(γ)
Αυτόματη διόρθωση Λαθών: 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
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
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” (διατήρηση άρτιας ισοτιμίας).
Το 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” για να διατηρηθεί η περιττή ισοτιμία.
(δ)
Χωρίζουμε το σήμα • ανά 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
και χωρίζουμε το σήμα που έχουμε βρει ανά δυάδες ξεκινώντας από αριστερά
και κάνουμε την αντιστοίχηση των δυαδικών σε π όπου π.χ. 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
1010 0001 0101 1110 0 ....
Α3 5π/4 Α2 π/4 Α2 3π/4 Α3 7π/4 Α1 π/4 (με padding 3 μηδενικών)
πηγές: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,