Exact Arrival Times from simulations Answered
When I simulate my grain structure in OnScale.
I am looking at through transmission with an array set up. I am cross correlating the input signal with the simulated signal. I then perform a Hilbert transform of the cross correlation and then take the envelope of the Hilbert transform. I then use the peak value of the envelope as my arrival time.
However, I believe this might be causing some errors and I need this to be accurate as possible. I have seen the zero crossing method been mentioned and wondering if this is a better option. If so, what location of zero crossing would give me the arrival time.
Or if there are any other methods anyone knows or has successfully completed, the share of knowledge would be appreciated.
Thanks
Dave :)
4 comments
It really depends on your signal and the propagation structure of your setup. If you have multipath interference where some propagation modes arriving before the mode you are interested in, you would have to be mindful of that. Overall however, zero crossing is a good approach especially when the pulse you are interested in is the first to arrive. In this case, you will first need to remove the dc component of your signal and then take the first zero crossing before some threshold, where the threshold could be fixed or variable (proportion of peak for example).
Be mindful that time obtained through zero crossing has an offset. You might want to compensate for this.
Hi Tapiwa
How would I remove the DC part of the signal and how do you compensate for the offset? Do you have any basic Matlab examples of doing this. I would really like to do this and compare these results to the cross correlation method I have currently done.
Thanks
Dave :)
Hi Dave,
You can remove the DC component crudely, by subtracting the mean of your signal from your signal or even better, passing your signal through a high pass filter. Choose a cutoff near to your lower side of your signal bandwidth, but not so near as to distort your signal. With regards to the offset, this is a feature of all time of flight methods. Compensation is done by evaluating the time difference between your evaluation point on your measurement signal and the same point on your outgoing signal.
Unfortunately I do not have any MATLAB examples for doing this.
Thanks for the advice, really appreciated.
Dave :)
Please sign in to leave a comment.
Didn't find what you were looking for?
New post