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

 
 
 
Reply to this topicStart new topic
> Определение постоянной времени экспоненты
condor
сообщение Apr 24 2008, 08:15
Сообщение #1


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

Группа: Свой
Сообщений: 93
Регистрация: 18-06-05
Из: Kyiv, Ukraine
Пользователь №: 6 126



Имеется выборка длинной ~1000 точек с зашумленным сигналом вида f(t)=exp(-at)+b. Необходимо определить а и желательно без использования итеративных алгоритмов.
Насколько я понял, наиболее часто используют логарифмирование сигнала с последующим применением метода наименьших квадратов. Но при этом надо избавиться от смещения b.
Может есть еще способы не очень чувствительные к шумам?
Посоветуйте, пожалуйста, литературу по данной теме.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Apr 24 2008, 09:47
Сообщение #2


Гуру
******

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



Цитата(condor @ Apr 24 2008, 12:15) *
Имеется выборка длинной ~1000 точек с зашумленным сигналом вида f(t)=exp(-at)+b. Необходимо определить а и желательно без использования итеративных алгоритмов.
Насколько я понял, наиболее часто используют логарифмирование сигнала с последующим применением метода наименьших квадратов. Но при этом надо избавиться от смещения b.
Может есть еще способы не очень чувствительные к шумам?
Посоветуйте, пожалуйста, литературу по данной теме.
Логарифмировать не нужно, и, более того, вредно, т.к. аддитивный шум перестаёт быть таковым.
Возьмите Матлаб, Curve Fitting Toolbox. Почитайте к нему Help. Затем запустите GUI, выберите двух-термовую экспоненциальную модель и "фитните" Вашу функцию. Всё. smile.gif
Как именно это делается - написано в хэлпе, а все функции данного тулбокса даны в исходниках, разобравшись в которых, можно написать собственную программу (а можно и сгенерить С-шный исходник автоматически, только код будет довольно кривой).
Кроме того, рекомендую ознакомиться с методом наименьших квадратов как таковым. Найти его описание можно в любой книге по статистике.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
condor
сообщение Apr 24 2008, 22:40
Сообщение #3


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

Группа: Свой
Сообщений: 93
Регистрация: 18-06-05
Из: Kyiv, Ukraine
Пользователь №: 6 126



Цитата(Stanislav @ Apr 24 2008, 12:47) *
Логарифмировать не нужно, и, более того, вредно, т.к. аддитивный шум перестаёт быть таковым.
Возьмите Матлаб, Curve Fitting Toolbox. Почитайте к нему Help. Затем запустите GUI, выберите двух-термовую экспоненциальную модель и "фитните" Вашу функцию. Всё. smile.gif
Как именно это делается - написано в хэлпе, а все функции данного тулбокса даны в исходниках, разобравшись в которых, можно написать собственную программу (а можно и сгенерить С-шный исходник автоматически, только код будет довольно кривой).
Кроме того, рекомендую ознакомиться с методом наименьших квадратов как таковым. Найти его описание можно в любой книге по статистике.

Почитал, запустил, фитнул, увидел, что для фиттинга используется оптимизация и все smile.gif
Дальше не углублялся, так как сомневаюсь, что какой-нибудь метод оптимизации сможет работать на ARM7 в реальном времени. Необходимо выдать результат максимум за 5мс, а желательно за 2мс.

P.S.: С методом наименьших квадратов хорошо знаком. О методах оптимизации тоже имею представлениеsmile.gif
Go to the top of the page
 
+Quote Post
Tanya
сообщение Apr 25 2008, 02:26
Сообщение #4


Гуру
******

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



Цитата(condor @ Apr 24 2008, 12:15) *
Имеется выборка длинной ~1000 точек с зашумленным сигналом вида f(t)=exp(-at)+b. Необходимо определить а и желательно без использования итеративных алгоритмов.
Насколько я понял, наиболее часто используют логарифмирование сигнала с последующим применением метода наименьших квадратов. Но при этом надо избавиться от смещения b.
Может есть еще способы не очень чувствительные к шумам?
Посоветуйте, пожалуйста, литературу по данной теме.

А коэффициент перед экспонентой точно равен 1?
Такие задачи лучше всего разбить (в данном случае это можно) на линейную часть и нелинейную, которые оптимизировать, соответственно, разными алгоритмами. Нелинейный (оптимальный по скорости) алгоритм будет зависеть от диапазона изменения аргумента экспоненты. Но всегда останется проблема точности нахождения параметров подгонки. Это, скорее всего, и не впишется в Ваши миллисекунды. И еще... минимизация абсоютных отклонений или относительных.. Вам нужно?
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Apr 25 2008, 06:15
Сообщение #5


Гуру
******

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



Цитата(condor @ Apr 25 2008, 02:40) *
Почитал, запустил, фитнул, увидел, что для фиттинга используется оптимизация и все smile.gif
Дальше не углублялся, так как сомневаюсь, что какой-нибудь метод оптимизации сможет работать на ARM7 в реальном времени. Необходимо выдать результат максимум за 5мс, а желательно за 2мс.
Тогда не совсем понятно, что подразумевается под "определением постоянной времени экспоненты"?
ARM7, конечно, для таких задач плохо приспособлен. Однако, сомневаться в том, что "что какой-нибудь метод оптимизации сможет работать на ARM7 в реальном времени" также преждевременно. Всё зависит от того, какой результат Вы хотите получить.

Цитата(condor @ Apr 25 2008, 02:40) *
P.S.: С методом наименьших квадратов хорошо знаком. О методах оптимизации тоже имею представлениеsmile.gif
Простите, если так. Посоветовал "на всякий случай". smile.gif

ЗЫ. Если не трудно, выложите несколько реализаций процесса, с разными параметрами a и b. А также огласите допустимую погрешность определения a.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Apr 25 2008, 06:29
Сообщение #6





Guests






Цитата(condor @ Apr 24 2008, 12:15) *
Имеется выборка длинной ~1000 точек с зашумленным сигналом вида f(t)=exp(-at)+b. Необходимо определить а и желательно без использования итеративных алгоритмов.
Насколько я понял, наиболее часто используют логарифмирование сигнала с последующим применением метода наименьших квадратов. Но при этом надо избавиться от смещения b.
Может есть еще способы не очень чувствительные к шумам?
Посоветуйте, пожалуйста, литературу по данной теме.


Двухпараметрическая регрессия на основе лианеризации и МНК имеет место в практике.
Некоторые эффекты от ее применения Stanislav изложил выше.

Еще одним способом является моделирование линейной системы в виде АРСС-модели (ARIMA).
Для экспоненты вероятно достаточно СС-модели.
Почитать Бокс и Дженкинс.
Сложность реализации достаточно высока.
Go to the top of the page
 
+Quote Post
Ulysses
сообщение May 5 2008, 14:47
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 15-10-07
Из: Ιθάκη
Пользователь №: 31 371



Цитата(condor @ Apr 24 2008, 11:15) *
Имеется выборка длинной ~1000 точек с зашумленным сигналом вида f(t)=exp(-at)+b. Необходимо определить а и желательно без использования итеративных алгоритмов.

Строим новую вспомагательную последовательность в виде разности значений в соседних точках. Эта последовательность не имеет смещение b, но имеет тот же показатель экспоненты. Если есть отрицательные значения, то заменяем их на очень малые положительные значения. К прологарифмированным данным применяем метод наименьших квадратов с взвешиванием самими данными до логарифмирования. Смещение b можно найти после вычитания найденной экспоненциальной функции.
Для суммы нескольких экспонент наиболее адекватным является метод Прони, применение которого для экспоненциально затухающих синусоид приведено, например, в книге Марпла.

Сообщение отредактировал Ulysses - May 5 2008, 14:50
Go to the top of the page
 
+Quote Post

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

 


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


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