本发明属于数据采集,具体涉及一种基于soc自适应滤波的高精度ad采集方法。
背景技术:
1、传统的ad采集系统通常在采集模拟信号后,将其转换为数字信号并进行滤波处理,以消除噪声信号干扰。然而,传统的信号滤波方法通常是将采集数据传输至计算机端进行处理,而且传统的滤波算法,如平均滤波算法,容易受到各种因素的影响,包括环境噪声,异常数值以及系统误差,难以实现对复杂信号的准确处理。此外,传统滤波算法通常需要预先设定参数或者滤波系数,缺乏针对实时信号特征的自适应调整能力,因而在面对复杂多变信号时处理效果较差。
2、例如,中国专利公开号cn103604984a,公开日2014年02月26日,发明的名称为一种基于最小二乘法提高ad采集精度的方法,该申请案公开一种基于最小二乘法提高ad采集精度的方法,不足之处(缺点)是最小二乘法算法复杂度较高,会大大消耗片上资源,并且需要上位机同步输入标准信号进行校准,对于系统集成性较差。
技术实现思路
1、有鉴于此,本发明提供一种基于soc自适应滤波的高精度ad采集方法,克服了现有技术中的ad采集精度较低与集成性较差的不足。
2、为了实现上述技术目的,本发明所采用的具体技术方案为:
3、一种基于soc自适应滤波的高精度ad采集方法,所述soc基于zynq架构,所述zynq包括arm处理器核心以及fpga,所述arm为ps端,所述fpga为pl端;所述于soc自适应滤波的高精度ad采集方法包括以下步骤:
4、s1:设置所述ps端与pl端按照apb总线通信协议进行数据通信,ps端基于所述apb总线通信协议向所述pl端发送采集指令并接收pl端的ad采集数据;
5、s2:所述ps端在接收到ad采集数据后,采用自适应滤波算法对ad采集数据进行算法滤波;
6、s3:采用趋势异常判断算法对滤波后的ad采集数据进行数值分析,筛选出整个数据流中瞬时出现的突出的异常数据点,对所述异常数据点进行丢弃或上报处理。
7、进一步的,所述自适应滤波算法基于以下公式依次按顺序计算实现:
8、x(t)=ax(t-1)+w(t)
9、z(t)=hx(t)+v(t)
10、x(t|t-1)=ax(t-1|t-1)
11、p(t|t-1)=ap(t-1|t-1)a+q
12、x(t|t)=x(t|t-1)+kg(t)[z(t)-hx(t|t-1)]
13、kg(t)=p(t|t-1)h/[hp(t|t-1)h+r]
14、p(t|t)=(i-kg(t)h)p(t|t-1)
15、其中:
16、x(t)代表t时刻系统的真实值;w(t)代表t时刻系统的过程噪声;a是系统自身参数;z(t)代表t时刻的ad采集的测量值;h代表系统测量参数值;v(t)代表ad系统噪声的测量值;x(t|t-1)代表在前一时刻状态值已知的情况下,预测的当前时刻的结果值;x(t-1|t-1)代表上一状态最佳的结果;p(t|t-1)和p(t-1|t-1)分别代表状态x(t|t-1)和x(t-1|t-1)对应时刻下的方差;a’是a的转置矩阵;q代表系统过程噪声的协方差;kg为自适应滤波增益。
17、进一步的,使用自适应滤波算法时,采用滑动分块算法对ad采集数据进行迭代:
18、若ad采集了n个数据点,选取前n个数据点内存作为暂存空间,采用所述自适应滤波算法对前n个数据点进行滤波,滤波后,剔除第1个数据点,让第n+1个数据点进入所述暂存空间再次执行所述自适应滤波算法,之后对第n+2~n个数据点依次执行上述操作。
19、进一步的,所述趋势异常判断算法的实现方法为:
20、选取奇数个ad采集数据的数据点,进行相邻值作差运算,差值记为di即:
21、di=(xi-xi+1)
22、设s+记录di为正时的数量,s-记录di为负时的数量;当s+>s-时,有上升的趋势,s+<s-时有下降的趋势;异常数据点的判断依据为上升或下降趋势速率:若某一时刻上升或下降趋势速率相较前一时刻或后一时刻变化剧烈则判别为异常值。
23、进一步的,所述基于soc自适应滤波的高精度ad采集方法还包括s4:循环执行所述s2-s3。
24、进一步的,所述分块迭代具体为:
25、采用滑动分块算法对ad采集数据进行迭代,若ad采集了n个数据点,选取前五个数据点内存作为暂存空间,采用所述自适应滤波算法对前五个数据点进行滤波,滤波后,剔除第一个数据点,让第6个数据点进入所述暂存空间再次执行所述自适应滤波算法,之后对第7-n个数据点依次执行上述操作。
26、与现有技术相比,本发明的有益效果是:
27、相比于传统ad采集方法需要将ad采集数据传输至计算机端进行处理,本发明不需要计算机端,采用集成化zynq架构,在采集数据时同步进行滤波处理,降低了系统的成本并提高了系统的集成性;
28、传统滤波算法通常需要预先设定参数或者滤波系数,缺乏对实时信号特征的自适应调整能力,本发明设计的自适应滤波算法不需要提前设定滤波系数,可以自适应修正滤波系数,可以更好的处理复杂多变的信号类型,同时提高了ad采集数据的精度;
29、本发明相比传统ad采集方法,本发明融合了趋势异常判断算法,可及时对错误数据进行处理。
1.一种基于soc自适应滤波的高精度ad采集方法,所述soc基于zynq架构,所述zynq包括arm处理器核心以及fpga,所述arm为ps端,所述fpga为pl端;其特征在于,所述于soc自适应滤波的高精度ad采集方法包括以下步骤:
2.根据权利要求1所述的基于soc自适应滤波的高精度ad采集方法,其特征在于,所述自适应滤波算法基于以下公式依次按顺序计算实现:
3.根据权利要求2所述的基于soc自适应滤波的高精度ad采集方法,其特征在于,使用自适应滤波算法时,采用滑动分块算法对ad采集数据进行迭代:
4.根据权利要求3所述的基于soc自适应滤波的高精度ad采集方法,其特征在于,所述趋势异常判断算法的实现方法为:
5.根据权利要求4所述的基于soc自适应滤波的高精度ad采集方法,其特征在于,所述基于soc自适应滤波的高精度ad采集方法还包括s4:循环执行所述s2-s3。
6.根据权利要求5所述的基于soc自适应滤波的高精度ad采集方法,其特征在于,所述分块迭代具体为: