0

我正在开发一个程序,该程序需要拟合大量余弦波以确定函数的参数之一。我使用的方程是 y = y_0 + Acos((4*pi*L)/x + pi) 其中 L 是我试图从最佳拟合线获得的值。

我知道可以手动为每组数据正确执行此操作,但是自动化此过程的最佳方法是什么?我目前正在从文本文件中读取数据,并运行一个循环,初始参数发生变化,直到我有一个振幅与数据相似的参数值数组,然后我检查中心峰值上的点之间的百分比差异和两个末端峰,以尝试选择最好的一个。它始终选择比我手动安装时得到的值更低的值(几乎正好是一个阶段)。那么有没有办法改进这种方法,或者另一种效果更好的方法?

编辑:我的LabVIEW版本有一个cos拟合VI,这是我正在使用的,问题是当我尝试通过使用循环更改初始参数来自动拟合时,我不知道如何让程序选择最好的适合人类选择的线条。

4

2 回答 2

2

为什么不直接使用快速傅里叶变换?这应该比拟合余弦快得多。在复数的结果向量中寻找总数中的最大峰值。给定频率(FFT 结果向量中的位置)、幅度和相位。

于 2011-07-12T23:45:19.493 回答
0

您可以通过计算拟合曲线和数据之间的差异来评估拟合的优劣。VI 在“高级曲线拟合”面板中执行此操作。然后,您所要做的就是选择最合适的。

于 2011-07-13T15:01:33.197 回答