Time between excitation wave and received waves

If I have graph of voltage vs time for the excitation signal and the received signal for a material...how do I calculate the time it takes for the wave to move from one side of the material to the other side.. the blue signal is the excitation then the orange signal is the received one

2 Comments

can you provide an image or data so we can see the excitation signal and the resulting signal?
attached is the figure ... thye blue signal is the excitation then the orange one is the received signal

Sign in to comment.

 Accepted Answer

Try this —
F = openfig('sample.fig');
Ax = gca;
Lines = findobj(Ax, 'Type','line')
sent = findobj(Lines,'DisplayName','Excitation Signal');
Xsent = sent.XData;
Ysent = sent.YData;
recd = findobj(Lines,'DisplayName','Received Signal');
Xrecd = recd.XData;
Yrecd = recd.YData;
Ysidx = Ysent>0.01; % Threshold Signal
Yridx = Yrecd>0.01; % Threshold Signal
Yss = find(Ysidx,1,'first'); % First 'true' Index
Yrs = find(Yridx,1,'first'); % First 'true' Index
[istart,istop,dist] = findsignal(Yrecd(Yridx), Ysent(Ysidx));
figure
findsignal(Yrecd(Yridx), Ysent(Ysidx))
grid
figure
subplot(2,1,1)
plot(Xsent, Ysent)
% text(Xsent([istart istop])+Xsent(Yss), [0 0], compose('\\leftarrow t = %8.5E', Xsent([istart istop])+Xsent(Yss)), 'Rotation',90)
title('Sent')
grid
subplot(2,1,2)
plot(Xrecd, Yrecd)
text(Xrecd([istart istop])+Xrecd(Yrs), [0 0], compose('\\leftarrow t = %8.5E', Xrecd([istart istop])+Xrecd(Yrs)), 'Rotation',90, 'Horiz','left', 'Vert','middle')
title('Received')
grid
See the documentation on findsignal for details.
.

4 Comments

Ok thanks, I did that these it gave me these graphs ( attached) .. .. what I actually want is one value ( time ) so that I can calculate the speed of sound through ta certain medium.. if I have the length of the medium then get time from those graphs...I can can calculate the speed of sound though the medium ..
V = t/s ..where t is the thickness and s is the time...
The time the incident (‘Excitation Signal’) began is:
SentStartTime = XSent(Yss);
The interval between that and the first ‘Received Signal’ time is:
Delay = Xrecd([istart istop])+Xrecd(Yrs)) - SentStartTime
Those calculations should produce the desired result with respect to the time differences.
The signals in the second image are not the same as the signals provided. Remember to apply an appropriate threshold, because otherwise the time at zero amplitude will be included.
.
As always, my pleasure!

Sign in to comment.

More Answers (0)

Products

Release

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!