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
Version imprimable
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,
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:
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,
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:[mm,pos]=max(c);
quelqu'un peut m'aider ?
j'ai essayé
j'obtiens totalement un autre choseCode: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 resultatCode:
1
2
3 k=max(c); [maxloc,loc]=findpeaks(k); plot(loc,maxloc)
merci
Bonjour,
Tu as lu le commentaire de Winjerome ? Tapes
puisCode: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: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.
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,