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

Calcul scientifique Python Discussion :

affichage d'une foction porte probleme


Sujet :

Calcul scientifique Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 6
    Points : 4
    Points
    4
    Par défaut affichage d'une foction porte probleme
    Bonjour à tous voila je dois faire dans le cadre d'un rendu de tp en traitement du signal l'affichage en python 2.7 d'une fonction porte periodique sur 2pi.
    Le prof nous a donné un starter avec la fonction porte deja prete sauf que quand je veux l'afficher cela ne me fait pas du tout une fonction porte . Voici ce qu'il nous a preparé:

    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
    import numpy as np
    import matplotlib.pyplot as plt
     
    def porte():
     
        # fonction porte 2pi prediodique sur 6*pi
        t= np.linspace(0.6*np.pi,200)
        s = np.zeros(np.size(t))
        ind = np.argwhere(t>np.pi)
        u = ind[0][0]
        s[0:u] = 1.0
        s[2*u:3*u] = 1.0
        s[4*u:5*u] = 1.0  
        s = s -0.5 
     
        return t, s
     
    def temps(binf, bsup, nb) :
        # calcul du'ne vecteur de temps
        # qui va de binf à bsup en prenant nb points
        t= np.linspace(float(binf),float(bsup),nb)
     
        return t


    puis moi je fais ca pour afficher :

    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
    import numpy as np
    import matplotlib.pyplot as plt
     
    import tp1
     
    t,porte = tp1.porte()
     
     
     
     
    titre = "fonction porte"
    label_x = "t"
    label_y = "porte"
     
    plt.plot(t,porte)
    plt.title(titre)
    plt.xlabel(label_x)
    plt.ylabel(label_y)
    plt.show()

    la la focntion afficher n'est pas une fonction porte .
    Merci pour votre aide.

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Le prof vous a donné le fichier python ou bien il vous a écrit le code au tableau et vous avez recopié ? Je suppute la 2eme option ...

    Et si on regarde la fonction porte de plus près,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def porte(): 
        # fonction porte 2pi prediodique sur 6*pi
        t= np.linspace(0.6*np.pi,200)
    qui a le bon gout d'avoir un commentaire en plus. Pourquoi t irait jusqu'à 200 ? Il devrait aller jusqu'à 6*pi non ? Et pourquoi démarrer 0,6* pi et pas 0 ? En gros on voit bien ici qu'on n'a pas écrit le code correspondant à ce qu'on avait dit qu'on faisait dans le commentaire !

    La faute est là, dans le linspace. Mes questions doivent vous amenez à trouver l'erreur de vous même.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour ,
    Merci pour votre réponse. Alors c’est le prof qui nosu a donné ce code par contre en effet je pense que je dois le modifier mais comme je suis kiné en reprise d’etude je debute dans le traitement du signal et le codage donc je suis un peu perdu. Je vais essayer de changee les valeurs et voir si ca s’affiche correctement. Merci a vous

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Il faut que t soit la discrétisation d'un intervalle allant de 0 à 6*pi. Reportez vous à la notice de linspace pour voir comment on est censé construire cela (la notice, c'est le réflexe à avoir quand on apprend!):

    https://docs.scipy.org/doc/numpy/ref....linspace.html

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