2016-10-13 15 views
0

У меня есть набор данных, который имеет два пика близко друг к другу. Я хотел бы подгонять эти пики с гауссианами, чтобы я придумал набор данных , который повторяет исходный. С этой целью я использую функцию «findpeaks» MATLAB и используя высоты и ширины пиков, чтобы придумать соответствующее количество гауссианцев, а затем добавить этих gaussians вместе. Однако, поскольку пики настолько близко друг к другу, то результат выглядит следующим образом (с исходным набором данных в синем и дублированных один в красном):Установка gaussians для закрытия пиков в MATLAB

enter image description here

есть лучший способ для репликации данных с гауссовыми пиками?

ответ

0

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

Я думаю, что-то вроде этого (псевдо-код):

f = 0.5*gauss(-3,var)+0.5*gauss(3,var) 

Если вы знаете больше о процессе, который создал сюжет, то вы можете сделать лучше.

 Смежные вопросы

  • Нет связанных вопросов^_^