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
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
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;
Partager