Auto or cross correlation for synchronisation in MATLAB
Mostly it is a very simple task. Here is the example for shifted sinusoid:

t = linspace(0,6*pi,1000); % time vector for sinusoid
s = [zeros(1,100), sin(2*pi*t), zeros(1,100)];  % original signal
shift = 30; % we are shifting our sinusoid 30 bins to the right
ss = [zeros(1, shift) s(1:end-shift)]; % signal shifted
subplot(2,1,1)
plot(s); hold on;
plot(ss, 'r')

[c, lags] = xcorr(ss, s); % get the cross-correlation together with lags
subplot(2,1,2)
plot(lags, c)

pred_shift = lags(c==max(c)); % calculated the shift from maximum value of cross-correlation


The output is: 30 and you can use it to shift back the signal ss. In your case of engine signals it will be analogous.