ΤΕΙ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΜΑΘΗΜΑ: ΔΟΡΥΦΟΡΙΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ (ΕΡΓΑΣΤΗΡΙΟ), 7 Ο ΕΞΑΜΗΝΟ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1 Έστω σύστημα δορυφορικής ζεύξης το οποίο υλοποιείται όπως στο Σχήμα 1. Σε κάθε χρονική στιγμή (επανάληψη της επαναληπτικής δομής της προσομοίωσης) εκπέμπεται από την πηγή ένα ψηφιακό πακέτο πληροφορίας διαστάσεων 1xK. Ο κωδικοποιητής καναλιού (BCH encoder) εισάγει πρόσθετα ψηφία στο πακέτο με σκοπό την προστασία του από τον θόρυβο του καναλιού, αυξάνοντας έτσι το μέγεθος του σε 1xN. Στην συνέχεια, η έξοδος του κωδικοποιητή καναλιού προωθείται στον διαμορφωτή. Ο διαμορφωτής ορθογώνιας QAM αναθέτει σε κάθε ένα από τα πακέτα μήκους Ν ένα από τα 2 Ν σύμβολα της ορθογώνιας QAM, σύμφωνα με το διάγραμμα αστερισμού (constellation diagram). Το σύμβολο αυτό μεταδίδεται στο ενθόρυβο κανάλι. Στην πλευρά του δέκτη, το λαμβανόμενο σύμβολο προωθείται στον αποδιαμορφωτή, όπου λαμβάνει χώρα η ακριβώς αντίθετη από τον διαμορφωτή διαδικασία, δηλ. το σύμβολο ανατίθεται σε μία ψηφιακή λέξη μήκους Ν, σύμφωνα με το διάγραμμα αστερισμού. Στην συνέχεια προωθείται στον αποκωδικοποιητή καναλιού (BCH decoder), ο οποίος διορθώνει έως int[(d min -1)/2] λάθη πακέτου, όπου η συνάρτηση int[] είναι η συνάρτηση ακέραιου μέρους και dmin είναι η ελάχιστη απόσταση Hamming του επιλεγμένου BCH κώδικα. Ο ρυθμός κωδικοποίησης καναλιού ορίζεται ως Channel_Coding_Rate = K/N. Στους κώδικες BCH υπάρχουν συγκεκριμένα αποδεκτά ζεύγη (Κ,Ν). Στο συγκεκριμένο παράδειγμα χρησιμοποιούμε Κ=4 και Ν=7, για τα οποία η ελάχιστη απόσταση Hamming είναι 3. Επομένως μπορεί να διορθωθεί ένα (1) λάθος ανά πακέτο τεσσάρων (4) ψηφίων. Στο Σχήμα 2 προβάλλεται το διάγραμμα αστερισμού της ορθογώνιας 128-QAM. Τα σύμβολα είναι τοποθετημένα συμμετρικά, 32 σε κάθε 1 από 4 τετράγωνα.
Ψηφιακή Πηγή Πληροφορίας Κωδικοποιητής Καναλιού (BCH) Διαμορφωτής Ορθογώνιας QAM Ενθόρυβο Κανάλι Ζεύξης Προορισμός (SINK) Αποκωδικοποιητής Καναλιού (BCH) Αποδιαμορφωτής Ορθογώνιας QAM Σχήμα 1. Σχηματικό Διάγραμμα δορυφορικής ζεύξης Σχήμα 2. Ορθογώνια 128 - QAM
Η πηγή πληροφορίας binary_info υλοποιείται με χρήση της συνάρτησης randi() του MATLAB. Σκοπός είναι η δημιουργία ψηφιακής ακολουθίας δεδομένων διαστάσεων 1x(Κ*number_of_frames). Εν γένει, η εντολή Υ = randi([a b], size1, size2) δημιουργεί πίνακα Υ διαστάσεων size1xsize2 με τυχαίους ακεραίους στο διάστημα [a,b]. Πριν περιγράφουν τα βήματα επεξεργασίας του Σχήματος 1, δίνονται: (α) η συνάρτηση hmodulator=comm.rectangularqammodulator(2^n), η οποία παράγει την συνάρτηση μεταφοράς hmodulator του διαμορφωτή ενός σχήματος ορθογώνιας διαμόρφωσης 2 Ν -QΑΜ. (β) η συνάρτηση hdemodulator=comm.rectangularqamdemodulator(2^n), η οποία παράγει την συνάρτηση μεταφοράς hdemodulator του αποδιαμορφωτή ενός σχήματος ορθογώνιας διαμόρφωσης 2 Ν QΑΜ. Πριν περιγραφούν τα βήματα επεξεργασίας του Σχήματος 1, το θορυβώδες κανάλι πρέπει να περιγραφεί. Το κανάλι είναι το Rician κανάλι, γνωστό ως το μαθηματικό μοντέλο που προσομοιώνει το κανάλι μίας δορυφορικής ζεύξης: CHAN = ricianchan(ts,fd,kfactor); Η συνάρτηση μεταφοράς του ενθόρυβου καναλιού CHAN δημιουργείται από την συνάρτηση ricianchan() με τα εξής ορίσματα: ΣΧΕΔΙΑΣΤΙΚΕΣ ΠΑΡΑΜΕΤΡΟΙ 'TS': sampling period (1e-4) 'KFactor': χαρακτηριστική σταθερά του Rician καναλιού (3) 'FD' :Μέγιστη μετατόπιση Doppler σε Hz (10) Σε αυτήν την εργαστηριακή άσκηση καλείστε να υλοποιήσετε τα εξής, τα οποία αποτελούν τα βήματα επεξεργασίας ενός πακέτου δεδομένων και άρα μία επανάληψη του επαναληπτικού βρόχου: (1) Επιλέγετε να μεταδώσετε το i-πακέτο από την πηγή πληροφορίας binary_info: X=binary_info((i-1)*K+1:i*K) i=1,2,, number_of_frames Το πακέτο Χ είναι ψηφιακό πακέτο διαστάσεων 1xK.
(2) Μετατροπή σε πακέτο μορφής Galois Field: Πριν εισαχθεί το πακέτο διαστάσεων 1xK στον κωδικοποιητή BCH, μετατρέπεται σε πίνακα μορφής Galois Field GF(2 m ), m=1. Για τον σκοπό αυτό θα χρησιμοποιήσετε την συνάρτηση Υ = gf(x,m), η οποία μετατρέπει τo 1xK ψηφιακό πακέτο (X) σε 1xK ψηφιακό πακέτο Y μορφής Galois Field GF(2 m ). (3) Στην συνέχεια υλοποιούμε τον BCH κωδικοποιητή με χρήση της συνάρτησης Υ=bchenc(Y,N,K), η οποία δέχεται ως ορίσματα το 1xK ψηφιακό πακέτο μορφής GF Y και τις παραμέτρους Ν,Κ. Η έξοδός της Y είναι το 1xN ψηφιακό πακέτο μορφής GF. (4) Με την βοήθεια της συνάρτησης Y = gf2dec(y,m), που θα βρείτε επίσης στα «Έγγραφα», το 1xN ψηφιακό πακέτο μορφής GF Y μετατρέπεται στο 1xN ψηφιακό πακέτο Υ (θυμηθείτε ότι πάντα m=1). (5) Στην συνέχεια με την βοήθεια της συνάρτησης Y=bi2de(Y,'left-msb'), το 1xN ψηφιακό πακέτο Υ μετατρέπεται στον αντίστοιχο δεκαδικό Υ, όπου το άκρως αριστερό ψηφίο είναι το MSB. (6) Ο διαμορφωτής υλοποιείται με την βοήθεια της εντολής mod_data=step(hmodulator,y), όπου Υ o υπολογισθείς ανωτέρω ακέραιος, hmodulator η συνάρτηση μεταφοράς του διαμορφωτή και mod_data είναι το σύμβολο που παράγει ο διαμορφωτής. Εν γένει, η συνάρτηση Υ=step(H,X) παράγει την έξοδο Υ ενός συστήματος με συνάρτηση μεταφοράς Η και είσοδο Χ. Η συνάρτηση αυτή θα χρησιμοποιηθεί επίσης για την υλοποίηση του αποδιαμορφωτή (βήμα 8). (7) Μετάδοση μέσα από το θορυβώδες κανάλι του συμβόλου mod_data και λήψη του λαμβανομένου, αλλοιωμένου, QAM συμβόλου demod_data: demod_data=filter(chan,mod_data) Η συνάρτηση output = filter(system,input) παράγει την έξοδο output ενός συστήματος με συνάρτηση μεταφοράς CHAN, όταν η είσοδος είναι input. (8) Εξαγωγή από τον QAM αποδιαμορφωτή με συνάρτηση μεταφοράς hdemodulator του ακεραίου received_dec, ο οποίος αντιστοιχεί στο λαμβανόμενο σύμβολο demod_data: received_dec = step(hdemodulator,demod_data) (9) Μετατροπή του δεκαδικού received_dec σε ψηφιακό πακέτο received_binary διαστάσεων 1xΝ, όπου το άκρως αριστερό ψηφίο είναι το MSB: received_binary = de2bi(received_dec,n,'left-msb')
Η έξοδος λοιπόν received_binary είναι ένα 1xΝ ψηφιακό πακετό, το οποίο είναι η αναπαραγωγή στον δέκτη της εξόδου του BCH κωδικοποιητή στον πομπό. (10) Στην συνέχεια μετατροπή σε 1xΝ ψηφιακό πακετό μορφής Galois, GF(2 m ), m=1: received_binary = gf(received_binary,m) (11) Στην συνέχεια το 1xΝ ψηφιακό πακετό μορφής Galois εισάγεται στον BCH αποκωδικοποιητή: Υ=bchdec(received_binary,N,K) Γίνεται διόρθωση λαθών και εξάγεται το 1xΚ ψηφιακό πακετό μορφής Galois Y (12) Τέλος μετατροπή του 1xΚ ψηφιακού πακέτου μορφής Galois Y σε 1xΚ ψηφιακό πακετό Y (m=1): Y=gf2dec(Y,m) Ο βρόχος θα επαναληφθεί number_of_frames φορές. Σε κάθε επανάληψη αποστέλλεται το πακέτο Χ του βήματος (1) και λαμβάνεται το πακέτο Υ του βήματος (12). Το σύνολο των πακέτων X συγκροτούν την συνολική ψηφιακή είσοδο binary_info και το σύνολο των πακέτων Y συγκροτούν την συνολική ψηφιακή έξοδο Xout. Η συνάρτηση [number,ber]=biterr(xout,binary_info) θα μας υπολογίσει τον αριθμό των εσφαλμένων ψηφίων (number) και τον ρυθμό μετάδοσης εσφαλμένων ψηφίων (BER). Ένας κρίσιμος ακόμη υπολογισμός είναι αυτός του σηματοθορυβικού λόγου του καναλιού Channel Signal to Noise Ratio (CSNR). Ο λόγος αυτός υπολογίζεται ως εξής: CSNR=10*log 10 (Mean_Power_Signal /Mean_Power_Noise) = 10*log 10 (Power_Signal_Total / Power_Noise_Total) όπου Power_Signal_Total είναι η συνολική ισχύς των προσομοιωμένων σημάτων και Power_Noise_Total η συνολική ισχύς του θορύβου. Προφανώς: Power_Signal_Total : άθροισμα όλων των ισχύων των μεταδιδόμενων σημάτων, δηλαδή άθροισμα των abs(mod_data)^2 [abs(mod_data):μέτρο του μιγαδικού mod_data] Power_Noise_Total : άθροισμα όλων των ισχύων θορύβου, δηλαδή άθροισμα των abs(mod_data-demod_data)^2 [abs(mod_data-demod_data):μέτρο του μιγαδικού mod_data-demod_data] Αφου υλοποιήσετε την συνάρτηση, θα την ονομάσετε satsystem.m και θα έχει την εξής επικεφαλίδα: function [BER,CSNR]= satsystem(n,k,number_of_frames);
Δηλαδή είσοδοι Ν(=7), Κ(=4), number_of_frames(=10.000) και έξοδοι BER και CSNR. Στην συνέχεια κάντε τα εξής: (1) Ορίστε τις εισόδους N,K,number_of_frames ως σταθερές μέσα στο πρόγραμμα και ίσες με τις αντίστοιχες δοθείσες τιμές (7,4,10.000) (2) Τροποποιήστε τον κώδικα, ώστε να δέχεται ως εισόδους-μεταβλητές 'TS', 'FD', 'KFactor'. (3) Μεταβάλλετε κάθε μία από τις 3 προαναφερθείσες μεταβλητές κρατώντας τις άλλες 3 σταθερές στις τιμές που αρχικά σας δόθηκαν. (4) Τι παρατηρείτε για τα μεγέθη BER και CSNR σε κάθε μία μεταβολή που πραγματοποιείτε; (5) Γράψτε τα σύντομα συμπεράσματα σας σε ένα έγγραφο Συμπερασματα.docx. Συμπίεστε το έγγραφο μάζι με το αρχείο κώδικα satsystem.m σε ένα αρχείο ASKISI1.zip.