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 :

fonction constante par morceaux


Sujet :

Signal

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 4
    Points
    4
    Par défaut fonction constante par morceaux
    Bonjour,

    J’ai un signal X de longueur 6000
    J’ai fais une fonction qui calcule les valeurs suivantes :
    V=

    652 1363 2950 3575 4357 4689 5024

    Ce que j’ai besoin, c’est de segmenter le signal en traçant une fonction constante par morceaux mise sur le signal X, chaque morceau représente la moyenne du signal entre les points précédents.

    J’ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function [moyenne cte] = constante(X, V);
    N=length(X); 
    N1=length(V);
     for k=1:(N1-1)
         moyenne(k)=mean(X(V(k):V(k+1)));
     end
     
    k=1;
    for k=V(k):V(k+1)
        cte(k)=moyenne(k)  
    end
    end
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Dans le programme principal, j’ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    segment=[min(X):max(X)];
    [moyenne cte] = constante(X, V);
    figure(1);
     hold on;
     plot(X);
     hold on;
     plot(moyenne, '-.g');
    legend('X(t)');
    xlabel('time');
    ylabel('valeur');
    title(sprintf(['figure 1']));
    for i=1:length(V)
        plot(V(i),segment,'b');
    end;
    je vous demande une solution pour tracer une function constante par morceau sur le signal X, et chaque morceau représente la moyenne du signal entre les points du vecteur V. Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    N=length(X);
    V = [652 1363 2950 3575 4357 4689 5024];
    V1 = [1 V N];
     
    N1=length(V1);
    for k=1:(N1-1)
         moyenne(k)=mean(X(V1(k):V1(k+1)));
    end
    figure,hold on
    plot(X)
    stairs(V1,[moyenne moyenne(end)])

Discussions similaires

  1. Interpolation de fonction définie par morceaux
    Par Benmu dans le forum MATLAB
    Réponses: 2
    Dernier message: 17/07/2014, 14h32
  2. fonction affine par morceaux
    Par xavierdestev dans le forum Scilab
    Réponses: 2
    Dernier message: 05/12/2013, 11h55
  3. fonction régulière par morceaux et d'ordre exponentiel
    Par ministeur dans le forum Mathématiques
    Réponses: 3
    Dernier message: 03/04/2012, 19h28
  4. comment tracer une fonction constante par morceau
    Par ghitanany dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/03/2012, 13h17
  5. Réponses: 2
    Dernier message: 08/06/2011, 17h54

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