Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Найти разность фаз одинаковых сигналов
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Sergey Krivonosov
Добрый день!
Есть 128 выборок сигнала и эталона. 128 выборок является периодом. Необходимо вычислить сдвиг по фазе 2 сигналов. Как это сделать без перебора?

Нажмите для просмотра прикрепленного файла

На графике пример 2 сигналов с 36 выборками. Если 36 выборок я могу обработать методом перебора (сдвиг на 1 и сравнение сигналов), то 128 занимает в 10 раз больше времени.
Rst7
Ключевое слово для гугля будет "вычисление корреляционной функции через преобразование Фурье".
novikovfb
Цитата(Rst7 @ Feb 7 2018, 18:09) *
Ключевое слово для гугля будет "вычисление корреляционной функции через преобразование Фурье".

Правильно ли я понял, что предлагаете посчитать корреляцию эталона (один раз) и фактического сигнала с синусом и косинусом основной гармоники и по ним считать разность фаз?
ViKo
Преобразование фурье ведь вычисляет фазовый спектр. Вот и найти фазу первой гармоники.
_pv
Цитата(novikovfb @ Feb 8 2018, 11:35) *
Правильно ли я понял, что предлагаете посчитать корреляцию эталона (один раз) и фактического сигнала с синусом и косинусом основной гармоники и по ним считать разность фаз?

нет,
произведению сигналов в частотной области соответствует свертка сигналов во временной области
но даже для 128 отсчётов сделать три (два на самом деле, эталон можно посчитать один раз заранее) преобразования Фурье, хоть и быстрых, в зависимости от того на чём считается, может оказаться не быстрее прямого вычисления корреляции.
через Фурье выигрыш будет для более длинных выборок.
novikovfb
Цитата(_pv @ Feb 8 2018, 11:15) *
нет,
произведению сигналов в частотной области соответствует свертка сигналов во временной области
но даже для 128 отсчётов сделать три (два на самом деле, эталон можно посчитать один раз заранее) преобразования Фурье, хоть и быстрых, в зависимости от того на чём считается, может оказаться не быстрее прямого вычисления корреляции.
через Фурье выигрыш будет для более длинных выборок.

зачем полное Фурье? Достаточно посчитать корреляцию два раза (по синусу и по косинусу).
_pv
Цитата(novikovfb @ Feb 8 2018, 14:53) *
зачем полное Фурье? Достаточно посчитать корреляцию два раза (по синусу и по косинусу).

какой частоты?
blackfin
Цитата(_pv @ Feb 8 2018, 11:38) *
какой частоты?

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

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

PPS. И соглашусь, выигрыша по количеству вычислений этот метод не даст..
Sergey Krivonosov
Цитата(novikovfb @ Feb 8 2018, 07:35) *
Правильно ли я понял, что предлагаете посчитать корреляцию эталона (один раз) и фактического сигнала с синусом и косинусом основной гармоники и по ним считать разность фаз?

Если у меня период равен 128 выборкам, то период основной гармоники тоже равен 128? Предложение понравилось, это ускорит вычисления, только будет ли это работать?
blackfin
Цитата(Sergey Krivonosov @ Feb 8 2018, 11:50) *
Предложение понравилось, это ускорит вычисления, только будет ли это работать?

Работать будет, если научитесь быстро вычислять арктангенс и делить комплексные числа. biggrin.gif
novikovfb
Цитата(blackfin @ Feb 8 2018, 12:47) *
PPS. И соглашусь, выигрыша по количеству вычислений этот метод не даст..

По сравнению с идеей 128 раз сравнивать эталон с реальным сигналом (см. первое сообщение)?
blackfin
Цитата(novikovfb @ Feb 8 2018, 12:36) *
По сравнению с идеей 128 раз сравнивать эталон с реальным сигналом (см. первое сообщение)?

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

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

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

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

Зачем искать сигнал там, где заранее известно, что его нет? biggrin.gif
Sergey Krivonosov
Цитата(blackfin @ Feb 8 2018, 11:52) *
Во-первых, можно взять лишь один период эталонного сигнала и искать совпадение с этим укороченным эталоном и на укороченном интервале.
Это, ессно, в том случае, если на интервале в 128 точек укладывается несколько периодов эталонного сигнала.. /См. рис./

Вы наверное не поняли задачу. Все получаемые сигналы и все эталоны имеют один и тот же период 128 выборок. Если сигнал и эталон совпадают, они могут отличаются только сдвигом на n количество выборок (0-127).
blackfin
Цитата(Sergey Krivonosov @ Feb 8 2018, 15:32) *
Вы наверное не поняли задачу. Все получаемые сигналы и все эталоны имеют один и тот же период 128 выборок. Если сигнал и эталон совпадают, они могут отличаются только сдвигом на n количество выборок (0-127).

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

Все, конечно, зависит от уровня шума и спектров обоих сигналов.
Sergey Krivonosov
Цитата(blackfin @ Feb 8 2018, 14:50) *
Даже если и так, никто не мешает сделать сначала грубый поиск по 16-ти точкам отстоящим друг от друга на 8 выборок, а потом уточнить сдвиг между сигналами вычисляя корреляцию уже для всех 128-ми точек и для сдвигов на максимум 8 точек влево и вправо относительно найденной грубой оценки искомой точки.

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

Это хорошее предложение, но проблема в том что в сигнале может быть шум и по такому методу можно пропустить нужный сигнал.
blackfin
Цитата(Sergey Krivonosov @ Feb 8 2018, 15:56) *
Это хорошее предложение, но проблема в том что в сигнале может быть шум и по такому методу можно пропустить нужный сигнал.

А где в вашем первом сообщении указано, что в сигнале может быть шум? Почему каждый раз нужно заниматься телепатией и что-то там додумывать за вопрошающего? biggrin.gif
ViKo
А еще можно вычислять корреляцию с эталоном по мере получения сигнала, выборка за выборкой.
Sergey Krivonosov
Нахожу сдвиг фазы сигнала и сдвиг фазы эталона по основной гармонике. Если в сигнале есть симметрия(даже как на приведенном графике), то сдвиг может отличаться на pi или pi/2. Метод понравился - быстрый, но придется делать 4 сравнения вместо одного. Но нет в нем подводных камней, с другими типами сигналов?
blackfin
Цитата(Sergey Krivonosov @ Feb 10 2018, 11:21) *
Но нет в нем подводных камней, с другими типами сигналов?

Есть, конечно.. За всё же приходится платить.. biggrin.gif

Бывают периодические сигналы, у которых период равен "T", а амплитуда первой гармоники, то есть гармоники, что на частоте "1/T", в точности равна нулю.. wink.gif

Для таких сигналов этот метод не применим в принципе...
ViKo
Я никогда не задумывался о подобном. Думал, первая гармоника есть всегда. Но пример без первой гармоники придумал легко. Сложить два синуса с частотами 2F и 3F - вот оно!
blackfin
Цитата(ViKo @ Feb 10 2018, 12:31) *
Но пример без первой гармоники придумал легко. Сложить два синуса с частотами 2F и 3F - вот оно!

У меня, кстати, перед глазами был другой пример. Берем любой периодический сигнал с периодом "T" и вычитаем из него основую гармонику. При этом период "T" остается неизменным..
Sergey Krivonosov
Всем спасибо, что помогли разобраться в теме. Мне предложили делать сравнение сигналов с эталонами не методом перебора, а с помощью дескрипторов Фурье. Дескрипторы сигналов я вычисляю быстро применяя табличные коэффициенты. Дескрипторы эталонов вычисляю заранее.
Сколько необходимо дескрипторов и как их сравнивать на подобие?
qxov
Верный ответ - во втором сообщении темы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.