PowerGraph Описание PowerGraph
English ENG
Russian РУС
 Программное обеспечение  |  АЦП  |  Загрузка файлов  |  Цены  |  Конференция  |  Контакты 
Главная
Новости*

 ПО «PowerGraph»
О программе
Описание
Видеозаписи
Публикации
Применение
Сертификаты
Загрузка файлов

 Поддержка
Обновление ПО
Обучение
Конференция
Вопросы и ответы
Отправить письмо

 Аппаратура
АЦП
Мультиметры
Приборы
Хемилюминометры
Биожезл
Пульсоксиграф
Производители

 Информация
  Цены и услуги
  Контакты

 Телефон:
 +7 (495) 961-47-30
 E-Mail:
 soft@powergraph.ru

Конференция

Тема: «Рассчитать фазовый сдвиг между сигналами в реальном времени при задаваемом периоде»
[Вернуться в "Список тем"] [Создать новую тему]
Андрей
30.07.2021
18:29
Добрый день!

Исследую возможность применения Вашего ПО для решения такой задачи:
Требуется определять временной сдвиг 2х сигналов, которые имеют очень большой период, те применение функций Гильберта не представляется возможным.
Иными словами, требуется определять временной сдвиг между двумя каналами Т1(А) - Т2(А), где Т1 и А текущее время и амплитуда "ведущего" сигнала, Т2 соответствующее ближайшее время второго сигнала в момент, когда он имел амплитуду А.
При этом, крайне желательно отображать график с результатом в реальном времени.
В документации найти решения такой задачи я не смог.

Дмитрий (PG)
31.07.2021
11:25
Здесь вопрос не к программе, а к выбору математического алгоритма. Программа только реализует тот или иной математический алгоритм расчетов. Если Вы подробно опишите алгоритм вычисления фазового сдвига для вашего сигнала, то мы сможем подсказать, как его реализовать в PowerGraph.
Прежде всего надо ответить на несколько вопросов:

1. Какая форма сигнала?
Если Вы хотите рассчитывать фазовый сдвиг по амплитуде сигнала, то надо использовать формулу изменения амплитуды, а она разная для разных сигналов.

2. Сигнал периодический или непериодический?

Для простейшего линейного сигнала рассчитать временной сдвиг можно простой формулой разности амплитуд двух сигналов, деленной на приращение амплитуды (дифференциал):
t1-t2=(A1-A2)/(dA/dt).

Если сигнал периодический, то нужна формула периодизма, так как у периодического сигнала одно и то же значение амплитуды (A) может соответствовать разным фазам. Поэтому одного только поиска определенного значения амплитуды (A) здесь недостаточно.

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

В вашем вопросе есть противоречие:
- В названии темы Вы указали "рассчитать фазовый сдвиг" - это означает необходимость расчета фазы периодического сигнала в каждый момент времени.
- А в самом вопросе Вы предполагаете возможность расчета фазового сдвига без расчета фазы только на основании двух значений амплитуды (A).

Не зная фазы каждого сигнала, невозможно посчитать фазовый сдвиг (разность этих фаз).

Кроме того, два дискретных сигнала с одинаковым периодом, могут не содержать точек с одинаковой амплитудой, соответствующей одной и той же фазе.
Поэтому предполагаемый Вами алгоритм не такой простой, как могло бы показаться, и требует анализа участка сигнала в некоторой временной области.
В целом это не расчетный алгоритм, а поисковый (поиск 2-х одинаковых или близких значений) и в режиме реального времени такие поисковые алгоритмы обычно не используются, поскольку они более медленные и с неизвестным временем выполнения.
Андрей
31.07.2021
12:15
> Поэтому предполагаемый Вами алгоритм не такой простой, как могло бы показаться, и требует анализа участка сигнала в некоторой временной области.

Все верно, временной сдвиг одного сигнала относительно другого рассчитывается в некотором окне времени
Алгоритм упрощенно такой:
Берем текущую амплитуду одного сигнала с АЦП и находим ближайшее значение такой амплитуды у второго сигнала, затем из текущего времени вычитаем время при котором у второго сигнала была эта амплитуда. Знак разности значения не имеет.
Поскольку сигнал хоть и переодический, но имеет произвольную форму (сигналы с тензодатчиков), поэтому тут правильнее говорить про смещение одной кривой относительно другой по временной оси в любой момент времени, или, проще говоря, запаздывание сигнала 2 относительно сигнала 1
Андрей
31.07.2021
12:19
И попутно. У в вашей программе реализованы функции для определения частоты переодического сигнала, а как для такого сигнала можно реализовать счетчик периодов(импульсов)? Значение нужно не для отображения на графиках, а для расчетных формул
Дмитрий (PG)
31.07.2021
13:10
Андрей, то, что Вы предлагаете, не позволяет рассчитать временную задержку между 2-мя сигналами.
Вот простой рисунок, демонстрирующий ошибочность вашего слишком упрощенного подхода. Два синусоидальных сигнала с одинаковым периодом но разной фазой (на рисунке для наглядности в противофазе) имеют одинаковые значения амплитуды на разных временных интервалах. Разность времени между одинаковыми значениями амплитуды 2-х сигналов не дает временной сдвиг между ними.

Дмитрий (PG)
31.07.2021
13:26
Если сигналы имеют произвольную форму, то бессмысленно говорить о фазовом сдвиге, так как у такого сигнала нет детерминированного периода, поэтому невозможно определить фазу.

Для сигналов с произвольной формой совпадающие участки можно определить только с помощью корреляционной функции, которая отражает степень совпадения 2-х сигналов для разных интервалов сдвига. По положению максимума корреляционной функции действительно можно определить временной сдвиг между 2-мя даже не одинаковыми, а похожими сигналами.
Но корреляционные функции требуют для обработки весь массив данных, поэтому работают только в постобработке.
Андрей
31.07.2021
18:51
Т.е. вычисления значения аргумента(времени) от значения функции (сигнала) в диапазоне "окна" не предусмотрено в программе?

А со счетчиком есть варианты для реализации?
Дмитрий (PG)
31.07.2021
20:07
Не вполне непонятно, что Вы подразумеваете под формулировкой "вычисление значения аргумента(времени) от значения функции (сигнала) в диапазоне "окна". Вычислить можно только значение какой-либо функции от заданного аргумента. Для тригонометрических функций есть обратные функции, они в PowerGraph реализованы.
Для сигнала с неизвестной функцией нет и обратной функции, поэтому вычисление аргумента неизвестной функции невозможно.

Счетчик реализуется методом интегрирования (суммирования). Сигнал предварительно необходимо преобразовать в дискретный путем сравнения с пороговым уровнем, а затем продифференцировать такой дискретный сигнал, чтобы получить одно единичное значение на каждый период. Интегрирование такого дифференциального сигнала будет давать значение соответствующее счетчику.
Андрей
31.07.2021
20:47
Все ясно, спасибо
[Вернуться в "Список тем"] [Создать новую тему]

Новое сообщение по теме «Рассчитать фазовый сдвиг между сигналами в реальном времени при задаваемом периоде»

 

*Ваше имя:
Email:
*Сообщение:
   

В начало страницы  



 
 Copyright© DISoft, 2003-2021. All right reserved.