一种基于移动正弦拟合的快速解包络算法的制作方法

文档序号:11947190阅读:431来源:国知局
一种基于移动正弦拟合的快速解包络算法的制作方法与工艺
本发明属于超声波测距
技术领域
,具体涉及一种基于移动正弦拟合的快速解包络算法。
背景技术
:超声波测距是一种有源非接触式测量技术,利用超声波在空气中的定向传播测量声波的传播距离,被广泛应用于液位监测、倒车雷达、建筑工地、工业现场等的距离测量。目前,国内外研究较多的超声波测距原理主要包括相位差检测法、多频测距法和飞行时间检测法。相位差法通过比较超声波发射时与接收时的相位差进行测距,该方法受到测量范围限制,当测量范围大于一个波长时,其测量复杂度会大大增加;多频超声测距针对同一距离发射三种不同频率的超声波,根据不同频率得到的发射波与接收波之间的相位差不同进行测距,这种方法对硬件要求较高,不易于实现;飞行时间检测法主要依据于公式d=c*t,其中c是超声波在空气中的传播速度,t是超声波发射到接收端所需的飞行时间。在这三种典型原理中,飞行时间检测法运用最广泛,技术也最成熟。飞行时间检测法的技术关键是接收波起点时间的精确判断,因为当超声波发射端发射非连续的激励脉冲时,超声传感器的起振有个上升时间,使得接收波具有惯性延迟,起振阶段幅值较小,其波形近似于一种慢起伏正弦调制信号。而对于固定的发射频率,株洲工学院潘宗预等人经过大量实验表明,接收波包络起点时刻t1与到达包络峰值时刻t2的时间间隔τ可以确定,因此通过检测接收波包络峰值即可确定起点时刻,如图1所示(文献1)。为精确搜索出包络峰值,可利用最小二乘法对接收波进行移动式分段拟合。通过对接收波信号进行等间隔采样,以第一个采样数据为起点,分别对固定长度的若干组数据进行移动式(每组后移一个采样点)正弦拟合,每组获得的正弦峰值即对应于接收波包络的一个解,其中的最大解即为包络峰值。这种方法通过多次拟合能实现接收波包络的精确提取,但由于每组数据与前一组数据之间除首尾两个数据点外,其他数据点的拟合存在大量重复运算,因此有必要对其运算过程进行精简,以提高包络求解速度。[文献1]“超声波测距精度的探讨”,湖南大学学报(自然科学版),第29卷第3期(2002)。技术实现要素:为了解决上述技术问题,本发明提供了一种基于移动正弦拟合的快速解包络算法,该算法可以实现脉冲超声测距中接收信号波包络的快速、精确提取。本发明所采用的技术方案是:一种基于移动正弦拟合的快速解包络算法,其特征在于,包括以下步骤:步骤1:等间隔采样接收波信号,确定移动正弦拟合数据的长度;步骤2:利用最小二乘法对所选数据组Xk=[xk,xk+1,…,xk+n-1]进行正弦拟合,获得随采样数据点变化的传输矩阵Sk和固定矩阵T,根据Sk与T计算得到其包络正弦峰值解;其中,1≤k≤N-n+1,n为拟合数据的长度,N为采样点数;步骤3:根据拟合数据组Xk获得的传输矩阵Sk计算得出下一组待拟合数据Xk+1的传输矩阵Sk+1,再由Sk+1计算得到数据组Xk+2的传输矩阵Sk+2,以此类推,利用递推法得到后面每组待拟合数据组的传输矩阵S;步骤4:根据每组数据对应的传输矩阵S和固定矩阵T直接计算获得其对应的正弦峰值,进而得到接收超声波的包络解集。作为优选,步骤1的具体实现过程是:设定拟合数据的长度为n,以δ=2π/n为角度间隔对接收波信号进行N次采样获得数据X=[x1,x2,…,xi,…,xN],i=1,2,…,N;将采样数据X进行移动式分组,每组后移1个采样点,共得到N-n+1组待拟合数据,若当前拟合数据组为Xk=[xk,xk+1,…,xk+n-1],则下一组拟合数据为Xk+1=[xk+1,xk+2,…,xk+n],其中,1≤k≤N-n+1。作为优选,步骤2的具体实现包括以下子步骤:步骤2.1:假设待拟合数据组Xk的正弦表达式为x′i=Akcos(θk+Δi)+Ck,其中Δi=i·δ,Ak、θk和Ck分别为振幅、相位角和常数项,则其对应的包络正弦峰值解Mk即为Ak与Ck之和;步骤2.2:令和θk=aktan2(-bk,ak),将步骤2中的正弦表达式展开成x′i=akcosΔi+bksinΔi+Ck,则有其中,ak为展开后的余弦系数,bk为正弦系数;步骤2.3:利用最小二乘法对数据组Xk进行正弦拟合,其拟合偏差表达为令矩阵:Tk=Σi=kk+n-1cos2ΔiΣi=kk+n-1sinΔicosΔiΣi=kk+n-1cosΔiΣi=kk+n-1sinΔicosΔiΣi=kk+n-1sin2ΔiΣi=kk+n-1sinΔiΣi=kk+n-1cosΔiΣi=kk+n-1sinΔiΣi=kk+n-11;]]>Sk=Σi=kk+n-1xicosΔiΣi=kk+n-1xisinΔiΣi=kk+n-1xi]]>在拟合误差式两端分别对ak、bk和Ck求导后得到根据获得的ak、bk和Ck值计算得出正弦峰值解Mk。作为优选,步骤3的具体实现包括以下子步骤:步骤3.1:根据数据组Xk的矩阵Tk和Sk计算下一组数据Xk+1对应的矩阵Tk+1和Sk+1;Xk+1与Xk相比实际上是去掉了第一个值xk,同时结尾增加了xn+k;T矩阵的计算仅与Δi相关,由于Δi=i·2π/n,可得T矩阵在移动拟合过程中是固定不变的,即T=Tk+1=Tk;令推导得出传输矩阵Sk+1的计算公式为:Sk+1=(sk1-xk)cosδ+sk2sinδ+xk+ncos((n-1)δ)-(sk1-xk)sinδ+sk2cosδ+xk+nsin((n-1))δsk3-xk+xk+n;]]>其中,sk1、sk2和sk3分别代表传输矩阵S的三个元素;步骤3.2:根据获得的传输矩阵Sk+1和固定矩阵T计算得到ak+1、bk+1和Ck+1值,进而得出数据组Xk+1对应的正弦峰值解作为优选,步骤4的具体实现过程是:由获得的Sk+1计算得到数据组Xk+2的传输矩阵Sk+2,以此类推,利用递推法得到后面每组待拟合数据组的传输矩阵S;根据每组数据对应的传输矩阵S以及固定矩阵T直接计算获得其对应的正弦峰值,即可得到接收超声波的包络解{Mk+2,Mk+3,…,MN-n+1},进而获得接收波包络解集M,其中最大解Mmax即为接收波的包络峰值。本发明在移动正弦拟合的基础上,提出了一种利用传输矩阵递推运算的快速解包络算法,即只需要在第一组数据拟合时进行累加求和运算,其他数据组的拟合结果可直接通过传输矩阵S的递推运算进行快速求解,从而避免了中间的重复累加运算。该方法将每次拟合所需的2n+9次乘法与3(n-1)+6次加法运算减少到15次乘法与14次加减法,极大减少运算量的同时也降低了所占临时内存空间,更易于单片机嵌入式系统的实现。附图说明图1:现有技术中接收超声波信号及其对应的包络解曲线示意图。图2:本发明实施例中的接收波包络起点时刻t1与到达峰值时刻t2的关系示意图。图3:本发明实施例中的接收超声波信号及其对应的包络解曲线示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及示例性实施例,对本发明的快速解包络算法进行进一步详细说明。应当理解,此处所描述的示例性实施例仅用以解释本发明,并不用于限定本发明的适用范围。本发明提供的一种基于移动正弦拟合的快速解包络算法,包括以下步骤:步骤1:等间隔采样接收波信号,确定移动正弦拟合数据的长度;设定拟合数据的长度为n,以δ=2π/n为角度间隔对接收波信号进行N次采样得X=[x1,x2,…,xi,…,xN](i=1,2,…,N)。将采样数据X进行移动式分组(每组后移1个采样点),共得到N-n+1组待拟合数据,若当前拟合数据组为Xk=[xk,xk+1,…,xk+n-1](k=1,2,…,N-n+1),则下一组拟合数据为Xk+1=[xk+1,xk+2,…,xk+n];在本实例中,由发射端连续发射12个频率为40kHz的方波激励超声发射器产生超声信号,如图2中的点划线所示。在同直线方向约100m处的接收端将超声波信号转换为电信号,经放大电路处理后得到接收波信号,如图2中的实线所示。利用STM32单片机对接收波信号进行A/D采样,采样间隔时间为1.17us,采样数目N=2000点。对于频率为40kHz的超声信号,当采样时间间隔为1.17us时,每个周期内的A/D采样点为21,因此设定拟合数据的长度n=21,则角度间隔δ=2π/n=2π/21,以第一个采样点为起点进行移动式分组,共得到1980组待拟合数据;步骤2:假设待拟合数据Xk的正弦表达式为x′i=Akcos(θk+Δi)+Ck,其中Δi=i·δ,Ak、θk和Ck分别为振幅、相位角和常数项,则其对应的正弦峰值解Mk即为Ak与Ck之和;本实例中,所选的待拟合数据为X1=[x1,x2,…,xi,…,x21],假设其正弦表达式为x′i=A1cos(θ1+Δi)+C1,其中Δi=i·2π/21(i=1,2,…,21),A1、θ1和C1分别为振幅、相位角和常数项,接受波包络的第1个正弦峰值解M1=A1+C1;步骤3:令和θk=aktan2(-bk,ak),将上述正弦表达式展开成x′i=akcosΔi+bksinΔi+Ck,则有本实例中,令和θ1=a1tan2(-b1,a1),将上述正弦表达式展开成x′i=a1cosΔi+b1sinΔi+C1,则有步骤4:利用最小二乘法对所选数据组Xk进行正弦拟合,拟合偏差式为令矩阵和在拟合误差式两端分别对ak、bk和Ck求导后得到根据获得的ak、bk和Ck值计算得出其对应的正弦峰值解Mk;本实例中,利用最小二乘法对所选的数据组X1进行正弦拟合,在拟合偏差公式两端分别对a1、b1和C1求导后得其中,矩阵,矩阵由此可计算得到a1=-0.7723,b1=-1.2420和C1=2367.8,则得出接受波包络第1个正弦峰值解M1=a12+b12+C1=2369.3;]]>步骤5:利用递推法快速计算下一组拟合数据Xk+1对应的矩阵Tk+1和Sk+1。Xk+1与Xk相比实际上是去掉了第一个值xk,同时结尾增加了xn+k。T矩阵的计算仅与Δi相关,由于Δi=i·2π/n,可得T矩阵在移动拟合过程中是固定不变的,即T=Tk+1=Tk;令推导得出传输矩阵Sk+1的计算公式为本实例中,利用递推法快速计算第二组拟合数据X2对应的T2和S2矩阵,在本实例中,X2与X1相比实际上是去掉了第一个采样点x1,同时结尾增加了x22。由于T矩阵在移动拟合运算过程中是固定的,可得令根据递推计算公式得到传输矩阵:S2=(s11-x1)cosδ+s12sinδ+s22cos(21δ)-(s11-x1)sinδ+s12cosδ+s22sin(21δ)s13-x1+x22=(-8.1093-2369)cos(2π/21)-13.041sin(2π/21)+2362cos(20*2π/21)-(-8.1093-2369)sin(2π/21)-13.041cos(2π/21)+2362sin(20*2π/21)49724-2369+2362=-18.2819-8.008049717;]]>步骤6:根据获得的传输矩阵Sk+1和固定矩阵T计算得到ak+1、bk+1和Ck+1值,进而得出数据组Xk+1对应的正弦峰值解本实例中,根据获得的传输矩阵S2和固定矩阵T计算得到a2=-1.7487,b2=-0.7356,C2=2367.5,进而得出步骤7:由获得的Sk+1计算得到数据组Xk+2的传输矩阵Sk+2,以此类推,利用递推法得到后面每组待拟合数据组的传输矩阵S;根据每组数据对应的传输矩阵S以及固定矩阵T直接计算获得其对应的正弦峰值,即可得到接收超声波的包络解{Mk+2,Mk+3,…,MN-n+1},进而获得接收波包络解集M,其中最大解Mmax即为接收波的包络峰值。本实例中,由获得的传输矩阵S2计算数据组X3的传输矩阵S3,以此类推,利用递推法依次得出各数据组的传输矩阵{S3,S4,…,S1980},再由传输矩阵S和固定矩阵T即可计算得出各包络解{M3=2374.8,M4=2374.8,…,M1980=2390.2},进而获得接收波包络的解集M,如图2中的虚线所示,其中最大解Mmax=2575.8即为接收波的包络峰值。请见图3,是本发明实施例中的接收超声波信号及其对应的包络解曲线示意图。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1