2016-10-13 57 views
0

我有一个数据集有两个峰值靠在一起。我想用高斯适合这些峰值,这样我就能想出一个新的数据集,它可以复制原来的数据集。为此,我使用MATLAB的“findpeaks”函数,并使用峰值的高度和宽度来计算适当数量的gaussians,然后将这些gaussian加在一起。但是,由于峰是如此接近,结果如下所示(用蓝色原始数据集和复制的一个红色):拟合gaussians在MATLAB中关闭峰值

enter image description here

是否有更好的方法来复制数据高斯峰?

回答

0

高斯函数由两个变量均值和方差定义。这两个峰值将给你两个高斯的平均值,并且通过图的外观两者都有相同的方差()。如果一些数据经历了高斯过程,方差将是相同的,我想不出物理过程哪里不是这种情况,除非它只是一个任意图)。所以你只需要找到一个变量。至于只是归一化的峰值,以便曲线下面的面积总和为1.默认情况下,高斯总计为1,如果您试图拟合的图下的总和为2,则不需要做任何东西,否则相应地缩放

我的猜测是这样的(伪代码):

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

如果你知道更多关于创建该地块的过程中,那么你其实可以做的更好。