如何解褶高斯峰与已知的位置和高度

11次浏览(过去30天)
Irem Altan
Irem Altan 2021年8月24日
评论道: Irem Altan2021年8月24日
我有一个9到10个峰值的信号。我可以通过对数据拟合平滑样条来获得峰值位置,然后使用findpeaks函数。结果如下所示:
现在,我想通过对每个峰值拟合高斯来反卷积这个信号。我知道最高的山峰可能在它的右边有另一个山峰,我平滑得太多了,无法捕捉到它,但我稍后会对细节进行微调。
由于cftool的高斯拟合被限制为8个高斯,我创建了一个自定义的函数拟合:
fittingFunc = ' a1 * exp (((x - 477.73) / c1) ^ 2) + a2 * exp (- ((x - 489.143) / c2) ^ 2) + a3 * exp (- ((x - 506.111) / c3) ^ 2) + a4 * exp (- ((x - 542.774) / c4) ^ 2) + a5 * exp (- ((x - 556.308) / c5) ^ 2) + a6 * exp (- ((x - 572.872) / c6) ^ 2) + a7 * exp (- ((x - 594.385) / c7) ^ 2) + a8 * exp (- ((x - 603.98) / c8) ^ 2) + a9 * exp (- ((x - 618.726) / c9) ^ 2)”
我硬编码了峰值位置。我使用以下选项:
选择。低=零(1,数字(pks));
选择。MaxFunEvals = 5000;
选择。MaxIter = 5000;
然而,结果却非常糟糕:
有什么想法能让我做得更扎实吗?我希望能够自动化许多其他这样的信号。我最终想对各个峰积分。
2的评论
Irem Altan
Irem Altan 2021年8月24日
哦,这只是因为我没有把x数据输入到findpeaks中,所以它只是为每个数据点绘制指标。

登录评论。

答案(0)

标签

下载188bet金宝搏


释放

R2021a

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!