简写
给定一组离散的 [x, y] 点,你能否推导出一个逼近 [x, y] 点并满足两个约束条件的连续函数:
- 它满足给定的(最大)均方误差。
- 它最大限度地减少了控制点的数量。
?
细节
这确实是一个嵌入式系统问题,但让我解释一下。我需要连接一个可以设计得更好的模拟硬件。但是——像往常一样——纠正硬件缺陷是嵌入式系统工程师的责任。
蓝点取自实际测量,红线是 scipy 在点之间的三次插值。
问题在于,由此产生的 82 多个控制点创建了太多的数据,无法填充到客户端极小的微控制器中。(我正在显示整个数据集的一个子集。)
所以我的问题是:如何最大限度地减少样条控制点的数量并保持在某个给定的 MSE 范围内?
对于有动机的
这是上图中使用的一组 x 和 y 点。
x = [ 3.387, 3.552, 3.714, 3.868, 4.012, 4.15 , 4.278, 4.407,
4.529, 4.646, 4.757, 4.852, 4.924, 4.974, 5.012, 5.046,
5.084, 5.148, 5.267, 5.426, 5.593, 5.75 , 5.9 , 6.03 ,
6.145, 6.26 , 6.37 , 6.48 , 6.6 , 6.72 , 6.83 , 6.945,
7.055, 7.175, 7.29 , 7.405, 7.52 , 7.63 , 7.75 , 7.86 ,
7.98 , 8.09 ]
y = [ 0.05 , 0.055, 0.06 , 0.065, 0.07 , 0.075, 0.08 , 0.085,
0.09 , 0.095, 0.1 , 0.105, 0.11 , 0.115, 0.12 , 0.125,
0.13 , 0.135, 0.14 , 0.145, 0.15 , 0.155, 0.16 , 0.165,
0.17 , 0.175, 0.18 , 0.185, 0.19 , 0.195, 0.2 , 0.205,
0.21 , 0.215, 0.22 , 0.225, 0.23 , 0.235, 0.24 , 0.245,
0.25 , 0.255]
ps
请注意,我并不特别喜欢三次样条曲线。我愿意接受任何紧凑的表示来近似 [x, y] 函数,该函数在微控制器上扩展的计算成本并不高。