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 :

convolution de signaux


Sujet :

Signal

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Points : 90
    Points
    90
    Par défaut convolution de signaux
    Bonjour,
    mon problème est peut être plus mathématique que matlabique, n'hésitez pas si c'est le cas!!

    Voila, j'ai un signal de référence Ir fonction de la longueur d'onde l (c'est le résultat d'une mesure avec un détecteur qui est une matrice CCD constituée de n*m pixels) qui présente des pics à certaines longueurs d'onde.
    Avec le temps, mon détecteur s'est détérioré et l'assignation en longueur d'onde de chaque pixel est légèrement décalé.
    Ainsi, quand je trace le résultat de mesures récentes I, il y a un décalage de ces pics qui ne sont plus à la bonne longueur d'onde.

    Pour chaque mesure, le décalage diffère (il peut être positif ou négatif). On me dit que pour "recaler" mes mesures selon la référence, il faut convoluer le signal récent (I) par le signal de référence (Ir).
    Quelqu'un connait il cette méthode? Quelqu'un sait comment l'implémenter en matlab?
    merci

  2. #2
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Salut,
    la convolution de signaux se fait sous Matlab tout simplement avec la fonction conv. Tu cherches le pic de la fonction de convolution (= pic de correlation) pour chercher le décalage entre ta fonction de référence et ta mesure.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    Merci flb pour ta réponse,
    ainsi, quand je vais faire la commande
    je vais obtenir un pic? et après? comment je récale mon signal I?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    je ne m'en sors pas !! help me please.

    Je convolue mon signal (I de dimension 1*520) avec un signal de référence (Ir de même dimension):
    y = conv(I,Iref)

    et j'obtiens une fonction triangle. Je fournirai bien une figure mais j'ai quelques problèmes avec le forum ce matin!!!)

    Il me manque quelques notions pour comprendre tout ça! Comment utiliser ce pic pour recaler correctement mon signal I ?

    Merci de m'aider

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    Ci joint, les signaux à recaler et le résultat du produit de convolution
    Nom : ConvoT.jpg
Affichages : 1680
Taille : 81,6 KoNom : convoResul.jpg
Affichages : 1731
Taille : 16,3 Ko

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour,

    Je n'ai pas bien saisi ce que tu désires faire, recaler par rapport à leur ordonnées?
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  7. #7
    Membre régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Points : 111
    Points
    111
    Par défaut
    J'hésite à intervenir parce que je n'ai pas la solution.

    Le triangle ressemble a ce qui est discuté ici : http://www.developpez.net/forums/d14...signaux-xcorr/. Il dit que la similarité est maximale pour un décalage temporel de zéro, ce qui est évident.

    En ce qui concerne les maths, on peut dire que T est la convolution de Tref par le système perturbateur (la fonction qui a décalé les longueurs d'ondes) dont Tref serait l'entrée et T la sortie. C'est donc un problème de convolution ou "problème inverse". Connaissant la sortie T, quelle était Tref? C'est ce qu'on fait en déconvoluant une image par la fonction de point d'une optique pour supprimer les aberrations. La fonction de décalage des lambda est la fonction de transfert de ce système, et si on l'appelle F

    T = F * Tref, soit Tref = T/F

    Lors des nouvelles mesures, on divisera par F pour supprimer l'effet de la perturbation. J'ai du mal à trouver l'expression de la fonction de transfert dans votre cas. Je sèche pour le moment.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    Merci de vous intéresser à mon problème.

    Je vais essayer de me faire mieux comprendre: le signal Tref est la référence. On y trouve des pics qui sont placés exactement là ou il faut (en fonction de x qui est en fait une longueur d'onde en nm - il s'agit de la bande d'absorption de O2).
    Avec le temps, le détecteur a cvieilli et on observe un décalage en longueur d'onde: les pics ne sont plus exactement là ou ils devraient être.
    Pour une même mesure, ce décalage n'est pas identique, d'ou la (dé)convolution.
    Comment donc déconvoluer avec matlab?
    Encore merci

  9. #9
    Membre régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Points : 111
    Points
    111
    Par défaut
    Tentez [q,r] = deconv (Tref, T)

    La documentation MATLAB nous dit qu'alors

    Tref = conv (T, q) + r

    Ce qui signifie qu'on a remonté au signal de référence Tref à partir des données perturbées T (à supposer que le reste r soit "petit" sinon il contient toute l'information et on n'est pas avancés). On n'a fait que considérer la perturbation comme un système, l'inverser, puis appliquer ce filtre inverse à la mesure perturbée pour retrouver la mesure non perturbée.

    Ca marche toujours merveilleusement sur des exemples synthétiques, mais ça foire lamentablement sur des signaux réels à cause du bruit ou des infinis qui apparaissent lors de la division. Je serais étonné que ça vous donne quelque chose d'exploitable.

    L'identification d'un système est difficile (si vous avez la System Identification Toolbox de MATLAB, ça peut être une piste à explorer). Je me demande si une analyse physique des perturbations ne serait pas plus productive. Pourquoi les raies ont-elles été décalées? Peut-on modéliser cette dérive?

    Je ne vais pas pouvoir vous être plus utile.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    Merci pour tona ide Jyber,
    voyez la figure ci-dessous.
    Je recale le signal rouge (noté T ci dessous) par rapport au bleu (noté Tref) et j'obtiens le signal en noir (noté Trecale) en faisant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [q,r]=deconv(Tref,T);
    Trecale=T+r;
    le q obtenu est un scalaire! je m'attendais à obtenir un vecteur de la même taille que Tref et T, non? r est quant à lui, un vecteur de la même taille que Tref et T.
    Le signal obtenu en noir semble plutôt être le signal de référence (en bleu) décalé suivant l'axe des y pour "être au niveau du rouge".
    J'aurais bien sûr préféré décalé le signal rouge parallèlement à l'axe des abscisses pour que mes nouveaux pics (en noir) soient alignés en x avec ceux de référence (les bleus)
    Il y a un problème!! quelqu'un saurait m'aider?
    MerciNom : dec.jpg
Affichages : 1608
Taille : 94,4 Ko

Discussions similaires

  1. [Débutant] Convolution signaux
    Par Maximus7898520 dans le forum Signal
    Réponses: 4
    Dernier message: 19/10/2012, 12h39
  2. Convolution de signaux
    Par chineserubbers dans le forum Signal
    Réponses: 2
    Dernier message: 10/05/2008, 23h41
  3. Masque de convolution
    Par el toro diablo dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 09/05/2007, 15h06
  4. [Amstrad] Signaux à gérer port E/S pour lire ROM
    Par Masterglob dans le forum Autres architectures
    Réponses: 7
    Dernier message: 12/01/2005, 12h03
  5. convolution et altivec
    Par ronan99999 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 31/07/2003, 15h08

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