Artishow Presentation

SigTRX + Maprene-C

Germain PHAM

14 février 2024

Réunion de démarrage

Qui suis-je ?

  • Enseignant-chercheur (Équipe C2S, Dépt. COMELEC)

    • Ingé. Réseaux et Télécoms (2009)

    • Thèse de doctorat: Électronique et Télécoms (2013)

  • Enseignements:

    • ELEC101, PROJ10x

    • TELECOM20x, SE20x

    • ICS90x

  • Expertises:

    • Traitement du signal

    • Programmation Python + Matlab

    • Linux

  • Infos pratiques:

Projet SigTRX

SigTRX-Logo

Boîte à outil Python pour les cartes radio SDR

BECKER Solene

JABAL Moncef

VERBOIS Maël

Qu’est-ce que SigTRX ?

  • SigTRX est une boîte à outil Python pour les cartes radio SDR

  • SigTRX est un projet open-source qui utilise des bibliothèques open-source

  • Fournit:

    • des fonctions simples pour générer des signaux simulant des transmissions télécoms (4G,5G)

    • des scripts pour contrôler les cartes SDR qui permettront d’effectuer les opérations de base, telles que :

    • la réception de signaux,

    • l’émission de signaux,

    • et l’analyse de spectre.

Qu’est-ce qu’une carte radio SDR ?

  • SDR: Software Defined Radio

  • Une radio logicielle (SDR, Software Defined Radio) est un dispositif de télécommunications qui se compose généralement

    • d’un dispositif frontal RF configurable

    • d’une carte FPGA ou d’un SoC (System-on-Chip) programmable permettant d’exécuter des fonctions numériques.

  • Les cartes SDR disponibles dans le commerce peuvent émettre et recevoir des signaux à différentes fréquences pour implémenter des normes de télécommunications allant de la radio FM à la 5G, au LTE et au WLAN.

SDR : schémas de principe

SDR diagram-Wikipedia
SDR diagram-Abstraction

Utilité des cartes SDR

  • Plateforme temps réel low-cost

    • \$\approx\$ 1 à 3k€

  • Tâches d’ingéniérie radio

    • Tests OTA (over-the-air) en laboratoire et sur le terrain avec des signaux RF live

    • Prototypage rapide de fonctions radio personnalisées

  • Enseignement

    • Apprentissage pratique des concepts de télécommunications et des compétences de design

Exemples de cartes SDR

usrp

great scott gadgets hackrf one sdr opera cake antenna switch

pluto in hand

xxsoc QPSK hwsetup

Pourquoi SigTRX ?

  • Matlab est le langage de programmation le plus utilisé pour les applications de traitement du signal et de télécommunications

    • Mais Matlab est un logiciel propriétaire et coûteux

    • La gestion des toolboxes est obscure et difficile à déployer sur un parc de machines

  • Python est un langage de programmation open-source et gratuit

  • Nous utilisons des cartes SDR produites par Analog Devices

    • Les bibliothèques Python pour ces cartes sont relativement documentées et open-source

  • Pour la recherche:

    • Test d’algorithmes de traitement du signal et de télécommunications

  • Pour l’enseignement:

    • Prototypage rapide pour les TP de télécommunications

    • Prototypage rapide pour les projets

Livrables

  • Livrer une présentation de la carte radio AD-FMCOMMS3-EBZ en utilisant la bibliothèque markdown-slides Asciidoctor reveal.js

  • Réaliser individuellement 10 commits sur git en respectant un modèle de rédaction:

    • le message principal du commit doit suivre le modèle suivant: <file/module name>: <title>

    • le commit doit contenir une brève description de ce que vous y avez fait

  • Implémenter les fonctions de base pour générer des signaux de télécoms

  • Rédiger la documentation des fonctions de base

  • Implémenter le code pour réaliser une transmission sans-fils et calculer le taux d’erreur binaire

  • Rédiger la documentation de la boîte à outils

Par où commencer ?

À faire pour "la" prochaine réunion

  • Lire les documents de référence

  • Installer les outils nécessaires

    • Python

    • PyADI-IIO

      • Éxécuter les exemples

    • Asciidoctor

      • Éxécuter les exemples

    • Git

      • Définir un reviewer pour les commits

    • Visual Studio Code

      • Installer les extensions pour Python et Asciidoctor

  • Stratégie à moyen terme:

    • Comprendre la structure de PySDR

    • Choisir les fonctions de base à réutiliser

    • Choisir les fonctions de base à implémenter

Projet Maprene-C

Maprene-C-Logo

Modélisation d’amplificateurs de puissance à base de réseaux de neurones à valeurs complexes

GORGE Nicodème

JEMNI Yassine Abdallah

LECOMTE Bastien

PELISSIER Damien

Qu’est-ce que Maprene-C ?

  • Maprene-C est un projet à visée éducative

    • Support de cours qui bénéficiera aux futures générations d’étudiants

Qu’est-ce qu’un amplificateur de puissance ?

  • Un amplificateur de puissance est un dispositif électronique qui amplifie la puissance d’un signal électrique

  • Les amplificateurs de puissance sont utilisés dans les systèmes de télécommunications, les radars, les systèmes de navigation, etc.

  • Les amplificateurs de puissance sont des composants critiques

    • Ils chauffent

    • Ils consomment une grande part de l’énergie du système

    • Ils sont non-linéaires

  • Les amplificateurs de puissance peuvent être modélisés par différents types de fontions mathématiques

    • niveau électrique : équations différentielles non-linéaires

    • niveau signal : fonctions polynomiales (à coefficients complexes) ou réseaux de neurones

Amplificateur de puissance : illustrations

BlockDiagramComonSource2 PowerBalance

IMG 20170227 220608 lighter

Qu’est-ce qu’un réseau de neurones ?

neural net2

neuron model

  • Un réseau de neurones est un modèle mathématique qui simule le fonctionnement des neurones biologiques

  • Un réseau de neurones est (habituellement) composé de plusieurs couches de neurones

  • Chaque neurone est une fonction mathématique qui prend en entrée un vecteur et produit un scalaire en sortie

  • Les poids du réseau de neurones sont ajustés par apprentissage

  • Les réseaux de neurones sont utilisés pour des tâches de classification, de régression, de prédiction, de génération de texte, de traitement du signal, de traitement d’images, de traitement de la parole, etc.

Qu’est-ce que l’apprentissage ?

  • L’apprentissage est le processus par lequel on ajuste les poids d’un réseau de neurones pour minimiser une fonction de coût.

  • La fonction de coût sera définie comme la moyenne des erreurs quadratiques entre les sorties du réseau et les sorties attendues:

    • \[C = \frac{1}{N} \sum_{n=1}^{N} (y_n - \hat{y}_n)^2\]

  • Il y a plusieurs types d’apprentissage ; nous nous intéressons à l’apprentissage supervisé.

  • L’apprentissage est réalisé par descente de gradient (pour faire simple).

Les réseaux de neurones à valeurs complexes

  • Les réseaux de neurones à valeurs complexes sont des réseaux de neurones dont les poids et les entrées sont des nombres complexes

  • Les fonctions d’activation sont des fonctions complexes

    • La dérivation de telles fonctions est plus complexe que pour les fonctions réelles

  • La fonction de coût reste la même (à valeurs réelles)

Pourquoi Maprene-C ?

  • Bien qu’il existe une littérature abondante sur les réseaux de neurones à valeurs réelles, il n’existe pas de support de cours (didactique) sur les réseaux de neurones à valeurs complexes.

  • Pour apprendre les bases des réseaux de neurones

  • Pour aider les futures générations d’étudiants à comprendre les réseaux de neurones à valeurs complexes

Livrables

  • Revue commentée de la littérature sur l’optimisation des réseaux de neurones à valeurs complexes sous forme d’un document en langage AsciiDoc

  • Rédaction de l’expression du gradient de la fonction de coût pour différents réseaux de neurones à valeurs complexes sous forme d’un document en langage AsciiDoc (LaTeX sera mis en oeuvre pour l’écriture des équations)

  • Réaliser individuellement 10 commits sur git en respectant un modèle de rédaction:

    • le message principal du commit doit suivre le modèle suivant: <file/module name>: <title>

    • le commit doit contenir une brève description de ce que vous y avez fait

  • Implémentation d’un modèle de réseau de neurones à valeurs complexes sous forme d’un script Python

  • Courbe d’apprentissage du modèle de réseau de neurones à valeurs complexes sous forme d’un graphique

Par où commencer ?

À faire pour "la" prochaine réunion

  • Installer les outils nécessaires

    • Python

    • PyTorch

    • Asciidoctor

      • Éxécuter les exemples

    • Git

      • Définir un reviewer pour les commits

    • Visual Studio Code

      • Installer les extensions pour Python et Asciidoctor

  • Développer le calcul du gradient de la fonction de coût pour un réseau de neurones à valeurs réelles

    • MLP (Multi-Layer Perceptron):

      • 4 neurones d’entrée, 5 neurones cachés, 2 neurones de sortie

      • Fonction d’activation: tangente hyperbolique

  • Stratégie à long terme:

    • implémenter le calcul du gradient de la fonction de coût pour un réseau de neurones à valeurs réelles

    • développer le calcul du gradient de la fonction de coût pour un réseau de neurones à valeurs complexes

    • implémenter le calcul du gradient de la fonction de coût pour un réseau de neurones à valeurs complexes

Mercredi 28 février 2024

  • Livraison du planning de travail (cf. mail 6 fév. M. Jeanmougin [Artishow] [ARTISHOW] choix des projets et début du second semestre)

    • Ce planning sera noté ; il doit être

      • réaliste

      • détaillé

  • Si vous avez des questions, contactez-moi par mail la veille du créneau de RDV que vous envisagez.