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

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


Знающий
****

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



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



*****

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



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


Знающий
****

Группа: Свой
Сообщений: 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
xemul
сообщение May 31 2011, 11:32
Сообщение #4



*****

Группа: Свой
Сообщений: 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
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #6



*****

Группа: Свой
Сообщений: 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



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

 


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


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