Maquette 2 : énoncé
TP : Communication numérique
Module Python nécessaires :
Dans ce TP, nous utiliserons les modules numpy, scipy, matplotlib, comnumfip2 et sounddevicecustom.
Matériel
- 2 Ordinateurs sous Ubuntu avec Python et Jupyter
- 1 boitier “canal FIP”
Introduction :
Le TP se déroulera en binôme et consistera à simuler une communication numérique entre deux ordinateurs à l'aide d'un boîtier "canal FIP". L'un des ordinateurs sera utilisé pour transmettre des messages tandis que l'autre les recevra. La communication passera à travers le boîtier "canal FIP", qui permet d'introduire des perturbations sur le canal de transmission.
Module Python nécessaires : Dans ce TP, nous utiliserons les modules numpy, scipy, matplotlib, comnumfip2 et sounddevicecustom.
Partie 1 : Installation et configuration du matériel
Connectez le boitier “canal FIP”’ à l’ordinateur émetteur avec le câble jack IN et à l’ordinateur récepteur avec le câble jack OUT et alimenter le avec le câble USB.
Configuration sur Ubuntu
Pour l’émetteur :
- Sélectionnez le périphérique casque audio et mettez le volume au maximum sans suramplification
Pour le récepteur :
- Sélectionnez le périphérique microphone
- lancez la fonction du module comnumfip2.init_volume pour configurer les paramètres de son
Vérification :
Pour vérifier la configuration, vous devez d'abord exécuter la fonction comnumfip2.check_config_receiver sur le récepteur. Attendez que la fonction soit entièrement lancée puis lancer la commande comnumfip2.check_config_transmitter sur l'émetteur
Si l’opération c’est déroulé sans erreur, vérifier l’allure de la courbe. Voici le type de courbe à obtenir (mettre autre image car inversion de polarite)
Partie 2 : Étude de la modulation numérique en bande de base
2.1 Source "idéale"
L’objectif de cet exercice est d’implémenter et de comparer quelques modulations numériques :
- NRZ (non-return-to-zero) binaire
- Manchester
- AMI (bipolar alternate mark inversion)
Ces modulations sont étudiées et comparées à la fois dans le domaine temporel et dans le domaine fréquentiel.
- Créez un message binaire en utilisant le codage source ASCII (comnumfip2.stringtoascii)
- Appliquez les modulations NRZ, Manchester et AMI (comnumfip2.ami_signal_generator, comnumfip2.nrz_signal_generator, comnumfip2.manchester_signal_generator) sur la séquence binaire
- L’analyse spectrale des modulations peut être effectuée à l’aide de la densité spectrale de puissance, qui est le carré du module de la transformée de Fourier. En choisissant un message suffisamment long (N grand), représentez la densité spectrale de puissance de chaque modulation en échelle décimale en utilisant la méthode du périodogramme (
scipy.signal.periodogram
, en fixant la fréquence d’échantillonnage égale à 100/d où d est la durée d’un bit).
- Lancez la fonction d’acquisition sur le récepteur avec comnumfip2.acquire_signal et envoyez le message à travers le boitier “canal FIP” avec comnumfip2.send_signal_to_canal (assurez vous que tout les boutons du boitier soit sur la position off).
- Supprimez le bit de start et de stop de la trame avec comnumfip.get_message_from_signal
- Échantillonnez et seuillez le signal reçu (comnumfip.sample_and_threshold_AMI, comnumfip.sample_and_threshold_NRZ, comnumfip.sample_and_threshold_Manchester en fonction du signal émis)
- Décodez le signal et vérifiez que le message est correct
2.2 Source réelle simulée
Pour cette partie, répartissez dans la classe les différentes modulations et comparez vos résultats à la fin de la séance.
2.2.1 Source en présence de bruit
- Activez le bruit 1 sur le boîtier “canal FIP” et transmettez un message au récepteur
- Mettez en place un filtre adapté sur le signal reçu
- Supprimez les bits de start et de stop
- Seuillez et décodez le message
répétez l’opération pour le bruit 2
2.2.1 Source en présence d’un filtre passe-bas
- Activez le filtre 1 sur le boîtier “canal FIP” et transmettez un message au récepteur
- Supprimez les bits de start et de stop
- Tracer le diagramme de l’oeil du message
- Seuillez et décodez le message
répétez l’opération pour le filtre 2