RPPXQLFDWLRQV QXPpULTXHV 'HYRLU 6HVVLRQ...

6
1 GEL 4200 & GEL 7014 Communications numériques Devoir 2 : Session d’hiver 2018 BERTool & Modulation M-QAM, M-PSK EVM vs. BER Filtre RRC Σ Données Bruit AWG MATLAB Oscilloscope à temps réel (RTO) Analyseur de spectre (ESA) VSA agilent Filtre RRC Il y a trois parties au devoir. I. Cette partie utilise BERTool pour facilement afficher les courbes de BER pour plusieurs modulations. Vous allez calculer la perte par rapport au QPSK pour ces modulations et valider que les graphiques donnent la même perte que la perte fournie par les calculs. II. Cette partie utilise le logiciel VSA d’Agilent pour estimer le SNR, et à partir de l’estimé du SNR, en suite estimer le BER. Le signal est généré en Matlab par le fichier devoir2.m fourni. Matlab fournit aussi des calculs sur l’estimation du SNR, pour vous aider à vérifier vos résultats en utilisant le logiciel VSA. III. Cette partie utilise Matlab et BERTool pour faire rouler une simulation Monte Carlo en Matlab.

Transcript of RPPXQLFDWLRQV QXPpULTXHV 'HYRLU 6HVVLRQ...

Page 1: RPPXQLFDWLRQV QXPpULTXHV 'HYRLU 6HVVLRQ G¶KLYHUwcours.gel.ulaval.ca/2018/h/GEL4200/default/6travaux/... · 2018. 2. 25. · ä 9rlfl oh frgh 0dwode srxu od vlpxodwlrq gh 4$0 hw 36.

1

GEL 4200 & GEL 7014 Communications numériques

Devoir 2 : Session d’hiver 2018

BERTool & Modulation M-QAM, M-PSK EVM vs. BER

Filtre RRCΣ Données

Bruit AWGMATLAB

Oscilloscopeà temps

réel (RTO)

Analyseur de spectre (ESA)

VSA agilent

Filtre RRC

Il y a trois parties au devoir.

I. Cette partie utilise BERTool pour facilement afficher les courbes de BER pour plusieurs modulations. Vous allez calculer la perte par rapport au QPSK pour ces modulations et valider que les graphiques donnent la même perte que la perte fournie par les calculs.

II. Cette partie utilise le logiciel VSA d’Agilent pour estimer le SNR, et à partir de l’estimé du SNR, en suite estimer le BER. Le signal est généré en Matlab par le fichier devoir2.m fourni. Matlab fournit aussi des calculs sur l’estimation du SNR, pour vous aider à vérifier vos résultats en utilisant le logiciel VSA.

III. Cette partie utilise Matlab et BERTool pour faire rouler une simulation Monte Carlo en Matlab.

Page 2: RPPXQLFDWLRQV QXPpULTXHV 'HYRLU 6HVVLRQ G¶KLYHUwcours.gel.ulaval.ca/2018/h/GEL4200/default/6travaux/... · 2018. 2. 25. · ä 9rlfl oh frgh 0dwode srxu od vlpxodwlrq gh 4$0 hw 36.

2

I. BERTool dans Matlab

1. Ouvrir l’outil « BERTool ». Quels sont les paramètres suivants par défaut : a. Quel est le type du canal? b. Quels sont le type et l’ordre de la modulation? c. Quel est le niveau de Eb/N0 considéré? d. Y a-t-il un codage canal?

2. Comparaison de BER pour plusieurs types de modulation.

a. En utilisant BERTool, tracer les courbes théoriques pour les modulations suivantes : QPSK, 4FSK, BFSK (non cohérente), 8FSK (cohérente) et 16QAM.

b. Vérifier les équations analytiques de pertes par rapport à QPSK avec les courbes affichées.

Tableau 1 : Perte de différentes modulations comparées à QPSK

Mod perte p/r QPSK (équation théorique)

perte p/r QPSK (en dB, en théorie)

perte p/r QPSK (en dB, graphique

BERTool)

QPSK

BFSK (noncoh)

8FSK (cohérente)

8PSK

16QAM

Page 3: RPPXQLFDWLRQV QXPpULTXHV 'HYRLU 6HVVLRQ G¶KLYHUwcours.gel.ulaval.ca/2018/h/GEL4200/default/6travaux/... · 2018. 2. 25. · ä 9rlfl oh frgh 0dwode srxu od vlpxodwlrq gh 4$0 hw 36.

3

II. VSA par Agilent

3. Investigation des constellations et EVM et SNR a) En utilisant devoir2.m en MATLAB, générer des séquences de signaux 8PSK et

16QAM avec des impulsions RRC r = 0.35. Utiliser un «seed» unique (par étudiant), mais répéter ce « seed » pour chaque simulation MATLAB pour devoir 2!

b) Complétez les tableaux 2 à 5 en prenant les mesures appropriées pour 8PSK et 16QAM.

c) Remettre un seul fichier PDF avec : a. les tableaux b. les graphiques (pour SNR = 10 et SNR = 20 dB)

i. La constellation normalisée et celle de référence. ii. Le spectre avec une identification de la largeur de bande contenant

90% de la puissance. c. Une discussion des résultats

i. Une analyse des constellations (référence & mesuré) en fonction du SNR. Que notez-vous de particulier en comparant le symbole le plus bruité de chacun des cas? Pourquoi est-ce ainsi?

ii. Comment les paramètres EVM et BER sont-ils une indication de la performance d’un système?

iii. Comment les paramètres EVM et BER se distinguent-ils les uns par rapport aux autres dans l’estimation de la performance d’un système?

iv. Une comparaison de BER théorique et de BER estimé avec EVM. v. Dans quel cas l’EVM est une mauvaise estimation pour prédire le

BER. Pourquoi est-ce ainsi? (Indice : Vous devez savoir comment VSA calcule l’EVM.)

vi. Comparer la largeur de bande théorique et celle que vous obtenez. Faites une également une comparaison de l’efficacité. Vous devez aussi commenter et expliquer ce que vous obtenez.

PROCÉDURE : À l’aide du logiciel VSA, charger le fichier SetupDev2.setx dans file => recall

=> recall setup. Ouvrez la fenêtre MeasSetup => Digital Demod Properties. Choisissez l’onglet Format et sélectionnez la modulation appropriée (8PSK ou

16QAM). Dans l’onglet Filter, utilisez un filtre de mesure RRC et un filtre de référence

RC. À l’aide du fichier Devoir2.m, générez les signaux demandés en modifiant le

SNR. Pour cet exercice, prenez toujours un codage de gray ; le programme sort un fichier texte contenant le signal.

À l’aide de VSA, aller dans file => recall => recall recording et sélectionnez le fichier texte contenant le signal généré en Matlab.

Afin d’avoir une trace stable, retourner dans la fenêtre MeasSetup => Digital Demod Properties. Dans l’onglet format, utiliser une valeur maximale dans l’option Result length.

Vous aurez également à changer le nombre de points par symbole à 20.

Page 4: RPPXQLFDWLRQV QXPpULTXHV 'HYRLU 6HVVLRQ G¶KLYHUwcours.gel.ulaval.ca/2018/h/GEL4200/default/6travaux/... · 2018. 2. 25. · ä 9rlfl oh frgh 0dwode srxu od vlpxodwlrq gh 4$0 hw 36.

4

Tableau 2 : Qualité du signal 8PSK en fonction SNR SNR (dB)

Matlab

Eb/N0 (dB)

Matlab

EVMVSA

%rms SNRVSA

(MER) (dB) BEREVM BERThéo

30 20 10

Tableau 3 : BW et efficacité spectrale 8PSK

8PSK SNR (dB)

Matlab BWThéo

BWVSA

(90%) ηVSA ηthéo

30 20 10

Tableau 4 : Qualité du signal 16QAM en fonction SNR

SNR (dB)

Matlab

Eb/N0 (dB)

Matlab

EVM %rms VSA

SNR(MER) (dB) VSA

BERVSA

BERThéo

30 20 10

Tableau 5 : BW et efficacité spectrale 16QAM

16QAM SNR (dB)

Matlab BWThéo

BWVSA

(90%) ηVSA ηthéo

30 20 10

( )theo MATLABBER BER SNR ; 0

bMATLAB theo

ESNR

N

( )VSABER BER SNR MER ; 0

( ) btheo

ESNR MER

N vs.

0

( ) bVSA

ESNR MER

N

/VSA VSAR BW

Page 5: RPPXQLFDWLRQV QXPpULTXHV 'HYRLU 6HVVLRQ G¶KLYHUwcours.gel.ulaval.ca/2018/h/GEL4200/default/6travaux/... · 2018. 2. 25. · ä 9rlfl oh frgh 0dwode srxu od vlpxodwlrq gh 4$0 hw 36.

5

III. Matlab pour simulation Monte Carlo 4. Voici le code Matlab pour la simulation de 16QAM et 8PSK EbNo=15;n = 10000; M = 16;

hMod = comm.RectangularQAMModulator(M); hDemod = comm.RectangularQAMDemodulator(M); hChan = comm.AWGNChannel('NoiseMethod', 'Signal to noise ratio (SNR)'); hErrorCalc = comm.ErrorRate; snr = EbNo+10*log10(log2(M)); % Because of nonbinary modulation hChan.SNR = snr; %Assign Channel SNR msg = randi([0,M-1], n, 1); % Generate message sequence. txsig = step(hMod, msg); % Modulate. hChan.SignalPower = (txsig'*txsig)/length(txsig); rxsig = step(hChan,txsig); % Add noise. decodmsg = step(hDemod, rxsig); % Demodulate. serVec = step(hErrorCalc, msg, decodmsg); % Symbol error rate ber=serVec(1)/log2(M); numErrors=serVec(2)

a. Pour 16QAM, EbNo=14 dB, affichez un « scatterplot » du signal reçu (rxsig)

pour 10000 symboles. b. Pour 16QAM, EbNo=14 dB, générez n symboles et compter les erreurs à la

réception (simulation Monte Carlo). Compléter la table suivante et discuter l’impact du nombre d’erreurs sur la qualité de l’estimation de BER.

n # erreurs BER Monte Carlo BER exact

1,000 10,000 100,000

1,000,000

c. Utiliser BERTool pour générer et tracer une courbe de simulation Monte Carlo de 16QAM pour EbNo de 0 à 14 dB par saut de 0.5 dB. Afficher la courbe théorique avec la simulation Monte Carlo. Est-ce que les courbes de la simulation et de la théorie sont pareilles ?

d. Utiliser BERTool pour générer et tracer une courbe de simulation Monte Carlo de 8PSK pour EbNo de 0 à 14 dB par saut de 0.5 dB. Afficher la courbe théorique avec la simulation Monte Carlo. Est-ce que les courbes de la simulation et de la théorie sont pareilles ?

e. Ajouter le SER dans les graphiques de partie c. et de partie d. Discuter la différence entre le SER et le BER. Est-ce que la simulation a vraiment calculé le BER?

Pour rendre une fonction utilisable par BERtool, il faut exploiter le gabarit fourni avec Matlab. Modifier le gabarit pour simuler l’impulsion rectangulaire. Faire attention à la différence entre SNR et Eb/N0 et faire attention de tenir compte de la normalisation en fonction du nombre d’échantillons par symbole. Pour la simulation MC, on va considérer les paramètres suivants : un nombre maximal d’erreur=100 et nombre de bits=107.

function [ber, numBits] = BERTooltemplate(EbNo, maxNumErrs, maxNumBits) % Import Java class for BERTool. import com.mathworks.toolbox.comm.BERTool; % Initialize variables related to exit criteria. serVec = zeros(3,1); % Updated BER values

Page 6: RPPXQLFDWLRQV QXPpULTXHV 'HYRLU 6HVVLRQ G¶KLYHUwcours.gel.ulaval.ca/2018/h/GEL4200/default/6travaux/... · 2018. 2. 25. · ä 9rlfl oh frgh 0dwode srxu od vlpxodwlrq gh 4$0 hw 36.

6

% --- Set up parameters. --- % --- INSERT YOUR CODE HERE. % Simulate until number of errors exceeds maxNumErrs % or number of bits processed exceeds maxNumBits. while((serVec(2) < maxNumErrs) && (serVec(3) < maxNumBits)) % Check if the user clicked the Stop button of BERTool. if (BERTool.getSimulationStop) break; end % --- Proceed with simulation. % --- Be sure to update totErr and numBits. % --- INSERT YOUR CODE HERE. end % End of loop % Assign values to the output variables. ber = serVec(1)/log2(M); numBits = serVec(3);