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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    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 Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    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) !!

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    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 éprouvé
    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
    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 averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    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 averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    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!

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, 21h57
  2. Calcul de moyenne et de série de Fourier
    Par Lerenard1984 dans le forum Signal
    Réponses: 1
    Dernier message: 27/04/2009, 12h26
  3. La série de Fourier
    Par bahiatoon dans le forum Traitement du signal
    Réponses: 11
    Dernier message: 04/01/2009, 23h10
  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, 00h07
  5. Série de Fourier
    Par topper-harley dans le forum LabVIEW
    Réponses: 4
    Dernier message: 23/01/2008, 10h48

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