MATLAB: Time between excitation wave and received waves

dumpingexcitationfrequentlyMATLABperiodspeedtimewavelengthwaves

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

Best 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.
.