Перейти к содержанию
    

Найти разность фаз одинаковых сигналов

Добрый день!

Есть 128 выборок сигнала и эталона. 128 выборок является периодом. Необходимо вычислить сдвиг по фазе 2 сигналов. Как это сделать без перебора?

 

post-38859-1518007259_thumb.png

 

На графике пример 2 сигналов с 36 выборками. Если 36 выборок я могу обработать методом перебора (сдвиг на 1 и сравнение сигналов), то 128 занимает в 10 раз больше времени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ключевое слово для гугля будет "вычисление корреляционной функции через преобразование Фурье".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ключевое слово для гугля будет "вычисление корреляционной функции через преобразование Фурье".

Правильно ли я понял, что предлагаете посчитать корреляцию эталона (один раз) и фактического сигнала с синусом и косинусом основной гармоники и по ним считать разность фаз?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Преобразование фурье ведь вычисляет фазовый спектр. Вот и найти фазу первой гармоники.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильно ли я понял, что предлагаете посчитать корреляцию эталона (один раз) и фактического сигнала с синусом и косинусом основной гармоники и по ним считать разность фаз?

нет,

произведению сигналов в частотной области соответствует свертка сигналов во временной области

но даже для 128 отсчётов сделать три (два на самом деле, эталон можно посчитать один раз заранее) преобразования Фурье, хоть и быстрых, в зависимости от того на чём считается, может оказаться не быстрее прямого вычисления корреляции.

через Фурье выигрыш будет для более длинных выборок.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет,

произведению сигналов в частотной области соответствует свертка сигналов во временной области

но даже для 128 отсчётов сделать три (два на самом деле, эталон можно посчитать один раз заранее) преобразования Фурье, хоть и быстрых, в зависимости от того на чём считается, может оказаться не быстрее прямого вычисления корреляции.

через Фурье выигрыш будет для более длинных выборок.

зачем полное Фурье? Достаточно посчитать корреляцию два раза (по синусу и по косинусу).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зачем полное Фурье? Достаточно посчитать корреляцию два раза (по синусу и по косинусу).

какой частоты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какой частоты?

Частоты основной гармоники сигнала и основной гармоники эталона. Они ведь равны, эти частоты, если верить графику из первого поста?..

 

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

 

PPS. И соглашусь, выигрыша по количеству вычислений этот метод не даст..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильно ли я понял, что предлагаете посчитать корреляцию эталона (один раз) и фактического сигнала с синусом и косинусом основной гармоники и по ним считать разность фаз?

Если у меня период равен 128 выборкам, то период основной гармоники тоже равен 128? Предложение понравилось, это ускорит вычисления, только будет ли это работать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предложение понравилось, это ускорит вычисления, только будет ли это работать?

Работать будет, если научитесь быстро вычислять арктангенс и делить комплексные числа. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

PPS. И соглашусь, выигрыша по количеству вычислений этот метод не даст..

По сравнению с идеей 128 раз сравнивать эталон с реальным сигналом (см. первое сообщение)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По сравнению с идеей 128 раз сравнивать эталон с реальным сигналом (см. первое сообщение)?

Судя по графику из первого поста, нет необходимости делать сравнение все 128 раз.

 

Во-первых, можно взять лишь один период эталонного сигнала и искать совпадение с этим укороченным эталоном и на укороченном интервале.

Это, ессно, в том случае, если на интервале в 128 точек укладывается несколько периодов эталонного сигнала.. /См. рис./

 

Во-вторых, если уровень шума невелик, то можно сузить поиски, предварительно найдя характерные точки в принятом сигнале. ;)

 

Например, если с достаточно грубой точностью определить точку перехода сигнала через нуль, то поиски эталона можно сузить интервалом плюс-минус десять точек от этого нулевого значения.

 

Зачем искать сигнал там, где заранее известно, что его нет? :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во-первых, можно взять лишь один период эталонного сигнала и искать совпадение с этим укороченным эталоном и на укороченном интервале.

Это, ессно, в том случае, если на интервале в 128 точек укладывается несколько периодов эталонного сигнала.. /См. рис./

Вы наверное не поняли задачу. Все получаемые сигналы и все эталоны имеют один и тот же период 128 выборок. Если сигнал и эталон совпадают, они могут отличаются только сдвигом на n количество выборок (0-127).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы наверное не поняли задачу. Все получаемые сигналы и все эталоны имеют один и тот же период 128 выборок. Если сигнал и эталон совпадают, они могут отличаются только сдвигом на n количество выборок (0-127).

Даже если и так, никто не мешает сделать сначала грубый поиск по 16-ти точкам отстоящим друг от друга на 8 выборок, а потом уточнить сдвиг между сигналами вычисляя корреляцию уже для всех 128-ми точек и для сдвигов на максимум 8 точек влево и вправо относительно найденной грубой оценки искомой точки.

 

Все, конечно, зависит от уровня шума и спектров обоих сигналов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Даже если и так, никто не мешает сделать сначала грубый поиск по 16-ти точкам отстоящим друг от друга на 8 выборок, а потом уточнить сдвиг между сигналами вычисляя корреляцию уже для всех 128-ми точек и для сдвигов на максимум 8 точек влево и вправо относительно найденной грубой оценки искомой точки.

 

Все, конечно, зависит от уровня шума и спектров обоих сигналов.

Это хорошее предложение, но проблема в том что в сигнале может быть шум и по такому методу можно пропустить нужный сигнал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...