在保持曲线形状的同时减少 excel 中的数据点数量

机器算法验证 曲线拟合 擅长
2022-03-29 11:27:21

我一直在收集工作中的数据以确定连接房间的一些电缆的损耗,现在我需要获取该数据(约 1500 个点),并且由于软件限制,将其减少到 72 个仍保持形状的点曲线。

我一直在使用 excel 并尝试查找它,但问题是我不能只取“每 n 行”并完成它,因为这会扭曲曲线的形状。

我需要减少到 72 点的曲线之一

在寻找更好的方法之前,我手工收集的数据点的图表 编辑:我试图通过准确解释它是如何使用的,这是我的错误,因为它使我的问题变得非常模棱两可。该数据是腔室内外一段距离的电缆的插入损耗(中间有一个高频连接器连接它们)。我们使用软件来操作测试设备,并且至少对于软件从频率到频率的测试,软件通过从数据库中查找特定电缆(或电缆组)的这些损耗来考虑这些损耗,并且在指定点之间使用线性插值来更好地估计它们。问题是该软件不允许电缆的损耗为 1500 点,而是将其限制为最大 72 点。

我需要做的是获取这些数据并从中获得 72 分,这将使该软件能够最准确地计算损失。如果我找不到更好的解决方案,我可以手动完成,但我宁愿避免处理 12 组或更多组数据所花费的时间,特别是如果我可以为我的开发脚本或小软件当他们重新进行这些测量时,该公司将在未来帮助他们。

EDIT_2:带有红线的第二张图基本上是我需要从 1500 个数据点的集合中得到的。这不是我需要的全部 72 分,因为我什至在完成一半之前就开始寻找一种方法来自动化这个过程。

另外,我是新来的,所以我不确定这是否是我发布此问题的正确位置,也不知道我是否使用了正确的标签。

2个回答

我会做以下事情:

数据很明显遵循幂律。拟合这个非线性模型并找到最高的 N 个残差。在每个残差处使用线性样条重新估计模型。将预测值及其输入输出为 N 个点的序列。这可以是 N=72 或您想要的任何值(越高越好)。

您可能无法在 Excel 中执行此操作。R 然而......这些模型在 SE 的其他地方都有介绍,可以通过咨询?nls?spline::bs等找到。

您应该尝试使用以下等式拟合您的数据:

data_y = data^a + b1*sin(c1*data) + b2*sin(c2*data) + b3*sin(c3*data) + b4*sin(c4*data)+d

这是幂律和几个三角函数的组合。这些应该能够很好地捕捉到您的数据的特征,并将您的数据减少到只有 10 个参数,同时还保持其大致形状。