Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Определение задержки
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
LSerg
Здравствуйте.
Есть следующая задача:
1. Имеются два сигнала амплитуда которых может менятся.
2. Форма сигналов предсталяет выпрямленную синусоиду 50Гц. В конечном результате получаем 100Гц сигнал по обоим каналам.
3. Имеется по 100 точек АЦП с каждого канала за 20мсек.

При помощи какого алгоритма получить (угол, фазу, задержку) между этими сигналами.

Точность до 10 эл. град.

Заранее спасибо.
Corner
Цитата(LSerg @ Sep 18 2013, 19:39) *
Здравствуйте.
Есть следующая задача:
1. Имеются два сигнала амплитуда которых может менятся.
2. Форма сигналов предсталяет выпрямленную синусоиду 50Гц. В конечном результате получаем 100Гц сигнал по обоим каналам.
3. Имеется по 100 точек АЦП с каждого канала за 20мсек.

При помощи какого алгоритма получить (угол, фазу, задержку) между этими сигналами.

Точность до 10 эл. град.

Заранее спасибо.



Найти максимумы и посчитать между ними число отсчетов.
_pv
по Фурье, перемножить сигналы с sin(100Гц) и cos(100Гц), просуммировать взять арктангенс их отношения.
чтобы тригонометрию не считать, синусы/косинусы можно одним умножением сделать
Yn+1 = K*Yn - Yn-1 ; K = 2*cos(i)
арктангенс тоже в ряд, для 10 градусов более чем достаточно , в целочисленный вид только привести:
double FastArcTan(double x){ return M_PI_4*x - x*(fabs(x) - 1)*(0.2447 + 0.0663*fabs(x));}

Цитата
Найти максимумы и посчитать между ними число отсчетов.

тогда уж минимумы, для выпрямленной синусоиды они куда более резкие чем максимумы.
LSerg
Предложение хорошее, но не хотелось полагаться на две точки. Возможны помехи.
Не знаю как правильно сформулировать вопрос. Хочется применить что-то типа скалярного произведения, но не пойуму как определить угол (положительный или отрицательный)
Corner
Цитата(LSerg @ Sep 18 2013, 21:14) *
Предложение хорошее, но не хотелось полагаться на две точки. Возможны помехи.
Не знаю как правильно сформулировать вопрос. Хочется применить что-то типа скалярного произведения, но не пойуму как определить угол (положительный или отрицательный)


Перемнож оба сигнала и проинтегрируй. Знак - запаздывание/опережение. Модуль - величина. Если сигналы в квадратуре (90 градусов), то на выходе 0.
LSerg
Цитата(Corner @ Sep 18 2013, 20:26) *
Перемнож оба сигнала и проинтегрируй. Знак - запаздывание/опережение. Модуль - величина. Если сигналы в квадратуре (90 градусов), то на выходе 0.


Если нужно перемножить два исходных сигнала, то они всегда положительны?
На счет sin и cos хочу заменить на функции Уолша, чтобы уйти от умножения и деления, но в голове картинка не складывается.
Может есть теория с картинками.
Corner
Цитата(LSerg @ Sep 18 2013, 21:33) *
Если нужно перемножить два исходных сигнала, то они всегда положительны?
На счет sin и cos хочу заменить на функции Уолша, чтобы уйти от умножения и деления, но в голове картинка не складывается.
Может есть теория с картинками.

Нет, надо умножать со знаком!!!
LSerg
Цитата(Corner @ Sep 18 2013, 20:45) *
Нет, надо умножать со знаком!!!

Как определить знак, если опорное (min) равно нулю и входной сигнал всегда больше опорного?
(Входной сигнал не знакопеременный)
Нажмите для просмотра прикрепленного файла
Corner
Цитата(LSerg @ Sep 18 2013, 21:51) *
Как определить знак, если опорное (min) равно нулю и входной сигнал всегда больше опорного?
(Входной сигнал не знакопеременный)
Нажмите для просмотра прикрепленного файла

Тут только считать отсчеты...
fontp
QUOTE (LSerg @ Sep 18 2013, 21:14) *
Предложение хорошее, но не хотелось полагаться на две точки. Возможны помехи.
Не знаю как правильно сформулировать вопрос. Хочется применить что-то типа скалярного произведения, но не пойуму как определить угол (положительный или отрицательный)


Типа скалярного произведения - это функция корреляции. Максимум функции корреляции определяет задержку во времени. Зная частоту - определите угол

Либо отфильтовать оба сигнал одинаковым полосовым фильтром около 100 гц, так чтобы они стали снова синусоидами. И действительно определить угол через скалярное произведение. Интегрировать произведение можно по многим периодам, что обеспечит точность. Время интегрирование ограничивается только отклонением частоты сигнала от 100 гц

В принципе , конечно , любой алгоритм должен быть устоячивым к шумам - то есть быть интегрирующим, а не дифференцирующим
LSerg
Всем спасибо.
Тема закрыта.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.