2017-01-05 10 views
0

У меня есть два сигнала, которые связаны друг с другом и были захвачены двумя различными измерительными устройствами одновременно. Поскольку два измерения не синхронизированы во времени, между ними есть небольшая временная задержка, которую я хочу рассчитать. Кроме того, мне нужно знать, какой сигнал является ведущим.Найти временной сдвиг двух сигналов с использованием взаимной корреляции

Ниже можно считать:

  • нет или только очень меньше шума, присутствующего
  • скорость алгоритма не является проблемой, только точность и надежность
  • сигналы фиксируются с высокой частотой дискретизации (> 10 кГц) в течение нескольких секунд
  • ожидается время задержки < 0.5с

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

Пожалуйста, дайте мне знать, если я предоставил дополнительную информацию, чтобы найти наиболее подходящий алгоритм.

+0

Может быть, вы получите лучшую поддержку здесь: http://dsp.stackexchange.com – ppasler

+0

@ppasler Спасибо за подсказку, но я больше заинтересован в алгоритмах и годных к употреблению Python вместо схемы обработки сигналов. – Rickson

ответ

3

Numpy имеет функцию correlate, которая соответствует вашим потребностям: https://docs.scipy.org/doc/numpy/reference/generated/numpy.correlate.html

+0

Спасибо за подсказку. Я решил использовать алгоритм простого спуска, как показано здесь: [Оценка небольшого сдвига времени между двумя временными рядами] (http://stackoverflow.com/questions/13826290/estimating-small-time-shift-between-two-time-series) – Rickson

+0

@ Rickson вы могли бы разместить свое решение с образцом кода, возможно, и принять этот ответ. – ppasler

+0

В основном я использовал код, указанный в @Hooked по ссылке, упомянутой выше. – Rickson