Algorithm to identify certain peaks at certain loation is a graph
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Shruthimol
le 17 Août 2022
Modifié(e) : Kevin Holly
le 17 Août 2022
I reconstructed the output of an Ultrasound NDT signal. Ive created a set of codes to compare a plots corresponding to a damaged specimen again a healthy specimen. But i am not able to come up with a solution to identify only the peaks below a certain y value and after a certain x value. The required x value corresponds to the value of findchangepts(y).
In the figure peaks.jpg, The region in blue rectangle is insignificant to my analysis and the region on interest is the green. the red rectangle signifies the backwall echo. I used diff(x) and diff(y) to comare the graph but it is not giving reliable results. i'm looking to analyse the data for a presence of back wall echo. Figure 03.jpg shows 2 plots for 2 healthy specimens.

Please suggest me some commands or tools to obtain the results.
Thanks in advance.
0 commentaires
Réponse acceptée
Kevin Holly
le 17 Août 2022
You can get the values and index of the peaks and apply the x and y thresholds as shown below:
plot (x,y,t,D);
[v,idx]=findpeaks(D,MinPeakProminence=0.5);
y_threshold = 10;
idx(v>10)=[];
v(v>10)=[];
x_threshold=500;
v(idx<500)=[];
idx(idx<500)=[];
hold on
scatter(x(idx),v,"r","filled")
2 commentaires
Kevin Holly
le 17 Août 2022
Modifié(e) : Kevin Holly
le 17 Août 2022
plot (x,y,t,D);
[v,idx]=findpeaks(D,MinPeakProminence=0.5);
% Thresholds
xmin_threshold = 1600;
xmax_threshold = 2000;
% Remove below min threshold
v(idx<xmin_threshold)=[];
idx(idx<xmin_threshold)=[];
% Remove above max threshold
v(idx>xmax_threshold)=[];
idx(idx>xmax_threshold)=[];
hold on
scatter(x(idx),v,"r","filled")
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Animation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!