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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Определение постоянной составляющей синусоиды...
vladimir_m
сообщение Nov 21 2008, 13:03
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 9-07-08
Пользователь №: 38 830



Задача такая.
Есть сигнал - синусоида с постоянной составляющей, которая может медленно изменяться.
Синусоида оцифровывается и передаетя в комп буферами. Период синусоиды большой, заранее не известный, намного больше фиксированного размера буфера. Необходимо отслеживать изменение постоянной составляющей по приходу каждого буфера (уточнять с каждым буфером).
Как такое можно сделать?
Go to the top of the page
 
+Quote Post
D.I.M.A
сообщение Nov 21 2008, 13:16
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 26-08-08
Из: Москва
Пользователь №: 39 824



Оценивать мат. ожидание процесса.
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 21 2008, 13:24
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А постоянная составляющая по какому-то закону изменяется (в зависимости от какого-то внешнего параметра, температуры, например) или непредсказуемо?
Go to the top of the page
 
+Quote Post
vladimir_m
сообщение Nov 21 2008, 13:34
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 9-07-08
Пользователь №: 38 830



Цитата
А постоянная составляющая по какому-то закону изменяется (в зависимости от какого-то внешнего параметра, температуры, например) или непредсказуемо?

Закон не известен. Можно с некоторыми оговорками предположить, что постоянная составляющая не изменяется. Но это грубовато.

Цитата
Оценивать мат. ожидание процесса.

Это понятно. Как это сделать, если на входе только кусочки синусоиды, которые постепенно формируют период. А оценивать постоянную составляющую нужно сразу.

Вообще-то я делал так:
- усреднял полученный буфер и рассматривал его как первое приближение.
- усреднял следующий буфер - и в качестве оценки постоянной составляющей брал среднее от двух предыдущих оценок - следующее приближение и т.д.
Такая оценка в итоге сама превращалась в синусоиду...
Go to the top of the page
 
+Quote Post
sysel
сообщение Nov 21 2008, 13:49
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



По идее, для получения постоянной составляющей надо устремить время усреднения к бесконечности (в разумных пределах, конечно). Я бы использовал достаточно большое плывущее окно, по которому бы и усреднял.
Если девайсу Вашему памяти нехватает для большого плывущего окна - пусть компьютерная программа этим занимается.

Можно попробовать сделать цифровой НЧ фильтр, со срезом на низкой частоте (заведомо меньшей частоты Вашего полезного сигнала)
Go to the top of the page
 
+Quote Post
Самурай
сообщение Nov 21 2008, 14:12
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(vladimir_m @ Nov 21 2008, 16:03) *
Задача такая.
Есть сигнал - синусоида с постоянной составляющей, которая может медленно изменяться.
Синусоида оцифровывается и передаетя в комп буферами. Период синусоиды большой, заранее не известный, намного больше фиксированного размера буфера. Необходимо отслеживать изменение постоянной составляющей по приходу каждого буфера (уточнять с каждым буфером).
Как такое можно сделать?


Мат.ожидание (среднее в частном случае) это далеко не "постоянная" составляющая процесса. Достаточно усреднить синусоиду в районе pi/2 чтобы это увидетьsmile.gif. Если оценку постоянной составляющей надо делать быстро, по каждому буферу, то можно попробовать метод МНК. Или ФНЧ как предлагали выше.
Go to the top of the page
 
+Quote Post
vladimir_m
сообщение Nov 21 2008, 14:17
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 9-07-08
Пользователь №: 38 830



Большое окно - это хорошо. Расчетом занимается и так комп, просто ему и так задач хватает.
Буду думать как сделать расчет по окну более эффективным. А можно сделать размер окна адаптивным?
Go to the top of the page
 
+Quote Post
fontp
сообщение Nov 21 2008, 15:07
Сообщение #8


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

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



Цитата(vladimir_m @ Nov 21 2008, 17:17) *
Большое окно - это хорошо. Расчетом занимается и так комп, просто ему и так задач хватает.
Буду думать как сделать расчет по окну более эффективным. А можно сделать размер окна адаптивным?


Фильтр НЧ с постоянной времени заведомо во много периодов синусоиды поможет.

Простейший рекурсивный y(n) = (1-e)* y(n-1) + e*x(n) , если всё равно какой в смысле времени реакции, е очень мало

Но если это слишком медленно, то нужно сшивать буфера, оценивать период синусоиды и суммировать по периоду
Go to the top of the page
 
+Quote Post
ivan219
сообщение Nov 21 2008, 19:57
Сообщение #9


Местный
***

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



Зделать FFT и 0 отщёт будет = пост состовляющей.
Go to the top of the page
 
+Quote Post
ivan219
сообщение Nov 21 2008, 19:57
Сообщение #10


Местный
***

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



1

Сообщение отредактировал ivan219 - Nov 21 2008, 19:58
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 21 2008, 20:36
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(ivan219 @ Nov 21 2008, 22:57) *
Зделать FFT и 0 отщёт будет = пост состовляющей.
Круто!
Средство на все случаи жизни. biggrin.gif


Цитата(D.I.M.A @ Nov 21 2008, 16:16) *
Оценивать мат. ожидание процесса.
Глубокая мысль. А как это сделать практически, не подскажете? wink.gif


Цитата(fontp @ Nov 21 2008, 18:07) *
Фильтр НЧ с постоянной времени заведомо во много периодов синусоиды поможет.

Простейший рекурсивный y(n) = (1-e)* y(n-1) + e*x(n) , если всё равно какой в смысле времени реакции, е очень мало...
Некошерно. В лоб решение, без мысли...

Цитата(fontp @ Nov 21 2008, 18:07) *
...Но если это слишком медленно, то нужно сшивать буфера, оценивать период синусоиды и суммировать по периоду
А как сшивать, ежели постоянка?


Цитата(sysel @ Nov 21 2008, 16:49) *
По идее, для получения постоянной составляющей надо устремить время усреднения к бесконечности (в разумных пределах, конечно). Я бы использовал достаточно большое плывущее окно, по которому бы и усреднял.
Если девайсу Вашему памяти нехватает для большого плывущего окна - пусть компьютерная программа этим занимается.

Можно попробовать сделать цифровой НЧ фильтр, со срезом на низкой частоте (заведомо меньшей частоты Вашего полезного сигнала)
М-да, лекарство не лучше болезни... Условиям задачи не удовлетворяет. А, между тем, решение существует. smile.gif

Цитата(vladimir_m @ Nov 21 2008, 16:03) *
Задача такая.
Есть сигнал - синусоида с постоянной составляющей, которая может медленно изменяться.
Синусоида оцифровывается и передаетя в комп буферами. Период синусоиды большой, заранее не известный, намного больше фиксированного размера буфера. Необходимо отслеживать изменение постоянной составляющей по приходу каждого буфера (уточнять с каждым буфером).
Как такое можно сделать?
Для вычисления параметров синусоиды и определения постоянной составляющей теоретически достаточно 4-х отсчётов сигнала.
Решением системы 4-х уравнений будут амплитуда, частота, фаза синусоиды и постоянка.
В Вашей постановке с учётом дополнения задача имеет точное решение по содержимому только одного буфера.
Возможность практической реализации ограничивается необходимой точностью при заданных параметрах выборки и заданном уровне помех.
Оценки ПС в окнах выборки можно усреднять (с "забыванием", если подставка медленно меняется).

Цитата(vladimir_m @ Nov 21 2008, 16:34) *
Вообще-то я делал так:
- усреднял полученный буфер и рассматривал его как первое приближение.
- усреднял следующий буфер - и в качестве оценки постоянной составляющей брал среднее от двух предыдущих оценок - следующее приближение и т.д.
Такая оценка в итоге сама превращалась в синусоиду...
Криво, уж простите... Ничего хорошего так не выйдет. sad.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Nov 22 2008, 10:01
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



А чем не подходит это
http://electronix.ru/forum/index.php?act=S...f=2&t=54351
Go to the top of the page
 
+Quote Post
vladimir_m
сообщение Nov 22 2008, 12:31
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 9-07-08
Пользователь №: 38 830



Всем спасибо!
Лично я остановился на варианте уважаемого fontp, как наиболее приемлемом алгоритмически для моей задачи.

Сообщение отредактировал vladimir_m - Nov 22 2008, 12:32
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 22 2008, 12:53
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(Михаил_K @ Nov 22 2008, 13:01) *
А чем не подходит это
http://electronix.ru/forum/index.php?act=S...f=2&t=54351
А каким должен быть коэффициент K Вашего чудо-алгоритма? wink.gif

Цитата(vladimir_m @ Nov 22 2008, 15:31) *
Всем спасибо!
Лично я остановился на варианте уважаемого fontp, как наиболее приемлемом алгоритмически для моей задачи.
Ну, можно, конечно, и так, если мозгами шевелить лень...
Только коряво это. Оценку долго ждать придётся, если хоть мало-мальская точность нужна..


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Tanya
сообщение Nov 22 2008, 12:58
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(vladimir_m @ Nov 22 2008, 15:31) *
Всем спасибо!
Лично я остановился на варианте уважаемого fontp, как наиболее приемлемом алгоритмически для моей задачи.

Несколько странно... Такой метод подойдет ведь для сигналов любой формы и их суммы. Если Вы точно знаете, что там одна чистая синусоида, то можно эффективнее... Хозяин - барин.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 02:16
Рейтинг@Mail.ru


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