Étude de quelques modulations#

Dans ce TP, on veut étudier les propriétés et les effets des modulations numériques. Comme ce sont des signaux analogiques et aléatoires, on effectue les calculs en utilisant les outils du traitement statistique du signal. Pour éviter des calculs fastidieux, on va utiliser les outils numériques sur des signaux simulés.

Utilisation du module comnumfip#

Le module comnumfip regroupe de fonctions particulières pour faire les TP. Il s’agit d’un unique fichier téléchargeable sur : https://github.com/vincmazet/comnumfip. Une fois le fichier téléchargé, il suffit de l’ajouter dans le dossier contenant le notebook.

L’aide des fonctions de ce module est accessible directement sur la page web du module, ou bien en utilisant l’instruction help(fonction). Par exemple :

import comnumfip as cnf
help(cnf.randmary)
Help on function randmary in module comnumfip:

randmary(N, p)
    Génération d'une séquence M-aire.
    
    Entrées :
    N (scalar) : taille de la séquence (nombre de symboles)
    P (array)  : probabilité des symboles (sa taille correspond à la taille de l'alphabet)
    
    Sortie :
    c (array) : séquence aléatoire M-aire où M = len(P).
    
    Exemples :
    
    # séquence binaire de taille 1000, symboles équiprobables :
    c1 = randmary(1000,[0.5, 0.5])
    
    # séquence binaire de taille 100, p("0") = 0.3, p("1") = 0.7 :
    c2 = randmary(100,[0.3, 0.7])
    
    # séquence 4-aire de taille 10, symboles équiprobables :
    c3 = randmary(10,np.ones(4)/4)

Code principal#

La fonction randmary produit une séquence M-aire, et la fonction bin2mary permet de convertir une séquence binaire en séquence M-aire.

Séquence binaire :      [1 1 1 0 1 1 1 1 0 1 0 0 0 0 0 0 ...]
Séquence hecadécimale : [ 7 15  2  0 ...]
Attention : LSB (low significant bit) à gauche !

À partir des séquences binaires et hexadécimale créées, qui représentent toutes les deux le même message, on représente différentes modulations (seuls les premiers symboles son représentés) et leur périodogramme :

../_images/tpmod1_10_0.png ../_images/tpmod1_10_1.png ../_images/tpmod1_10_2.png ../_images/tpmod1_10_3.png ../_images/tpmod1_10_4.png

Ce tableau compare les différentes modulations en bande de base sur différents critères :

NRZ

Manchester

AMI

Largeur de bande

😀

😖

😀

Simplicité de mise en œuvre

😀

😕

😕

Robustesse au bruit

🙂

🙂

😖

Synchronisation du récepteur

😖

😀

😖

Téléalimentation possible

😖

😀

😀

Inversion de la polarité

😖

😖

😀

Détection d’interruption

😀

😀

😕

Selon les résultats de cet exercice, on peut en conclure les modulations adaptées pour les applications suivantes :

  • Bus informatique ou de terrain : modulation en bande de base (I2C : NRZ, SATA : 8b/10b encoding, ASI : Manchester, KNX : sorte de Manchester, HART : FSK binaire superposé au 4-20 mA)

  • liaison Wi-Fi : modulation sur porteuse (QAM, PSK, ou autre suivant la version de la norme)

  • périphérique USB et ordinateur : modulation en bande de base (NRZI)

  • téléphone mobile et antenne relais : modulation sur porteuse (GSM = 900 MHz et 1800 MHz, avec variantes)