Skip to content

Modulations numériques — Fiches pratiques 🎛️

Cette fiche couvre les modulations numériques communes (ASK, FSK, GFSK, PSK, QPSK, 8PSK, QAM), les constellations et la modulation vectorielle (I/Q).


Principes généraux

  • Modulation analogique d'une porteuse par une suite de symboles discrets. Chaque symbole porte une information (bits).
  • Représentation I/Q (modulation vectorielle) : s(t) = I(t) cos(2πf_ct) - Q(t) sin(2πf_ct) où I et Q sont les composantes en phase et en quadrature.

Types courants

  • ASK (Amplitude Shift Keying) : amplitude discrète selon symbole (ex. OOK)
  • FSK (Frequency Shift Keying) : fréquence discrète (FSK binaire: deux fréquences)
  • GFSK (Gaussian FSK) : FSK avec filtrage gaussien pour réduire la bande
  • PSK (Phase Shift Keying) : phase discrète (BPSK = 2 phases)
  • QPSK (Quadrature PSK) : 4 symboles, phase {±π/4, ±3π/4} selon mapping
  • 8PSK : 8 phases → 3 bits/symbol
  • QAM (Quadrature Amplitude Modulation) : combinaison amplitude/phase (ex. 16QAM → 16 symboles)

Constellations

  • Constellation = position des symboles dans le plan I-Q.
  • Exemples :
  • BPSK : deux points sur l'axe I (±A,0)
  • QPSK : quatre points sur un cercle (±A/√2, ±A/√2)
  • 8PSK : 8 points uniformément répartis sur le cercle
  • 16QAM : grille 4×4 (valeurs d'amplitude différentes en I et Q)

Bruit et performance

  • Distance minimale entre symboles fixe le rapport signal-à-bruit (SNR) nécessaire.
  • QAM haute densité nécessite SNR plus élevé.

Exercice type — Étude d'une modulation QPSK (avec correction)

Cahier des charges

  • Message binaire périodique : motif 01110010 envoyé à 2 Mbits/s.
  • Constellation QPSK fournie (E = 1 V). Porteuse : f_c = 5 MHz.

Questions

1) Tracer le diagramme de constellation associé au message périodique 01110010. 2) En déduire les tensions I(t), Q(t) et s(t). 3) Utiliser un tableur pour tracer I(t), Q(t), s_a(t) (signal modulé) et s_b(t) = cos(2πf_ct)·I(t) + sin(2πf_ct)·Q(t) (forme alternative) et vérifier. 4) Visualiser le diagramme de constellation avec un logiciel (ex. IQCreator).

Correction (résumé)

  • Débit binaire = 2 Mbit/s → durée d'un bit T_b = 0.5 μs. Pour QPSK, durée symbole T_s = 1 μs (2 bits/symbol).
  • Mapping (exemple Gray) :
  • 00 → (I,Q) = (+1/√2, +1/√2)
  • 01 → (+1/√2, -1/√2)
  • 11 → (-1/√2, -1/√2)
  • 10 → (-1/√2, +1/√2)
  • Pour le motif 0 1 1 1 0 0 1 0 → regrouper par paires: 01 11 00 10 → symboles correspondants (utiliser le mapping choisi).
  • Tracer les points sur le plan I-Q (cercles de rayon 1), puis construire I(t) et Q(t) comme des signaux en marche/arrêt par symboles (valeurs constantes sur T_s).
  • s(t) = I(t) cos(2πf_ct) - Q(t) sin(2πf_ct).
  • Excel : échantillonner à fsample (≥ 10·f_c), représenter I(t), Q(t), calculer s(t).

Exercice additionnel — 16QAM (avec correction succincte)

Cahier des charges

  • Motif binaire périodique : 1011000111100000 envoyé à 1 Msymbol/s.
  • Constellation : 16QAM conforme à la référence, E = 3 V. f_c = 5 MHz.

Correction (résumé)

  • 16QAM : 4 bits/symbol → chaque symbole correspond à une cellule d'une grille 4×4 en I/Q.
  • Normaliser les amplitudes pour respecter énergie E = 3 V (calcul de l'espérance d'énergie par symbole).
  • Convertir le flux binaire en symboles (4 bits → 1 symbole), tracer la trajectoire I(t), Q(t) et s(t) comme ci-dessus.

Outils conseillés

  • Tableur (Excel, LibreOffice Calc) pour tracer les signaux temporels.
  • IQCreator / GNURadio / MATLAB / Python (NumPy + Matplotlib) pour visualiser constellations et spectres.

Exemples générés (QPSK & 16QAM) ✅

Un script est fourni pour générer des fichiers CSV (compatibles Excel) et des images (constellations SVG et signaux PNG) :

  • Script : docs/notebooks/generate_modulation_plots.py
  • CSV générés : docs/notebooks/data/qpsk_data.csv, docs/notebooks/data/16qam_data.csv
  • Images (si matplotlib installé) : docs/assets/images/qpsk_constellation.svg, docs/assets/images/qpsk_IQ.png, docs/assets/images/qpsk_s.png, docs/assets/images/16qam_constellation.svg, docs/assets/images/16qam_IQ.png, docs/assets/images/16qam_s.png

Exécution depuis le dossier docs/notebooks :

python3 generate_modulation_plots.py

Remarque : si matplotlib n'est pas installé, le script génère les fichiers CSV mais saute la création des images. Pour activer la génération d'images, installez :

python3 -m pip install matplotlib seaborn

Les CSV peuvent être ouverts directement dans Excel/LibreOffice (séparateur ,) pour tracer I(t), Q(t) et s(t) si votre environnement Jupyter n'est pas disponible.