
How to find starting point of one signal in another?
8 views (last 30 days)
Show older comments
I have 2 signals that have the same sampling frequency (100 Hz), but one began recording before the other. I'm trying to find the size of this delay (# of indices/sample points) so I can align the signals.
I have tried using the 'alignsignals' function, but the delay it gives me is clearly to big, and when I manually try to find a matching point in the two signals and subtract one from the other to find the delay, it still doesn't seem to give me an accurate delay. I've also tried using xcorr but it's giving me the same delay as the alignsignals function whic again, seems to big.
Does anyone have any suggestions or know what I might be doing wrong? Signals attached.
Thank you.
3 Comments
Adam Danz
on 10 Jan 2020
Edited: Adam Danz
on 10 Jan 2020
"you'll see that visually the signals look the same "
I admitt that I haven't zoomed in to the data but when I plot the data on the same axes so we get a sense of scale, it's hard to imagine that the signals will look the same, even if I imagine that one is shifted relative to the other. As I mentioned before, the vicon data are magnitudes larger than the task data.
clf()
plot(task_left_foot,'b-')
hold on
plot(vicon_left_foot, 'r-')

They are both labeled "left_foot". Could it be that the wrong data were attached?
Answers (1)
Pablo Fernandez
on 22 Jan 2020
load('task_left_foot.mat');
load('vicon_left_foot.mat');
findsignal(vicon_left_foot,task_left_foot)

2 Comments
Pablo Fernandez
on 22 Jan 2020
Good to hear you solved your problem. I did notice that alignsignals gives a different, less correct answer.
See Also
Categories
Find more on Measurements and Feature Extraction 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!