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

 
 
 
Reply to this topicStart new topic
> Поиск экстремума в функции
inventor
сообщение May 31 2011, 09:41
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Кто нибудь подскажет алгоритм поиска максимумов амплитуд на "грязном"
синусоидальном сигнале.
все методы, которые я испробовал (наименьших квадратов, интерполяции)
дают результат, который меня не совсем устраивает.
Go to the top of the page
 
+Quote Post
Tanya
сообщение May 31 2011, 09:53
Сообщение #2


Гуру
******

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



Цитата(inventor @ May 31 2011, 13:41) *
Кто нибудь подскажет алгоритм поиска максимумов амплитуд на "грязном"
синусоидальном сигнале.
все методы, которые я испробовал (наименьших квадратов, интерполяции)
дают результат, который меня не совсем устраивает.

Так что же Вы хотите? Найти экстремумы на грязном или чистом сигнале?
Go to the top of the page
 
+Quote Post
xemul
сообщение May 31 2011, 09:59
Сообщение #3



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Могу предположить, что на чистом.
Тогда сначала почистить от грязи (сигнал и грязь сосредоточены по спектру?), а потом искать.
Как чистить и искать, зависит от вычислительных возможностей - вдруг на входе double, вычислитель - AVR, а хочется реального времени...
Go to the top of the page
 
+Quote Post
inventor
сообщение May 31 2011, 10:48
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(xemul @ May 31 2011, 13:59) *
Могу предположить, что на чистом.
Тогда сначала почистить от грязи (сигнал и грязь сосредоточены по спектру?), а потом искать.
Как чистить и искать, зависит от вычислительных возможностей - вдруг на входе double, вычислитель - AVR, а хочется реального времени...

На выходе float(ye пусть double)
фильтровать-это увеличивать шум.
мне нужны какие-то методы усреднения
амплитуд.
то есть идут максимумы, минимумы, их нужно копить
и искать среднее из них, чтобы исключить выбросы.
напрример вот так:

1.3. Если на период приходится 20 или более значений АЦП, то для поиска экстремумов можно использовать аппроксимацию данных скользящей параболой по ме-тоду наименьших квадратов по 5 или 7 точкам (центральная и по 2-3 точки справа и слева): y=A∙x2+B∙x+C, где х – время в долях интервала между измерениями, т.е. значения АЦП это у(-3), у(-2), у(-1), у(0), у(1), у(2), у(3). Для вычисления А, В и С используются следующие формулы (N=2 или 3, 2N+1 – число точек – 5 или 7):
но этот метод не дает совсем уж точное значение.
поэтому мне нужен алгоритм,
который ишет абсолютные максимумы,
и уже из них высчитыват усредненный максимум.

Go to the top of the page
 
+Quote Post
Demeny
сообщение May 31 2011, 11:07
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Зачем искать максимумы на синусоидальном сигнале ? Они известны ... rolleyes.gif
Может, Вы просто хотите узнать амплитуду периодического сигнала ?


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post
xemul
сообщение May 31 2011, 11:32
Сообщение #6



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(inventor @ May 31 2011, 14:48) *
фильтровать-это увеличивать шум.

Ну вот... Я думал, что, фильтруя, убираю, н-р, внеполосные помехи, а оказывается, просто шум увеличиваю.
Цитата
мне нужны какие-то методы усреднения
амплитуд.
то есть идут максимумы, минимумы, их нужно копить
и искать среднее из них, чтобы исключить выбросы.

Среднее Вам даст какой-нить ФНЧ, выбросы исключит, н-р, медианный фильтр.
Цитата
напрример вот так:
...
но этот метод не дает совсем уж точное значение.

Вероятно таки даёт, но с учётом "грязи". Как смогло, так и с-апроксимировало...
Уж извините, но мне постановка задачи яснее не стала. Наоборот, присоединяюсь к вопросу Татьяны в посте #2.
Go to the top of the page
 
+Quote Post
inventor
сообщение May 31 2011, 11:45
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(xemul @ May 31 2011, 15:32) *
Ну вот... Я думал, что, фильтруя, убираю, н-р, внеполосные помехи, а оказывается, просто шум увеличиваю.

Среднее Вам даст какой-нить ФНЧ, выбросы исключит, н-р, медианный фильтр.

Вероятно таки даёт, но с учётом "грязи". Как смогло, так и с-апроксимировало...
Уж извините, но мне постановка задачи яснее не стала. Наоборот, присоединяюсь к вопросу Татьяны в посте #2.


предположим у меня задача такая-отсчеты АЦП,
преобразованные во float поступают ко мне по COM порту.
если частота сигнала высокая, то амплитуды могут не попасть
в выборки, а если частота низкая, то это так же может произойти.
мне нужен алгоритм поиска, где он не завязан на частоту.
вот тот метод, который я выше привел вычисляет с достаточно большой
ошибкой.
а прибор - акселерометр, должен показывать точнее.

да..
насчет фильтрации, если какой-нибудь чебышев,
то он может изменить амплитуду сигнала(неравномерность ачх и пр.)
если "максимально-плоский" то у него очень большой порядок получается.
Go to the top of the page
 
+Quote Post
xemul
сообщение May 31 2011, 12:20
Сообщение #8



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(inventor @ May 31 2011, 15:45) *
предположим у меня задача такая-отсчеты АЦП,
преобразованные во float поступают ко мне по COM порту.
если частота сигнала высокая, то амплитуды могут не попасть
в выборки,

Какое минимальное fдискр/fсигнала у Вас получается? Отсюда несложно выводится ошибка интерполяции используемого Вами метода для идеального синуса.
Цитата
а если частота низкая, то это так же может произойти.

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

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

А есть уверенность, что интерполяция по сигналу с шумом даст меньшую погрешность?
Оцените сигнал/шум.
Оцените спектр сигнала и помех. (вдруг он окажется достаточно узким и поддающимся фильтрации режекторным фильтром без особого ущерба полезному сигналу)
Без этого мне только бубен на ум приходит в качестве рабочего инструмента.
Go to the top of the page
 
+Quote Post
qxov
сообщение May 31 2011, 13:16
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 22-03-07
Из: Санкт-Петербург
Пользователь №: 26 406



Найти-то что нужно? Амплитуду гармонического сигнала неизвестной частоты?

Или позиции максимумов гармонического сигнала? Тогда это оценка частоты и фазы.

По имеющимся данным могу предложить использовать БПФ rolleyes.gif
Go to the top of the page
 
+Quote Post
ivan219
сообщение May 31 2011, 15:44
Сообщение #10


Местный
***

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



А в этой функции как найти экстремум?
Нужно найт Fi0 при котором максимум функции будет минемалек.

Сообщение отредактировал ivan219 - May 31 2011, 15:47
Прикрепленные изображения
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
alex_os
сообщение May 31 2011, 18:36
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030




Цитата(ivan219 @ May 31 2011, 19:44) *
А в этой функции как найти экстремум?
Нужно найт Fi0 при котором максимум функции будет минемалек.

Разложит синус в ряд Тейлора продифференцировать по fi0, приравнять нулю...
ps Наверное Тейлор с рядом не прокатит sm.gif. Мне кажется такая задача решается только тупым поиском по fi0.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
SPACUM
сообщение Jun 1 2011, 09:38
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531



Цитата(ivan219 @ May 31 2011, 19:44) *
А в этой функции как найти экстремум?
Нужно найт Fi0 при котором максимум функции будет минемалек.

Как и все минимаксные функции эта функция негладкая и красивых решений не бывает. Решал так. Накидываем сетку находим минимальное значение, в области этого минимального значения накидываем более мелкую сетку итд. В области оптимального минимума функция имеет V-образный характер, так что два значения слева, два значения справа и на пересечении прямых.


--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
Go to the top of the page
 
+Quote Post
Дмитрий_Б
сообщение Jun 2 2011, 16:03
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 25-10-09
Пользователь №: 53 195



Решение - то очевидно (для белого шума): применяйте БПФ, амплитуда спектрального максимума пропорциональна амплитуде входного синусоидального сигнала. Фаза также определиться в результате БПФ.
Go to the top of the page
 
+Quote Post

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

 


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


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