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 :

Maximum de convolution et décalage


Sujet :

Signal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 16
    Par défaut Maximum de convolution et décalage
    Bonjour,

    voilà j'ai dans 2 vecteurs mon signal réel mesuré dans le temps par mon capteur et dans le second le modèle théorique. Ces deux signaux sont légèrement décalés et je cherche donc à les recaler. Pour ce faire, j'utilise la convolution et je relève l'indice du maximum de convolution. Voici mon algorithme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for i=1:nb_jour
        data(i,:) = donnee(start:stop,1); % données sur 1 journée
        ref(i,:) = reference(start:stop,1); % modèle théorique sur 1 journée
        c(i,:) = cconv(data(i,:),ref(i,:),1440); % calcul de la convolution circulaire
        m = max(c(i,:)); % détection du maximum de convolution
        id = find(c(i,:) == m); % recherche de l'indice du maximum de convolution
        start = start + 1440;
        stop = stop + 1440;
    end
    Maintenant que j'ai l'indice du maximum de convolution, je sais de combien d'échantillon il faut que je décale mon signal pour qu'il soit correctement calé par rapport à la courbe théorique. Mon problème: comment faire ce décalage circulairement, je veux dire que si je décide de décaler mes données de 3 échantillons vers la "gauche" (du vecteur), les 3 premiers échantillons se retrouvent à la fin du vecteur mais toujours dans le bon ordre?

    Voici un exemple de courbes que je dois recaler:


    merci par avance de votre aide,
    Adrien

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

    Tu peux utiliser la fonction doc circshift.

    Remarque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m = max(c(i,:)); % détection du maximum de convolution
        id = find(c(i,:) == m);
    peut être remplacé par
    Voir la Comment trouver la valeur minimale (ou maximale) avec sa position ? pour plus de détails

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 16
    Par défaut
    merci, j'ai réussi à le faire fonctionner .
    Au final j'ai préféré utiliser la corrélation croisée xcorr() pour effectuer la comparaison plutôt que cconv() ou conv().

    Maintenant mon problème est que lorsque mon signal réel est très semblable à la cloche de référence, je retrouve correctement le décalage entre les 2 courbes. En revanche, dès qu'il y a un peu trop de différences (par exemple une demi cloche), cette méthode ne marche absolument pas...

    Avez-vous d'autres idées à me proposer pour que je puisse correctement recaler mes données par rapport au modèle? D'autres méthodes à part la corrélation et la convolution auxquelles je n'aurais pas pensé? Vu la quantité de données que j'ai à traiter, j'aimerai autant "automatiser" cette tâche plutôt que devoir traiter "manuellement" ces données une par une et les affichant et les recalant à vue...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupération du maximum
    Par delicatessen2 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 15/09/2003, 15h10
  2. Réponses: 14
    Dernier message: 01/09/2003, 23h46
  3. [Tableau] taille maximum
    Par vasilov dans le forum C
    Réponses: 15
    Dernier message: 01/08/2003, 11h52
  4. convolution et altivec
    Par ronan99999 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 31/07/2003, 16h08
  5. Décalage graphique et souris
    Par Sub0 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 27/06/2003, 10h44

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