Problème de programmation

Résolu
Lebourdais2003 -  
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Comment fait-on sur Python pour faire la somme de deux signaux sinusoïdaux.
Moi j'ai mis ça.
# Définition d'une fonction sinusoïdale y1 d'après les paramètres au dessus
for i in range(len(t)):
    y1.append(A1*np.cos(2*pi*f*t[i]))
# Définition d'une fonction sinusoïdale y2   
for i in range(len(t)):
    y2.append(A2*np.cos(2*pi*f*t[i]+phi))
# Définition d'une fonction sinusoïdale y3   
for i in range(len(t)):
    y3.append(y1+y2)    

Mais lorsque je fais la simulation la fonction y2 et y3 sont superposées?
Est ce normal ?
Merci.

7 réponses

  1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Bonjour,

    "Comment fait-on sur Python pour faire la somme de deux signaux sinusoïdaux."

    Mais déjà, sans parler de Python, comment fais-tu ça sur le papier ?

    La méthode que tu montres est-elle correcte ?
    0
    1. Lebourdais2003
       
      je n'ai compris
      0
  2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Sans parler de coder ça dans un langage de programmation,

    comment fait-on la somme de 2 signaux sinusoïdaux ?
    0
    1. Lebourdais2003
       
      je ne sais pas
      0
  3. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Ah ?

    Mais alors, il sort d'où ce code ?

    C'est toi qui l'as écrit ?
    0
    1. Lebourdais2003
       
      oui c moi qui l'a écrit notre prof nous avait donnée la formule pour y1
      0
      1. Lebourdais2003 > Lebourdais2003
         
        c moi qui est marquer pour y2 et y3 mais je ne suis pas sûre pour y3
        0
  4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    as-tu ajouté des print() pour comprendre ce que fait ton programme?
    il fait ce que tu lui demandes, pas ce que tu imagines.
    pourquoi as-tu choisi de faire trois boucles?
    0
    1. Lebourdais2003
       
      <code python>#Caractéristiques des signaux
      A1 = 2 #Amplitude du signal 1
      A2 = 2 #Amplitude du signal 2

      f=50 # On fixe la fréquence f = 1/T = 50 Hz

      phi= pi/2 # Phase de l'onde y2

      y1,y2,y3 = [],[],[]
      ####################################
      # Création des fonctions sinusoïdales
      ####################################
      # Définition d'une fonction sinusoïdale y1 d'après les paramètres au dessus
      for i in range(len(t)):
      y1.append(A1*np.cos(2*pi*f*t[i]))
      # Définition d'une fonction sinusoïdale y2
      for i in range(len(t)):
      y2.append(A2*np.cos(2*pi*f*t[i]+phi))
      # Définition d'une fonction sinusoïdale y3
      for i in range(len(t)):
      y3=(y1[i]+y2[i])<code python>

      J'ai modifié
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Lebourdais2003
         
        et cela marche?
        ce serait plus simple avec une seule boucle
        for i in range(len(t)):
            c1= ...
            c2= ...
            y1.append(...)
            y2.append(...)
            y3.append(...)
        0
      2. Lebourdais2003 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Mais comment on additionne.du signaux ??
        0
      3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Lebourdais2003
         
        comment fait-on une addition en python?
        0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      quel est la partie de code donnée par le prof?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    On en revient toujours à la même question:

    Comment ferais-tu si tu écrivais la formule sur un papier ?

    Quelle est l'opération à effectuer pour faire la somme de 2 signaux ?

    Et tu t'es trompé avec les balises de code, l'affichage n'est pas celui attendu ...
    0
    1. Lebourdais2003
       
      J'ecrirais la formule de y1 + celle de y2
      0
  7. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    ok, mais tu a mal mis les balises de code

    mode d'emploi:
    https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

    Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :

    def test():
        print('test')
    
    test()
    


    for i in range(len(t)): 
    t n'est pas défini ! et np non plus
    0
    1. Lebourdais2003
       
      Si au dessus je ne l'ai juste pas mis
      0
  8. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    donc on ne peut pas tester ton programme, il manque t et np ...

    sinon, tu as compris pour les balises ?
    0