Оценка времени полета с использованием взаимной корреляции

Я делаю эксперимент, чтобы найти фазовую скорость материала методом сквозной передачи. У меня есть два полученных сигнала на разном расстоянии в виде CSV-файлов. Вы можете увидеть рисунки ниже;

received_1 receivedd_2

Я хочу использовать метод кросс-корреляции, чтобы найти время полета. Я использовал код Matlab для кросс-корреляции, который приведен ниже:

 clc
  clear all

 % received signal 1
   data = read_tektronix_csv('TEK0058.CSV');
   plot(data.time, data.values)
   s1=data.values;

%received signal 2
   data = read_tektronix_csv('TEK0059.CSV');
   plot(data.time, data.values)
   s2=data.values;

   [acor,lag] = xcorr(s1,s2);
   Fs=1E9;

[~,I] = max(abs(acor));
lagDiff = lag(I)
timeDiff = lagDiff/Fs

figure
plot(lag,acor)

Этот код Matlab дал мне 3,17E-7 секунды как время полета. Истинное время полета должно быть 4.881E-5.

Как видно на рисунке ниже, взаимная корреляция была получена из двух полученных сигналов.

введите описание изображения здесь

Есть ли проблема в алгоритме кода?

Спасибо.

0 ответов

Другие вопросы по тегам