基于最小二乘法二阶拟合一维数据
工程实践中,很多量测数据的波形存在丢帧,尖凸,噪声。直接使用该量测数据,就不可避免的带来抖动,震荡甚至是发散。因此对数据滤波就十分必要。此处介绍一种对一维量测数据滤波,徒手计算二阶拟合参数的方法,最小二乘法。方法出处,见附录论文。
幂级数二阶拟合和对应参数变量
二阶拟合公式 yi=α+φ∗xi+ξ∗xi2y{i} = α + φ*x{i} + ξ*x{i}^2yi=α+φ∗xi+ξ∗xi2 其中 i=1、2、3....ni=1、2、3....ni=1、2、3....n 。
中间变量b、c、d、e、f、g、hb、c、d、e、f、g、hb、c、d、e、f、g、h计算如下:
Σxi=b,Σyi=c,Σxi2=d,Σxi⋅yi=e,Σxi3=f,Σxi4=g,Σxi2⋅yi=h
Σ xi=b,
Σ yi=c,
Σxi^2 =d,
Σ xi·yi=e,
Σxi^3=f,
Σxi^4=g,
Σxi^2·yi=h
Σxi=b,Σyi=c,Σxi2=d,Σxi⋅yi=e,Σxi3=f,Σxi4=g,Σxi2⋅yi=h
由上面的中间计算值,进而求出二阶拟合公式的系数α、φ、ξα、φ、ξα、φ、ξ。

其中,n表示xxx的维数。
高阶拟合中关键矩阵
高阶拟合中的推导矩阵如下所示,其中左侧系数矩阵经转化后能够移到右侧。

若将上述矩阵简化(对xixixi有非零要求),可得如下矩阵。

同样的方法,将上述第二个矩阵简化后就会得到系数a0、a1、a2...ana0、a1、a2...ana0、a1、a2...an。进而得到拟合函数y=a0+a1∗x+a2∗x2...an∗xny = a0+a1*x+a2*x^2...an*x^ny=a0+a1∗x+a2∗x2...an∗xn。
二阶拟合温度曲线实例

matlab示例代码
add you code here
C示例代码
add you code here
python示例代码
add you code here
附录:
[01] 最小二乘法曲线拟合及优化算法研究 《工业控制计算机》
博客介绍基于最小二乘法对一维量测数据进行二阶拟合的方法。因工程中量测数据存在丢帧、尖凸、噪声等问题,滤波很有必要。文中给出幂级数二阶拟合公式及参数变量计算方法,介绍高阶拟合关键矩阵,还给出二阶拟合温度曲线的Matlab、C、Python示例代码。
304

被折叠的 条评论
为什么被折叠?



