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

MATLAB Discussion :

Série de Fourier


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut Série de Fourier
    Bonjour à tous,

    Je suis débutant en matlab et je dois créer une boucle for permettant de calculer des série de Fourier. Je pense qu'une fonction existe pour ça mais je ne dois pas m'en servir (de toute façon je ne l'ai même pas vue en classe). Mon problème est le suivant. Quand je crée une série en la tapant tout simplement dans matlab je n'ai pas le même graphique qu'avec la boucle for.

    Voici les codes

    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
    a0=pi^3/3
    a=[-4 1 -4/9], Q=length(a)
    b=zeros(1,10), R=length(b)
        for k=1:1:Q
           x=linspace(0,15,500)
           y1=a(k)*cos(k*x)
     
     
        end
     
        for i=1:R
            y2=sin(k*x)
        y=a0+y1+y2
        end
              plot(x,y)
        pause
    Et sans la boucle

    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
    a0=linspace(0,15,500);
    a0=pi^3/3 ;
    a=[-4 1 -4/9];
    b=zeros(1,10);
     
    x=linspace(0,15,500);
    y= a0;
    plot(x,y)
    pause
     
    y1=y+a(1)+a(1)*cos(x)+b(1)*sin(x);
    plot(x,y1)
    pause
    y2=y1+a(2)*cos(2*x)+b(2)*sin(2*x);
    plot(x,y2)
    pause
     
    y3=y2+a(3)*cos(3*x)+b(3)*sin(3*x)
    plot(x,y3)
    pause
     
    plot(x,y,x,y1,x,y2,x,y3)
    pause
    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Quel est l'interet de recalculer la valeur de y1 et y dans ces boucles ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ...
    ...
    for k=1:1:Q
           x=linspace(0,15,500)
           y1=a(k)*cos(k*x)
        
     
        end
        
        for i=1:R
            y2=sin(k*x)
        y=a0+y1+y2
        end
    Peut être y1(i) et y(i) !!
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    oui je m'en suis rendu compte après avoir posté le message et j'ai sorti y=a0+y1+y2 de la boucle.
    Seulement même après l'avoir sorti ça ne marche quand même pas...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par adri010 Voir le message
    oui je m'en suis rendu compte après avoir posté le message et j'ai sorti y=a0+y1+y2 de la boucle.
    Seulement même après l'avoir sorti ça ne marche quand même pas...
    qu'es ce qui ne marche pas exactement?
    j'ai du mal a voir se que tu cherches et se que tu n'arrive pas....

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    Je ne m'explique simplement pas les différences de valeurs obtenues sans et avec la boucle (cf mon 1er post pour le code sans la boucle)...Maintenant c'est peut être bête comme différence (si il y en a une) mais en tout cas je ne la vois pas.

    Normalement les graphes devraient être pareils...je pense

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    Bonsoir à tous,

    Je me permets de upper ce post car je dois faire un nouvel un nouvel exercice sur les séries de fourier (et vous vous en doutez j'ai besoin de votre aide).

    Je dois maintenant créer deux fonctions, l'une pour calculer les coefficients des n premières approximations d'une fonction et l'autre pour afficher. Pour m'aider, j'ai repris mon code sans fonctions (qui fonctionne maintenant parfaitement) et j'ai essayé de le modifier pour l'intégrer dans des fonctions mais sans grand résultat.

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function [a0,a,b]=coeffSFf1 (n)
    b=zeros(1,20)
    a0=pi^3/3
    n=20
    for k=1:1:n
        a(k)=4*(-1)^k/(k^2);
    end
    et pour la visualisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function y=visualtest(a0,a,b)
    x=linspace (-20,20,500);
    y=a0;
    plot (x,y)
    hold on
     
     
    for k=1:1:20
        y=y+a(k)*cos(k*x)+b(k)*sin(k*x);
        plot(x,y)
        pause
    end
    Merci beaucoup!

  7. #7
    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 : 39
    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,

    Et quel est ton problème exactement?

    Bonne journée,
    Duf
    Simulink & Embedded Coder

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

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Mes deux fonctions ne fonctionnent pas... Je voudrais savoir quelles sont les choses à corriger. J'ai pourtant repris le code sans fonctions que j'avais fais et qui lui, fonctionne mais lorsque je l'intègre dans une fonction qui calcule les différents coefficients et une qui permet la visualisation du graphique plus rien ne va.

    Merci

Discussions similaires

  1. [Débutant] Transformée et série de Fourier
    Par Leneris dans le forum Signal
    Réponses: 8
    Dernier message: 07/12/2011, 22h57
  2. Calcul de moyenne et de série de Fourier
    Par Lerenard1984 dans le forum Signal
    Réponses: 1
    Dernier message: 27/04/2009, 13h26
  3. La série de Fourier
    Par bahiatoon dans le forum Traitement du signal
    Réponses: 11
    Dernier message: 05/01/2009, 00h10
  4. outils de lecture sonor / série de fourier
    Par sunmat dans le forum Traitement du signal
    Réponses: 2
    Dernier message: 17/02/2008, 01h07
  5. Série de Fourier
    Par topper-harley dans le forum LabVIEW
    Réponses: 4
    Dernier message: 23/01/2008, 11h48

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