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 :

Equation récursive élémentaire


Sujet :

Signal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Equation récursive élémentaire
    Bonjour à tous.

    Dans le cadre d'un projet, je dois rentrer sous matlab une équation élémentaire de type

    y[n] +0.9y [n-2] = 0.3dirac[n] +0.6dirac[n-1] +0.3dirac[n-2]

    avec n allant de 1 à 128 et dirac[1]=1 et 0 partout ailleurs.

    Voici la petite boucle que jai fais mais cela ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    x=[1,zeros(127,1)];
    for i=1:1:128;
    y=0.3*x[i]+0.6*x[i-1]+0.3*x[i-2]-O.9*y[i-2];
    J'aimerais que x soit un tableau d'indice i et non un vecteur.
    mais quand je pose x[i]=[1,zeros(127,1)]; cela met une erreur.
    De plus jais une erreur dans ma troisieme ligne. J'aimerais donc avoir tout les y[n] donnée par une boucle, qu'est ce qui ne va pas, comment puis je faire.

    Merci beaucoup

  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 : 53 163
    Points
    53 163
    Par défaut
    C'est normal que le code ne fonctionne pas, il y a plusieurs fautes de syntaxe.

    Voila la bonne syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    x=[1 zeros(1,127)];
    for i=1:1:128
       y = 0.3*x(i)+0.6*x(i-1)+0.3*x(i-2)-0.9*y(i-2);
    end
    Maintenant, il te reste un petit problème d'index à résoudre (me semble-t-il )

    Si tu démarres la boucle à i=1, il faudrait que tu puisses utiliser une valeur à x(-1) ou y(-1), ce qui n'a pas de sens sous MATLAB ; l'indexage commençant à 1
    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
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Merci pour cette réponse.
    Si je peux me permettre de poser l'enoncé de la question, car il me semble que je me perd dans la manière de la résoudre.

    Je dois donc trouver la réponse impulsionnelle de :

    y[n] +0.9y [n-2] = 0.3x[n] +0.6x[n-1] +0.3x[n-2]

    avec donc x[n]=dirac[n]

    Tout d'abord on me dit dans l'énoncer de créer deux vecteurs a et b contenant les coefficients d'entrée et de sortie :


    a=[1 0 0.9];
    b=[0.3 0.6 0.3];


    Jusque la tout va bien. Ensuite il est dit de créer un vecteur impulsion imp de longueure 128 :


    imp=[1;zeros(127,1)];


    Et enfin il m'est demander de générer la réponse impulsionnelle de l'equation grace à ses trois vecteurs, aparament sans utiliser la fonction "filter"

    Donc voila, je me demande si je dois faire une boucle comme précedemment ou autre chose. Car avec la boucle que tu ma écrit, j'ai l'impression que matlab chipote sur l'existance des x(-1) ,y(-2)...etc, pour le calcul du premiere terme.

    Donc dois je suivre cette voie de boucle for ou est ce que à votre avis je me plante complètement ^^

    Merci à vous

  4. #4
    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 : 53 163
    Points
    53 163
    Par défaut
    Première chose, il faudrait qu'on en sache un peu plus sur le phénomène physique modélisé par cette équation...

    Ensuite, il doit bien y avoir des conditions initiales sur y, non ?
    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)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Voici le sujet que je viens d'uploader.
    http://dl.free.fr/u1LYSkn6u
    C'est le tout premier exercice sur l'equation récursive elementaire.
    Je pense que j'avais tout dis dans le message précédent.

Discussions similaires

  1. problème que je n'arrive pas à résoudre de façon récursive
    Par miam dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 31/07/2004, 11h21
  2. Trouver equation à partir d'une liste de points
    Par scarabee dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 27/05/2004, 17h05
  3. résolution de equation 2nd degré
    Par isidore dans le forum C
    Réponses: 30
    Dernier message: 29/02/2004, 10h46
  4. résolution d'equation f(x) = 0
    Par magicien dans le forum C
    Réponses: 8
    Dernier message: 06/05/2003, 16h06
  5. Procédure Récursives
    Par DocCoinCoin dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 30/10/2002, 19h27

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