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

Simulink Discussion :

Code FM0


Sujet :

Simulink

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Code FM0
    Bonjour, j'essaie de fabriquer un S-fonction qui génère aléatoirement x bits à f fréquence et qui les code ensuite en Biphase Space (ou FM0). Comme je suis débutant, j'avoue que c'est pas évident et qu'un peu d'aide serait la bienvenue .

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Quel est le problème exactement ?

    Sur quel point précis bloques-tu ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    je me suis proposé de le faire en modifiant le code manchester que j'ai sous la main, mais comme je débute la syntaxe me perturbe beaucoup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    clf;
    n=1;
    h=randsrc(1,150,[0,1;.5,.5]);
    l=length(h);
    h(l+1)=1;
    while n<=length(h)-1;
        t=n-1:0.001:n;
    if h(n) == 0
        if h(n+1)==0  
            y=-(t<n)+2*(t<n-0.5)+1*(t==n);
        else
            y=-(t<n)+2*(t<n-0.5)-1*(t==n);
        end
     
    else
        if h(n+1)==0
            y=(t<n)-2*(t<n-0.5)+1*(t==n);
        else
            y=(t<n)-2*(t<n-0.5)-1*(t==n);
        end
        disp('zero'); 
    end
    n=n+1;
    %pause; 
    end

    sachant que pour le FM0 le changement d'état à la demi période du bit ne se fait que pour un 0 entrant, et que pour le reste, il y a toujours changement d'état à chaque période de bit.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'ai finalement réussi à fabriquer un codeur FM0 sous MATLAB... j'aimerais maintenant constituer le bloc équivalent sous Simulink. Anyone to help? Voici le code MATLAB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    clf;
    n=1;
    s=randint(1,10);
    l=length(s);
    y=zeros(1,l);
    Te=0.00001;
     
    while n<=l;
     
        t=(n:Te:n+1);
     
     
        if s(n)==0
            e=(t>=n+1);
            if y(n)==0
                r=(t<n+0.5);
                y(n+1)=0;
            else
                r=(t>n+0.5);
                y(n+1)=1;
            end
        else
            e=(t<=n+1);
            if y(n)==0
                r=(t<n+1);
                y(n+1)=1;
            else
                r=(t>n+1);
                y(n+1)=0;
            end
     
        end
     
        subplot(2,1,1);
         f=plot(t,e);grid on;
        title('Binary Stream');
        set(f,'LineWidth',2.5);
        hold on;
        axis([1 l+1 -0.5 1.5]);
     
        subplot(2,1,2);
        d=plot(t,r);grid on;
        title('Line code FM0');
        set(d,'LineWidth',2.5);
        hold on;
        axis([1 l+1 -0.5 1.5]);
     
     
    n=n+1;
    %pause; 
    end
    Comment fabriquer la S-fonction qui reçoit s en entrée et donne r en sortie?

    Merci de m'aider..

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    j'ai finalement opté pour le bloc "embedded matlab function" et je voudrais donc que ce dernier reçoive en input un bitstream en provenance d'un bernouilli binary generator et code les bits en FM0 selon ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    function fm0=code(bernouilli)
    % retourne la séquence binaire Bernouilli 
    %codée en FM0 
     
     
    p=numel(bernouilli); %p=nombre de bits de la séquence
    fm0=zeros(1,2*p); %le résultat sera une séquence de longueur double
     
     
            if bernouilli(1)==1
                fm0(1)=1;
                fm0(2)=1;
            else fm0(1)=1;
                 fm0(2)=0;
            end   
           %on vient de décréter que fm0(0)=0
           %le premier bit est donc traité à part
     
           j=2;
     
         for i=2:p
     
            if bernouilli(i)==1
                if fm0(j)==0
                    fm0(j+1)=1;
                    fm0(j+2)=1;
                else fm0(j+1)=0;
                     fm0(j+2)=0;
                end
            else
                if fm0(j)==0
                    fm0(j+1)=1;
                    fm0(j+2)=0;
                else
                    fm0(j+1)=0;
                    fm0(j+2)=1;
                end
     
            end
         j=j+2;
        end
     
     
    end
    #

    le problème c'est que quand je copie ma fonction pour créer le bloc, à l'exécution il me dit que le chemin d'accès est introuvable. Où dois-je l'enregistrer ou tout simplement quelle est mon erreur?

    Merci.

  6. #6
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Pourrais-tu nous mettre le message d'erreur complet que tu obtiens?

    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je n'ai peut-être pas très bien saisi comment faire marcher embedded matlab function mais quand je colle ma fonction et que je la simule j'ai le message d'erreur suivant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Making simulation target "FM0_sfun", ... 
     
     
    C:\Users\stage04\Desktop\ter rfid stage\sfprj\build\FM0\sfun\src>"c:\program files\matlab\r2007b\sys\lcc\bin\lccmake" -f FM0_sfun.lmk  
    Le chemin d'accŠs sp‚cifi‚ est introuvable.
    Pourtant je n'ai pas changé de répertoire..

Discussions similaires

  1. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 02h17
  2. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 11h29
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  4. Explorateur de code C
    Par Zero dans le forum C
    Réponses: 14
    Dernier message: 06/06/2002, 09h41
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

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