TP Découverte des modulations numériques
Les modulations numériques avec 8 programmes python et 50 questions
A- De la sinusoïde aux paramètres I, Q : [Link]
Ouvrir et lancer le programme python « [Link] ».
Ce programme permet d’analyser une sinusoïde de fréquence fp, d’amplitude A et de phase à l’origine φ. Les
paramètres de cette sinusoïde peuvent être changés au début du code :
fp=10000 # fréquence de la porteuse
A=1 # amplitude du signal modulé
phi=30 # phase en degré du signal modulé
L’expression mathématique de cette sinusoïde s(t) s’écrit s(t) = [Link](2.π.fp.t + φ).
Une sinusoïde de référence a été ajoutée : ref(t) = sin(2.π.fp.t)
Visualiser ces deux sinusoïdes.
La sinusoïde noire correspond au signal modulé. La sinusoïde grise correspond à la référence.
Mesurer grâce aux curseurs matplotlib (en bas à droite x=…, y=…), puis comparer avec la valeur réglée dans
le programme « [Link] »
Q1- l’amplitude A du signal modulé,
Réponse :
Q2- la période Tp et en déduire la fréquence fp,
Réponse :
Q3- le décalage horaire τ entre s(t) et ref(t) et en déduire le déphasage φ de s(t) (Attention au signe ...)
Réponse :
D’autres perspectives ...
s(t) = [Link](2.π.fp.t + φ).
Or les équations de trigonométrie nous disent que
sin(a+b) = sin(a).cos(b) + cos(a).sin(b)
En remplaçant a par 2.π.f.t et b par φ.
sin(2.π.f.t + φ) = sin(2.π.fp.t).cos(φ) + cos(2.π.fp.t).sin(φ)
d’où
s(t) = [Link](φ).sin(2.π.fp.t) + [Link](φ).cos(2.π.fp.t)
Ecrit sous cette forme, nous voyons apparaître la sinusoïde comme la somme
- d’une sinusoide [Link](φ).sin(2.π.fp.t) d’amplitude [Link](φ),
- d’une cosinusoïde [Link](φ).cos(2.π.fp.t) d’amplitude [Link](φ).
Sachant que cos(a+π/2) = sin(a) nous
pouvons dire qu’une cosinusoïde est déphasée
de 90° par rapport à une sinusoïde :
On dit alors qu’une cosinusoïde est en
quadrature par rapport à une sinusoïde.
La sinusoïde [Link](φ).sin(2.π.fp.t) est le terme « In Phase » noté i(t).
i(t) = [Link](φ).sin(2.π.fp.t)
La cosinusoïde [Link](φ).cos(2.π.fp.t) est le terme « Quadrature Phase » noté q(t)
q(t) = [Link](φ).cos(2.π.fp.t)
s(t) = i(t) + q(t)
Grâce au programme « [Link] », visualiser les termes i(t) et q(t).
Q4- Justifier que i(t) est une sinusoïde et que q(t) est une cosinusoïde.
Réponse :
Q5- Mesurer l’amplitude I de i(t) et l’amplitude Q de q(t)
Réponse :
Le dernier graphe du programme « [Link] » permet enfin de représenter les amplitudes I et Q en fonction du
temps.
Q6- Mesurer I et Q sur ce graphe et comparer avec la question précédente.
Réponse :
L’expression théorique de l’amplitude I est [Link](φ) et celle de Q est [Link](φ).
I = [Link](φ)
Q = [Link](φ)
s(t) = [Link](2.π.fp.t) + [Link](2.π.fp.t)
Q7- Calculer I et Q et comparer.
Réponse :
Le diagramme IQ est la représentation de Q en fonction de I. Visualiser le diagramme IQ en coordonnées
cartésiennes.
La sinusoïde apparaît sous la forme d’un point dans ce diagramme.
Q8-Mesurer et justifier les coordonnées (x,y) de ce point.
Réponse :
On peut aussi visualiser le diagramme IQ en coordonnées polaires.
Pour cela, changer la ligne de code :
coordPolaire = False
en
coordPolaire = True
La sinusoïde apparaît aussi sous forme d’un point. Les coordonnées du point
s’écrivent sous la forme (ρ, θ).
Q9- Mesurer les coordonnées polaire (ρ, θ) du point.
Réponse :
Q10- Que représente ρ par rapport à la sinusoïde ? Que représente θ ?
Réponse :
Changer les paramètres de la sinusoïde s(t) en prenant fp = 10000Hz, A = 2 et φ = -60°.
Visualiser les signaux temporels s(t), ref(t), i(t), q(t), I, Q, le diagramme IQ en coordonnées cartésiennes, le
diagramme IQ en coordonnées polaires. Comprendre ou se faire expliquer chacun de ces graphes.
Essayer d’autres paramètres pour la sinusoïde.
Conclusion :
Dans un diagramme IQ, un point représente une sinusoïde.
Les coordonnées polaires de ce point correspondent
- à l’amplitude A et
- à la phase à l’origine φ de la sinusoïde.
Cette sinusoïde est la somme
- d’une sinusoïde « In Phase » : i(t) et
- d’une cosinusoïde « Quadrature Phase »: q(t)
Les coordonnées cartésiennes du point dans le diagramme IQ
correspondent
- à l’amplitude I de i(t) et
- à l’amplitude Q de q(t)
NB : le seul paramètre de la sinusoïde qui n’apparaît pas dans le diagramme IQ est la fréquence.
B- De la modulation BPSK aux paramètres I, Q
Afin de transmettre des informations sur une onde électromagnétique de forme sinusoïdale, il est
nécessaire de moduler cette onde. La sinusoïde de référence vue précédemment est alors appelée porteuse.
Si l’on souhaite transmettre des informations numériques, le plus simple est d’abord de choisir deux
symboles à partir de la porteuse.
Le choix est fait ici de moduler la phase → même amplitude, même fréquence, deux phases
différentes.
Les deux phases choisies sont φ1 = 0° et φ2 = 180°.
La modulation dans ces conditions est appelée BPSK (Binary Phase Shift Keying) que l’on pourrait
traduire en français par modulation par saut de phase binaire.
Le programme « [Link] » permet de générer ces deux symboles l’un après l’autre.
fp=10000 # fréquence de la porteuse
A=1 # amplitude du signal modulé
phi1=0 # phase en degré du 1er symbole
phi2=180 # phase en degré du 2nd symbole
(il n’est pas interdit d’étudier la suite du code pour voir comment sont calculés les signaux …)
Q11- Justifier le choix de φ1 et φ2.
Réponse :
Visualiser le signal modulé et la porteuse.
Q12- Justifier l’allure du premier symbole (de 0 à 0,4 ms) et celle du second (de 0,4 à 0,8 ms).
Réponse :
Q13- Quelle est la durée d’un symbole. En déduire la rapidité de modulation ou débit de symbole en baud.
Réponse :
Q14- Un symbole permet de coder 1 bit avec cette modulation. En déduire le débit binaire en bps.
Réponse :
Q15- Justifier l’allure de I(t), Q(t), I et Q.
Réponse :
Q16- Justifier l’allure du diagramme IQ pour la modulation BPSK.
Réponse :
C- Des paramètres I, Q à la modulation BPSK
Pour définir une modulation numérique, nous procéderons dorénavant à l’inverse de l’étude
précédente. C’est à partir du diagramme IQ que l’on va définir une modulation, chaque point représentant un
symbole.
C’est ce qui a été fait dans le programme « [Link] ». La modulation est définie de la manière
suivante :
# caractéristiques de la modulation
fp=10000
baud=2500
symboles = [Link]([[1,0],[-1,0]])
Le premier symbole a pour coordonnées cartésiennes (1,0), le second (-1,0).
Q17- Dans le code, repérer la ligne permettant de calculer le signal modulé. Expliquer.
Réponse :
D- Analyse spectrale du BPSK et filtre en cosinus surélevé
Le programme « [Link] » permet de tracer le spectre d’une longue suite de symboles codée en
BPSK. Pour cela changer la ligne de code
spectre = False
en
spectre = True
Visualiser le spectre pour une modulation BPSK.
Q18- Pour quelle fréquence cette modulation est elle maximale. A quoi correspond cette fréquence pour la
modulation ?
Réponse :
Le spectre présente un lobe principal. La largeur de ce lobe représente l’occupation spectrale B de la
modulation. Dans une première approximation, on néglige donc les lobes secondaires.
Q19- A 2500 baud, mesurer l’occupation spectrale.
Réponse :
Q20- A 1000 baud, mesurer l’occupation spectrale.
Réponse :
Soit R la rapidité de modulation (ou débit de symbole) en baud et B l’occupation spectrale.
Q21- Trouver la relation mathématique qui relie B et R.
Réponse :
L’objectif dans une modulation est d’avoir un débit binaire D le plus important possible en limitant au
D
maximum l’occupation spectrale. D’où la notion d’efficacité spectrale η= .
B
Q22- Calculer l’efficacité spectrale pour une modulation BPSK (attention à l’unité …)
Réponse :
Pour la suite, nous n’allons plus négliger la présence des lobes secondaires. Dans cette hypothèse, la bande
occupée devient très importante (infinie en réalité …) et l’efficacité spectrale très faible.
Pour résoudre ce problème, un filtrage est réalisé. Le filtrage le plus utilisé dans les commuications numériques
et le filtrage dit en « cosinus surélevé ». Ce filtre permet entre autre de limiter les interférences intersymboles
mais agit aussi sur le spectre.
Afin d’appliquer ce filtre sur I et Q, changer la ligne de code
filtreRC = False
en
filtreRC = True
Q23- Observer l’influence sur le spectre. Décrire et expliquer l’intérêt du fitrage.
Réponse :
Q24- Observer l’influence du filtrage sur I et Q. Décrire et expliquer.
Réponse :
Q25- Observer l’influence du filtrage sur le signal modulé. Que se passe t-il à l’instant t = 0,4 ms où la phase
passe de 0 à 180° ?
Réponse :
L’instant de décision est l’instant où le démodulateur va « décider » quel symbole est reçu.
Q26- Dans le cas de notre signal BPSK avec deux symboles différents consécutifs, quels sont les deux
meilleurs instants de décision ?
Réponse :
Afin d’améliorer encore l’efficacité spectrale, nous allons maintenant augmenter le nombre de symboles.
E- Des paramètres I, Q au diagramme de constellation QPSK
Dans le cas du BPSK, deux symboles ont été utilisés. Dans le diagramme IQ, deux points apparaissent.
Si ces points sont des étoiles, le diagramme IQ devient un diagramme de constellation.
La constellation est composée de deux étoiles pour la BPSK.
Nous souhaitons passer maintenant à une constellation avec 4 étoiles, avec 4 symboles et à la modulation QPSK
(Quadrature Phase Shift Keying).
Le programme « [Link] » sera utilisé.
Les paramètres de la modulation sont donnés au début du code :
# caractéristiques de la modulation
fp=10000
baud=2500
symboles = [Link]([[0.707,0.707],[-0.707,0.707],[-0.707,-0.707],[0.707,-0.707]])
Lancer le programme et visualiser le diagramme IQ (ou de constellation).
Q27- Comment la position des « étoiles » ont été choisies ?
Réponse :
Q28- Justifier la ligne de code suivante à partir du diagramme de constellation
symboles = [Link]([[0.707,0.707],[-0.707,0.707],[-0.707,-0.707],[0.707,-0.707]])
Réponse :
Visualiser le signal modulé et zoomer autour de 0,2 ms (milieu du premier symbole)
Q29- Le signal modulé est il en avance ou en retard sur la porteuse ?
Réponse :
Q30- Quel est le décalage horaire entre le signal modulé et la porteuse.
Réponse :
Q31- En déduire la phase φ pour ce premier symbole.
Réponse :
Q32- Mesurer l’amplitude A pour ce premier symbole.
Réponse :
Q33- Calculer I et Q (on rappelle que I=[Link](φ) et Q=[Link](φ)). Comparer avec le premier symbole défini
dans la ligne de code symboles = …
Réponse :
Visualiser le spectre du signal modulé QPSK. (spectre = True)
Q34- Comparer avec le spectre du signal modulé BPSK et donner l’occupation spectrale B.
Réponse :
Q35- Combien de bits peuvent être codés pour un symbole en QPSK ?
Réponse :
Q36- Sachant que le débit de symbole est R = 2500 baud, en déduire le débit binaire D.
Réponse :
Q37- Quelle est l’efficacité spectrale η de la modulation QPSK. Comparer avec celle de la modulation BPSK.
Réponse :
Appliquer le filtrage sur I et Q (filtreRC = True)
Q38- Observer le spectre et les signaux temporels. Commenter et conclure.
Réponse :
Afin d’améliorer encore l’efficacité spectrale, nous allons encore augmenter le nombre de symboles.
F- Du diagramme de constellation aux modulations QPSK,
8 QAM, 16 QAM, 64 QAM
Nous allons passer à une modulation avec 8 symboles. Le programme utilisé est « [Link] ».
Visualiser le diagramme de constellation pour cette modulation.
Les symboles sont définis pour cette modulation de la manière suivante dans le code :
symboles = [Link]([
[0.924,0.383],[0.383,0.924],[-0.383,0.924],[-0.924,0.383],
[-0.924,-0.383],[-0.383,-0.924],[0.383,-0.924],[0.924,-0.383]
])
Q39- Sur la courbe donnant le signal modulé en fontion du temps, mesurer la phase φ et l’amplitude A du
premier symbole transmis.
Réponse :
Q40- Calculer I et Q à partir de A et φ et justifier le premier symbole défini dans la ligne de code
symboles = = [Link]([[0.924,0.383], ...
Réponse :
Q41- Le signal modulé a une amplitude qui reste constante. Expliquer pourquoi.
Réponse :
Q42- En vous inspirant du travail fait pour la QPSK, déterminer l’occupation spectrale et l’efficacité spectrale
de la modulation 8PSK.
Réponse :
Toutes les modulations étudiées jusqu’à présent se sont faites à amplitude constante. Au delà des 8 symboles, en
plus de moduler la phase, on module aussi l’amplitude.
Les modulations sont alors dites QAM, Quadrature Amplitude Modulation.
Commençons par la QAM 16, qui a 16 symboles.
Le programme python « [Link] » permet de générer les 16 symboles successivement de la QAM16.
Les symboles sont définis pour cette modulation de la manière suivante dans le code :
symboles = [Link]([
[-1,-1],[-0.33,-1],[0.33,-1],[1,-1],
[-1,-0.33],[-0.33,-0.33],[0.33,-0.33],[1,-0.33],
[-1,0.33],[-0.33,0.33],[0.33,0.33],[1,0.33],
[-1,1],[-0.33,1],[0.33,1],[1,1],
])
Lancer ce programmme et visualiser le diagramme de constellation pour cette modulation.
Q43- Justifier que l’amplitude varie en analysant le diagramme de constellation.
Réponse :
Observer le signal modulé.
Q44- Combien d’amplitudes différentes apparaissent ? Donner leurs valeurs et expliquer.
Réponse :
Filtrer avec un filtre en cosinus surélevé et visualiser le spectre.
Q45- En déduire la bande occupée puis l’efficacité spectrale de cette modulation.
Réponse :
Q46- Avec le filtrage activé, analyser le diagramme IQ. Expliquer son allure.
Réponse :
Pourquoi s’arrêter en si bon chemin ? Il devient possible d’augmenter encore le nombre de symboles. C’est
chose faite avec la modulation QAM64.
Le programme python « [Link] » permet de générer les 64 symboles successivement de la QAM64.
Les symboles sont définis pour cette modulation de la manière suivante dans le code :
symboles = [Link]((64,2))
for iQ in range(8):
for iI in range(8):
symboles[iI+iQ*8] = [2*iI/7-1,2*iQ/7-1]
Q47- Quel sont les coordonnées du premier symbole calculé dans ce code ? Du dernier ?
Réponse :
Zoomer autour de 2,6 ms.
Q48- Mesurer l’amplitude A et la phase φ du signal modulé. En déduire I et Q. Comparer avec les valeurs
calculées par le programme. Repérer le symbole correspondant dans le diagramme de constellation.
Réponse :
Lancer ce programmme et visualiser le diagramme de constellation pour cette modulation.
Q49- Calculer l’efficacité spectrale et comparer avec celle de la BPSK.
Réponse :
Q50- Quel est l’inconvénient de la modulation QAM64 par rapport à la modulation BPSK ? On pourra ajouter
du bruit à la modulation en changeant la ligne de code :
bruit100 = 0; # % de bruit rajouté
Réponse :
Fin du TP