IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Signal Discussion :

Fonctionnement de modulate


Sujet :

Signal

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Fonctionnement de modulate
    Bonjour,

    Je cherche à savoir ce que fait la fonction modulate, car je dois adapter un code Matlab en langage C, et on utilise cette fonction (ainsi que demodulate) là dedans.

    J'ai déjà regardé l'aide sur la fonction mais ça ne me suffit pas, j'aimerais connaître les opérations qui sont faites.
    Par exemple... En prenant input = [1 1 1 1 0 0 0 1 0 1 0 0] et en faisant modulate(h,input) où h est une modulation 8-PSK, j'obtiens output = [-i -i 1 i i 1] mais je sais pas du tout comment on l'obtient.

    Quelqu'un peut il m'éclairer ? Il me manque certainement des notions en traitement du signal aussi c'est peut être pour ça...

    Merci d'avance !

  2. #2
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Salut,
    es tu sûr que tu as bien spécifié du 8-psk?
    Ca ressemble plus à du 4-psk, 4 valeurs peuvent être codés par symbole. Voilà une table typique permettant de comprendre la transformation :
    décimal : binaire -> symbole
    0 : 00->1
    1 : 01->i
    2 : 10->-1
    3 : 11->-i

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Non en fait c'était peut être une 4-PSK, j'ai pris un exemple que j'ai trouvé avec l'aide Matlab je crois. J'ai dit 8-PSK parce que c'est bien celle-ci qui est utilisée dans mon code.

    En fait du coup, ce que font les fonctions modulate et demodulate, c'est du mapping, et demapping si je puis dire ?

  4. #4
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Salut,
    je ne vois pas ce que tu veux dire par mapping et demapping. La description que je t'ai donné du fonctionnement des méthodes modulate et demodulate ne sont pas claires?

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Désolé j'avais complètement laissé tomber ça pour bosser sur autre chose mais je reviens au problème aujourd'hui.
    Ce que je voulais dire par mapping et demapping c'est une association de nombres. Comment dire... Avec votre explication par exemple :

    0 : 00->1
    1 : 01->i
    2 : 10->-1
    3 : 11->-i

    On "mappe" le 0 à 1, le 1 à i, le 2 à -1 et le 3 à -i. L'opération inverse est le démapping. Enfin moi j'appelle ça comme ça en tout cas.

    Du coup, j'ai bien compris comment marchait la fonction modulate, mais j'ai des soucis avec la fonction demodulate. Pour le coup je vois pas comment on associe un certain nombre complexe à une valeur réelle.

    Par exemple, dans le projet dans lequel je travaille, j'obtiens la valeur suivante : valeur = -0.3464+0.0916*i. Et je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    h = modem.pskdemod('M',8,'SymbolOrder','Gray');   % 8-PSK
    demodulate(h,valeur)
    et j'obtiens 6... Ce que je ne comprends pas, c'est comment on trouve ce 6 ? De quoi cela dépend il ?

    Merci d'avance,
    Alex

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pour le 8-PSK tu as 8 points répartis sur le cercle unité, que tu peux facilement visualiser en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    hMod = modem.pskmod('M',8,'SymbolOrder','Gray');
    sig = 0:7; % 0 -> M-1
    modSignal = modulate(hMod,sig);
     
    plot(real(modSignal), imag(modSignal),'o')
    text(real(modSignal)+.05, imag(modSignal)+.05, strcat(num2str(sig(:)), ' (', dec2bin(sig),')'))
    [sig(:) modSignal(:)]
    Tu peux alors visualiser ta valeur avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    hold on
    plot(real(valeur), imag(valeur),'r*')
    Et peux observer que le point le plus proche de cette valeur est le n°6.
    Ou par le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [~,index] = min(abs(modSignal-valeur));
    modSignal(index)
    sig(index)

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup pour cette réponse rapide !

    Il me manquait la constellation utilisée en fait, je ne savais pas comment le tracer aussi. Je n'ai juste pas compris le code, enfin il me semble qu'on calcule la différence avec tous les points de la constellation pour en chercher le plus proche.

    Par contre je me demandais, si demain je reviens et que je recrée une modulation 8-PSK, est ce que la constellation sera toujours la même ? Parce qu'il me semble qu'il peut y avoir plusieurs constellations possibles (je sais plus trop sur ce point, je n'avais pas été passionné par mes cours...)

    En tout cas merci beaucoup ça m'aide vraiment pas mal !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Si tu reprends MATLAB, il n'y a pas de raison que cela change (encore que, je ne suis pas sûr si tu prends une version différente)
    Par contre rien ne garantit qu'ailleurs le codage des valeurs a été effectué de la même façon.

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    A quoi pensez vous quand vous dites "ailleurs" ?

  10. #10
    Invité
    Invité(e)
    Par défaut
    N'importe quel code extérieur.

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Ah d'accord. En fait je demandais tout ça parce que je "recode" ces deux fonctions, j'avais donc forcément besoin de savoir comment ça fonctionnait.
    Merci encore !

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/03/2015, 14h24
  2. Fonctionnement des modules netbeans
    Par steackfrite dans le forum NetBeans
    Réponses: 2
    Dernier message: 24/06/2013, 15h41
  3. Module de recherche ne fonctionne plus
    Par pipols dans le forum SharePoint
    Réponses: 4
    Dernier message: 03/09/2008, 13h51
  4. probléme de démarrage vista avec le module HPQWMIEX a cessé de fonctionner?
    Par lalouvesijetattrape dans le forum Windows Vista
    Réponses: 3
    Dernier message: 24/06/2008, 18h32
  5. [DOM] [setTimeout] Ne fonctionne pas dans un module
    Par bitardo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/08/2007, 10h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo