I have 2 PERFECT data of the transmitter and receiver. From 2 data, I can calculate the delay estimation:

Fs = 8e6 ; % sample rate

…

for i = 1 : 2

[ cc_correlation, lag ] = xcorr ( signal2(i) , signal1 ) ;

[ cc_maximum, cc_time ] = max( abs (cc_correlation ) ) ;

cc_estimation = abs(length(signal1) - cc_time);

delay ( i ) = cc_estimation / Fs ;

end

Then I have the matrix of delays are 11 microseconds and 13.875 microseconds.

The expectation in nanosecond from this function because from the sampling rate, I can see the period time T=1/Fs=125ns. Therefore, the delay should be in nanosecond, not microsecond as I had.

When I call the matlab function above:

[ cc_maximum , cc_time ] = max ( abs ( cc_correlation ) ) ;

It returns the values which are called cc_maximum, and another value cc_time. It is sample data.

What did I do wrong for this algorithm?

My professor also said:”you donâ€™t have function, you have sample version of the function, the xcorr is a waveform of continuous function, they have a maximum in the current of time. When you work with a sample, the waveform you have entire function tell the value of the function you have discrete time”

and I still do not understand what his mean?

I hope someone can help me out.

Thank you.