2015-12-09 5 views
0

У меня есть набор данных с длинной базой, с шумом, колеблющимся вокруг 0, затем точкой, где имеет место экспоненциальная кривая.Matlab Gradient Над набором данных

enter image description here

Я ищу какой-то относительно простой код, который находит точку, где начинается экспоненциальный кривая. Мне нужно, чтобы это делалось автоматически, потому что для 1000-х разных кривых. Поэтому я не могу просто найти ценность из сюжета.

У меня есть модель для того, что подгонка должна быть после «нулевой точки»

Как я мог это сделать, в относительно простой операции?

В настоящее время мой код находит среднее значение базового шума, а затем говорит, что когда он идет выше этой точки, кривая началась. Однако это недостаточно точно.

+0

Недостаточно информации для ответа на этот вопрос. – David

+0

Вы, действительно, не дали нам достаточно, чтобы уйти; однако вы сказали, что это лог-график. Вы можете перейти туда, где кривая журнала сильная, и обратно-вычислить журнал через что-то вроде polyfit (x [20: 100], log (y (20: 100)), 1); –

+0

Дополнительная информация Вам нужна следующая информация: – sqlperson994

ответ

0

Вы можете взять все точки данных, у которых значение y больше 10% от максимального значения y и соответствовать им экспоненциальной функции y = exp ((x-a)/b). Возьмем естественный журнал ваших точек данных y (i) и сопоставим эти точки данных с ln (y) = (x-a)/b, и я возьмем a/b как «нулевую точку». Надеюсь, что это поможет, но если вы можете загрузить часть данных, я могу написать простой код для тестирования моего предлагаемого решения.