发明内容
为了解决上述问题,本发明提供一种数据校准方法和装置,可以在提高数据校准的精确性的同时加快据校准中的迭代速度。
本发明提供一种数据校准方法,包括:
利用自适应滤波器对待校准数据进行n次迭代滤波处理,在每一次迭代滤波处理中使用的滤波参数都是根据上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值更新后的滤波参数;
将每次迭代滤波处理后得到的输出数据和预设的参考输出数据进行比较;
若两者的差值小于预设的误差阈值,停止迭代滤波处理,并将此时得到的输出数据作为校准后的数据。
可选地,所述的方法还包括:
根据上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值、自适应算法的乘法增益值、上一次迭代滤波处理中使用的滤波参数和当前输入的待校准数据,计算得到当前迭代滤波中使用的滤波参数。
可选地,所述的方法还包括:
滤波参数的更新计算公式包括u(n)=u(n-1)+N.e(n-1)X(n);
其中,u(n)为更新后的滤波参数,u(n-1)为上一次迭代滤波处理中使用的滤波参数,e(n-1)为上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值,N为自适应算法的乘法增益值,X(n)为当前输入的待校准数据。
可选地,所述滤波参数至少包括滤波器的收敛步长。
可选地,所述的方法还包括:
通过调整自适应算法的乘法增益值,使得滤波器的收敛步长大于预设的步长阈值,预设的步长阈值是根据预设的迭代滤波处理速度和精度要求进行设置。
本发明还提供一种数据校准装置,包括:
滤波模块,用于利用自适应滤波器对待校准数据进行n次迭代滤波处理,在每一次迭代滤波处理中使用的滤波参数都是根据上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值更新后的滤波参数;
比较模块,用于将每次迭代滤波处理后得到的输出数据和预设的参考输出数据进行比较,若两者的差值小于预设的误差阈值,停止迭代滤波处理,并将此时得到的输出数据作为校准后的数据。
可选地,所述的装置还包括:
滤波参数更新模块,用于根据上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值、自适应算法的乘法增益值、上一次迭代滤波处理中使用的滤波参数和当前输入的待校准数据,计算得到当前迭代滤波中使用的滤波参数。
可选地,所述滤波参数更新模块具体用于:
滤波参数的更新计算公式包括u(n)=u(n-1)+N.e(n-1)X(n);
其中,u(n)为更新后的滤波参数,u(n-1)为上一次迭代滤波处理中使用的滤波参数,e(n-1)为上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值,N为自适应算法的乘法增益值,X(n)为当前输入的待校准数据。
可选地,所述滤波参数至少包括滤波器的收敛步长。
可选地,所述的装置还包括:
调整模块,用于通过调整自适应算法的乘法增益值,使得滤波器的收敛步长大于预设的步长阈值,预设的步长阈值是根据预设的迭代滤波处理速度和精度要求进行设置。
本发明实施例通过建立一种滤波器的闭环控制系统,利用自适应滤波器对待校准数据进行n次迭代滤波处理,在每一次迭代滤波处理中使用的滤波参数都是根据上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值更新后的滤波参数,以减少输出数据的误差和提高数据的精度。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述XXX,但这些XXX不应限于这些术语。这些术语仅用来将XXX彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一XXX也可以被称为第二XXX,类似地,第二XXX也可以被称为第一XXX。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
本发明实施例建立一种滤波器的闭环控制系统,对输入的待校准数据进行滤波处理,得到滤波处理后的输出数据,根据输出数据与预设的参考输出数据之间的差值通过自适应算法更新滤波参数,以减少输出误差和提供数据精度。
图1为本发明一实施例提供的数据校准方法流程示意图,如图1所示,包括:
101、利用自适应滤波器对待校准数据进行n次迭代滤波处理,在每一次迭代滤波处理中使用的滤波参数都是根据上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值更新后的滤波参数;
本实施例中,更新滤波参数的具体实现包括:根据上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值、自适应算法的乘法增益值、上一次迭代滤波处理中使用的滤波参数和当前输入的待校准数据,计算得到当前迭代滤波中使用的滤波参数。
具体地,滤波参数的更新计算公式包括u(n)=u(n-1)+N.e(n-1)X(n);
其中,u(n)为更新后的滤波参数,u(n-1)为上一次迭代滤波处理中使用的滤波参数,e(n-1)为上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值,N为自适应算法的乘法增益值,X(n)为当前输入的待校准数据。
图2为本发明实施例提供的基于自适应算法的滤波参数更新反馈控制图,如图2所示,滤波器参数的更新必须在得到滤波后的输出数据Y(n)才可以进行,因此,滤波器参数的更新和得到滤波后的输出数据是无法同时进行的,为了能够实时更新滤波器参数,进而根据更新后的滤波参数进行滤波处理得到滤波后的输出数据,本发明实施例中可根据上一次滤波处理后得到的误差值e(n-1),通过上述公式计算更新后的滤波器参数,这样就可以提高滤波的实时性。
102、将每次迭代滤波处理后得到的输出数据和预设的参考输出数据进行比较;
本发明实施例中可以预设参考输出数据,参考输出数据是期望的输出数据,期望的输出数据是根据不同的用途来设置的,可以根据智能设备中提供数据输出的模块的具体性能进行设置,例如对电池提供的电压数据进行滤波时,可以根据电池的化学性能预设一个参考输出电压数据。
如图2所示,每次迭代滤波处理后得到的输出数据Y(n)与参考输出数据R(n)之间的差值为误差值e(n)。
103、当两者的差值小于预设的误差阈值,停止迭代滤波处理,并将此时得到的输出数据作为校准后的数据。
本发明实施例中,可以根据滤波的精度要求具体设置误差阈值,精度要求高则设置的误差阈值可以小一点,精度要求不高则设置的误差阈值可以大一点。
若当前迭代滤波处理后得到的误差值e(n)小于预设的误差阈值,说明迭代滤波处理后得到的输出数据Y(n)趋近于期望的输出数据,停止迭代滤波处理,并将此时得到的输出数据作为校准后的数据。
需要说明的是,本发明实施例中所述滤波参数至少包括滤波器的收敛步长。
通常,在自适应滤波迭代处理的初始阶段,误差值e(n)较大会引起收敛步长增大,此时的收敛速度是较大的,随着自适应滤波迭代次数的增加,误差值e(n)逐渐减小,相对应的收敛步长也会减小,收敛速度降低。为了减小迭代滤波处理的次数(即加快滤波迭代速度)以及每一次迭代滤波处理后得到误差值(即提高滤波迭代的精度),可以通过调整自适应算法的乘法增益值N,使得滤波器的收敛步长大于预设的步长阈值,其中,预设的步长阈值是根据预设的迭代滤波处理速度和精度要求进行设置。
图3为本发明实施例的数据校准方法在电池电量校准中的应用示意图,如图3所示,电池设备的充电电压和充电电流会经过ADC模块转换为数字信号,电量计算一般会由库仑计经积分算法获得实际数值(为输入值X(n)),同时可以通过校准设备根据充电电压生成电压-电量的数值模型,该模型提供参考的电池电量参数(为参考输出R(n))。上述的两个参数会经过图1所示的数据校准方法(即自适应滤波参数校准控制机制)合理控制收敛步长来调整收敛速度和误差值,获得校准后的电量用于设备显示或其他的控制策略。
图4为本发明一实施例提供的数据校准装置结构示意图,如图4所示,包括:
滤波模块,用于利用自适应滤波器对待校准数据进行n次迭代滤波处理,在每一次迭代滤波处理中使用的滤波参数都是根据上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值更新后的滤波参数;
比较模块,用于将每次迭代滤波处理后得到的输出数据和预设的参考输出数据进行比较,若两者的差值小于预设的误差阈值,停止迭代滤波处理,并将此时得到的输出数据作为校准后的数据。
可选地,所述的装置还包括:
滤波参数更新模块,用于根据上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值、自适应算法的乘法增益值、上一次迭代滤波处理中使用的滤波参数和当前输入的待校准数据,计算得到当前迭代滤波中使用的滤波参数。
其中,所述滤波参数更新模块具体用于:
滤波参数的更新计算公式包括u(n)=u(n-1)+N.e(n-1)X(n);
其中,u(n)为更新后的滤波参数,u(n-1)为上一次迭代滤波处理中使用的滤波参数,e(n-1)为上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值,N为自适应算法的乘法增益值,X(n)为当前输入的待校准数据。
其中,所述滤波参数至少包括滤波器的收敛步长。
可选地,所述的装置还包括:
调整模块,用于通过调整自适应算法的乘法增益值,使得滤波器的收敛步长大于预设的步长阈值,预设的步长阈值是根据预设的迭代滤波处理速度和精度要求进行设置。
本发明实施例所述的装置可以执行图1所示的方法,其实现原理和技术效果不再赘述。
本发明实施例中,上述装置的结构中具体可以用数字滤波器、加法器、乘法器和比较器来实现。
其中,数字滤波器利用自适应滤波器对待校准数据进行n次迭代滤波;
乘法器计算N.e(n-1)X(n)的值,其中,e(n-1)为上一次迭代滤波处理后得到的输出数据和预设的参考输出数据之间的差值,N为自适应算法的乘法增益值,X(n)为当前输入的待校准数据;
加法器将上一次迭代滤波处理中使用的滤波参数u(n-1)与乘法器的计算结果相加得到更新后的滤波参数u(n);还可以通过调整自适应算法的乘法增益值,使得滤波器的收敛步长大于预设的步长阈值,预设的步长阈值是根据预设的迭代滤波处理速度和精度要求进行设置。
比较器将每次迭代滤波处理后得到的输出数据和预设的参考输出数据进行比较,若两者的差值小于预设的误差阈值,停止迭代滤波处理,并将此时得到的输出数据作为校准后的数据。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。