реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Определение задержки, Задержка между 100Гц сигналами
LSerg
сообщение Sep 18 2013, 15:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 1-06-08
Пользователь №: 37 967



Здравствуйте.
Есть следующая задача:
1. Имеются два сигнала амплитуда которых может менятся.
2. Форма сигналов предсталяет выпрямленную синусоиду 50Гц. В конечном результате получаем 100Гц сигнал по обоим каналам.
3. Имеется по 100 точек АЦП с каждого канала за 20мсек.

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

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

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

Сообщение отредактировал LSerg - Sep 18 2013, 15:41
Go to the top of the page
 
+Quote Post
Corner
сообщение Sep 18 2013, 16:44
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



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

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

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

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



Найти максимумы и посчитать между ними число отсчетов.
Go to the top of the page
 
+Quote Post
_pv
сообщение Sep 18 2013, 17:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



по Фурье, перемножить сигналы с 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));}

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

тогда уж минимумы, для выпрямленной синусоиды они куда более резкие чем максимумы.
Go to the top of the page
 
+Quote Post
LSerg
сообщение Sep 18 2013, 17:14
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 1-06-08
Пользователь №: 37 967



Предложение хорошее, но не хотелось полагаться на две точки. Возможны помехи.
Не знаю как правильно сформулировать вопрос. Хочется применить что-то типа скалярного произведения, но не пойуму как определить угол (положительный или отрицательный)
Go to the top of the page
 
+Quote Post
Corner
сообщение Sep 18 2013, 17:26
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



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


Перемнож оба сигнала и проинтегрируй. Знак - запаздывание/опережение. Модуль - величина. Если сигналы в квадратуре (90 градусов), то на выходе 0.
Go to the top of the page
 
+Quote Post
LSerg
сообщение Sep 18 2013, 17:33
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 1-06-08
Пользователь №: 37 967



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


Если нужно перемножить два исходных сигнала, то они всегда положительны?
На счет sin и cos хочу заменить на функции Уолша, чтобы уйти от умножения и деления, но в голове картинка не складывается.
Может есть теория с картинками.

Сообщение отредактировал LSerg - Sep 18 2013, 17:34
Go to the top of the page
 
+Quote Post
Corner
сообщение Sep 18 2013, 17:45
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



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

Нет, надо умножать со знаком!!!
Go to the top of the page
 
+Quote Post
LSerg
сообщение Sep 18 2013, 17:51
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 1-06-08
Пользователь №: 37 967



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

Как определить знак, если опорное (min) равно нулю и входной сигнал всегда больше опорного?
(Входной сигнал не знакопеременный)
Прикрепленное изображение

Сообщение отредактировал LSerg - Sep 18 2013, 18:04
Go to the top of the page
 
+Quote Post
Corner
сообщение Sep 19 2013, 15:32
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



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

Тут только считать отсчеты...
Go to the top of the page
 
+Quote Post
fontp
сообщение Sep 19 2013, 16:01
Сообщение #10


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



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


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

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

В принципе , конечно , любой алгоритм должен быть устоячивым к шумам - то есть быть интегрирующим, а не дифференцирующим
Go to the top of the page
 
+Quote Post
LSerg
сообщение Sep 20 2013, 18:54
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 1-06-08
Пользователь №: 37 967



Всем спасибо.
Тема закрыта.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 07:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01481 секунд с 7
ELECTRONIX ©2004-2016