Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Поиск экстремума в функции
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
inventor
Кто нибудь подскажет алгоритм поиска максимумов амплитуд на "грязном"
синусоидальном сигнале.
все методы, которые я испробовал (наименьших квадратов, интерполяции)
дают результат, который меня не совсем устраивает.
Tanya
Цитата(inventor @ May 31 2011, 13:41) *
Кто нибудь подскажет алгоритм поиска максимумов амплитуд на "грязном"
синусоидальном сигнале.
все методы, которые я испробовал (наименьших квадратов, интерполяции)
дают результат, который меня не совсем устраивает.

Так что же Вы хотите? Найти экстремумы на грязном или чистом сигнале?
xemul
Могу предположить, что на чистом.
Тогда сначала почистить от грязи (сигнал и грязь сосредоточены по спектру?), а потом искать.
Как чистить и искать, зависит от вычислительных возможностей - вдруг на входе double, вычислитель - AVR, а хочется реального времени...
inventor
Цитата(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):
но этот метод не дает совсем уж точное значение.
поэтому мне нужен алгоритм,
который ишет абсолютные максимумы,
и уже из них высчитыват усредненный максимум.

Demeny
Зачем искать максимумы на синусоидальном сигнале ? Они известны ... rolleyes.gif
Может, Вы просто хотите узнать амплитуду периодического сигнала ?
xemul
Цитата(inventor @ May 31 2011, 14:48) *
фильтровать-это увеличивать шум.

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

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

Вероятно таки даёт, но с учётом "грязи". Как смогло, так и с-апроксимировало...
Уж извините, но мне постановка задачи яснее не стала. Наоборот, присоединяюсь к вопросу Татьяны в посте #2.
inventor
Цитата(xemul @ May 31 2011, 15:32) *
Ну вот... Я думал, что, фильтруя, убираю, н-р, внеполосные помехи, а оказывается, просто шум увеличиваю.

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

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


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

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

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

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

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

А есть уверенность, что интерполяция по сигналу с шумом даст меньшую погрешность?
Оцените сигнал/шум.
Оцените спектр сигнала и помех. (вдруг он окажется достаточно узким и поддающимся фильтрации режекторным фильтром без особого ущерба полезному сигналу)
Без этого мне только бубен на ум приходит в качестве рабочего инструмента.
qxov
Найти-то что нужно? Амплитуду гармонического сигнала неизвестной частоты?

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

По имеющимся данным могу предложить использовать БПФ rolleyes.gif
ivan219
А в этой функции как найти экстремум?
Нужно найт Fi0 при котором максимум функции будет минемалек.
alex_os

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

Разложит синус в ряд Тейлора продифференцировать по fi0, приравнять нулю...
ps Наверное Тейлор с рядом не прокатит sm.gif. Мне кажется такая задача решается только тупым поиском по fi0.
SPACUM
Цитата(ivan219 @ May 31 2011, 19:44) *
А в этой функции как найти экстремум?
Нужно найт Fi0 при котором максимум функции будет минемалек.

Как и все минимаксные функции эта функция негладкая и красивых решений не бывает. Решал так. Накидываем сетку находим минимальное значение, в области этого минимального значения накидываем более мелкую сетку итд. В области оптимального минимума функция имеет V-образный характер, так что два значения слева, два значения справа и на пересечении прямых.
Дмитрий_Б
Решение - то очевидно (для белого шума): применяйте БПФ, амплитуда спектрального максимума пропорциональна амплитуде входного синусоидального сигнала. Фаза также определиться в результате БПФ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.