salut
mon problème est que j'ai un signal qui est l'enveloppe d'une transformée en ondelettes d'un signal original et je veux calculer les max de cette enveloppe (entourés dans le graphe) et je n'ai pas d'idée, si quelqu'un peut m'aider
merci
salut
mon problème est que j'ai un signal qui est l'enveloppe d'une transformée en ondelettes d'un signal original et je veux calculer les max de cette enveloppe (entourés dans le graphe) et je n'ai pas d'idée, si quelqu'un peut m'aider
merci
Salut,
Petite idée : repère tous les max de ton signal, et retiens leurs indices. Puis tu reconstruis une nouvelle courbe ne contenant que ces max, et tu cherches tous les max de cette nouvelle courbe, avec les indices correspondants à ceux de la première courbe : tu obtiendras ce que tu cherches je pense (avec peut-être un problème d'effet de de bord à régler).
Autre idée : tu filtres les HF et tu reconstruis une nouvelle courbe ne contenant que la fréquence qui t'intéresse, et tu cherches les max de cette courbe. D'après moi tu obtiendras un moins bon résultat avec cette méthode, mais elle est théoriquement plus intelligente.
Cordialement,
Je ne réponds pas aux MP techniques. Le forum est là pour ça.
La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3
salut
merci beaucoup tachmou,
je ne maitrise pas bien MATLAB, si vous voulez m'aider en appliquant votre idée sur l'exemple suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 N=1024; f0=3e6; % freq de sortie du transducteur Fe=10*f0; %fréquence échantillonnage Te=1/Fe; % période échantillonnage t=(0:N-1)'.*Te; %L'intervalle du temps s=randn(1024); c = cwt(s,1:32,'morl','plot'); xmax=max(c); plot(t,xmax), legend('envloppe'),,xlabel('temps(s)'),ylabel('Amplitude');
Salut,
Je veux bien t'aider, mais je n'ai pas envie de faire le travail à ta place. Je te laisse me proposer ici des tentatives de codes, je te guiderai pour corriger ce qui ne va pas. Et si tu n'arrives pas à écrire ne serait-ce qu'une ligne, dis où tu bloques, et on te guidera pas à pas.
Cordialement,
Je ne réponds pas aux MP techniques. Le forum est là pour ça.
La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3
salut;
merci tachmou,
je vais commencer pas à pas
repérer les max de la courbe veut dire:
Et après comment tracer la courbe des max ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part [mm,pos]=max(c);
quelqu'un peut m'aider ?
j'ai essayé
j'obtiens totalement un autre chose
Code : Sélectionner tout - Visualiser dans une fenêtre à part plot(pos,mm)
Tu as regardé les valeurs de mm et pos ? Là tu ne repères qu'UN maximum qui est le maximum de la courbe.
Hola on ne va pas plus vite que la musique !
Commence donc par les repérer
Je t'invite à effectuer une recherche sur le forum, cette recherche de maximums a été abordée plusieurs fois.
j'ai essayé ce code
et j'aurai de resultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 k=max(c); [maxloc,loc]=findpeaks(k); plot(loc,maxloc)
merci
Bonjour,
Tu as lu le commentaire de Winjerome ? Tapes
puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part help max
dans la console. Et lis les premières lignes. Que fait "max" ? Il repère "the largest element" d'un vecteur... Donc, il te renvoie LE maximum... et non les maximum locaux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part doc max
Première étape donc : commence par réfléchir à comment repérer les maximums locaux. Tu trouveras des réponses dans le forum. Cherches un peu.
Cordialement,
ps. : je ne réponds pas aux MP techniques... je ne l'ai pas précisé dans ma signature encore, mais je vais le faire de ce pas.
Je ne réponds pas aux MP techniques. Le forum est là pour ça.
La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3
bonjour,
j'ai utilisé le code matlab 'findpeaks' et j'aurai ce que je cherche, j'ai trouver les max locaux, maintenant je veux essayer la methode de filtre proposé par tachmou, et j'ai pas compris qu'est ce que je filtre -document sur ça-
Bonjour,
Je ne l'ai jamais réellement fait moi-même... Mais en gros, tu fais une analyse fréquentielle pour repérer les hautes fréquences (HF) et les basses fréquences de ton signal. Une fois que c'est fait, tu reconstruit un signal possédant la forme des basses fréquences uniquement et passant au plus près de ta courbe de départ. (cette étape vas te permettre de supprimer le bruit)
Tu pourras ainsi chercher les maximums de ta courbe, sans faire un deuxième passage.
Tu n'obtiendras pas le même résultat qu'avant, puisque tu n'obtiendras pas les maximum "pur" étant donné que tu obtiendras les maximums "moyens" si on peut dire... en tout cas tu obtiendras des maximums beaucoup plus faibles qu'avant.
Je ne suis pas un spécialiste du signal, donc je pourrais pas t'aider beaucoup plus que ça... Mais cela aura peut-être plus de sens physique, je ne sais pas d'où tu tires ton signal...
Cordialement,
Je ne réponds pas aux MP techniques. Le forum est là pour ça.
La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager