Algorithm to identify certain peaks at certain loation is a graph
1 view (last 30 days)
Show older comments
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 Comments
Accepted Answer
Kevin Holly
on 17 Aug 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 Comments
Kevin Holly
on 17 Aug 2022
Edited: Kevin Holly
on 17 Aug 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")
More Answers (0)
See Also
Categories
Find more on Biomedical Imaging in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!