我正在研究一个需要适应大量余弦波的程序,以确定该函数的一个参数。我使用的等式是y = y_0 + Acos((4 * pi * L)/ x + pi)其中L是我试图从最佳拟合线获得的值。
我知道可以为每组数据手动正确地执行此操作,但是自动执行此过程的最佳方法是什么?我正在读取文本文件中的数据,并运行一个循环,初始参数变化,直到我有一个具有与数据相似的幅度的参数值数组,然后我检查中心峰值上的点之间的百分比差异尝试挑选最好的两个峰值。它始终如一地选择低于手工装配时的值(几乎只有一个相位)。那么有没有办法改进这种方法,或者另一种更好的方法呢?
编辑:我的LabVIEW版本有一个cos拟合VI,这就是我正在使用的,问题是当我尝试通过使用循环更改初始参数来自动化拟合时,我无法弄清楚如何让程序选择与人类相同的最佳拟合线。
答案 0 :(得分:2)
为什么不使用快速傅里叶变换?这应该比拟合余弦更快。在复数的结果向量中,查找总数中的最大峰值。您将获得频率(FFT结果向量中的位置),幅度和相位。
答案 1 :(得分:0)
您可以通过计算拟合曲线与数据之间的差异来评估拟合的优度。 VI在“高级曲线拟合”调色板中执行此操作。那么你所要做的就是找到最合适的。