滑动窗口是在接收信号到达的前后才有效的一个时间窗口,窗口之外的信号一概不予处理,这样可以减小噪声的干扰并降低运算量。为保证检测信号的有效性,必须先去掉接收端的干扰,采用窗口和脉宽检测是两个行之有效的方法。测量窗口的初始位置是根据人机对话输入的参数设置的,并通过有效信号的检测位置不断调整窗口到合适的位置。窗口的设置限定了信号的接收范围,在一定程度上消除了噪声的干扰,同时也减少了要处理的信号样本数,降低了运算量。 滑动窗口的设置方法为:单片机根据人机对话输入的参数(管径、壁厚及流体),计算出信号自发射探头到接收探头所需传播时间的近似值,根据该近似值控制数据采样的开始时间,每组数据采集15000个点,由于采集的数据足够多,完全可以保证有用数据能够被采集到。经过AGC电路的调整,当采集到的信号幅度满足要求时便对它们分别进行FIR滤波,再根据幅值找出有用信号的最大值点并进行信号有效性判断,信号确定为有效后再进行滑动窗口调整,将有用信号移动到有效窗口。由于换能器探头的谐振频率为1 MHz,采样频率为40 MHz,探头发射信号为5个周期,考虑到探头的余波,为了更好地采集接收信号,窗口宽度设定为800个信号点,即20个信号周期。图2所示为窗口调整前部分内存中的数据,从上面可以看到两组信号,前者幅度小,是超声波沿管壁直接传递而形成的,其传播速度快,传播时间短,后者是超声波沿正常路径传输的结果,幅度较大,也是需要的有用数据。图3是窗口调整后内存中的数据,可以看到,有效数据已被移动到最左侧的有效窗口中,后面的插值及相关运算都是只对该段数据进行。
在超声波发生电路中,由同一触发脉冲触发2个相同的换能器产生超声波,测量中2路采集信号具有很大的相似性,因此能对信号进行相关处理。在超声波流量计中,对时间测量精度的要求很高,为了提高分辨率,可以采取一般的采样方法,然后通过数字信号处理中常用的插值算法,由软件提高系统的采样频率,从而提高时间的分辨率。 换能器的谐振频率为1 MHz,采样频率为40 MHz,采样的时间分辨率为25 ns,对于超声波流量计,这样的分辨率是不够的,还必须提高信号的采样频率,即进行插值处理。如果采取先补“O”再滤波的方法,必须增加滤波器的阶数,同时由于插值后样本增加,滤波运算所需要的时间会大大增加。因此该系统采用线性插值的方法,在相邻2个数据点之间插人19个点,这些点与插入前的相邻点在同一直线上,这样时间分辨率可以达到1.25 ns。该系统时间差的测量是通过比较两组超声波信号的皮尔逊积差相关系数的值来确定的。 相关系数r的重要特征为:0<| r |<1,r为正值即正相关,r为负值即负相关。系统通过不断改变两组采样信号的相位关系,同时计算出相关系数,当相关系数最大时两组采样信号之间的相位差即为两组信号的时间差值。 因有效窗口两端数据的变化很小(如图3所示),在小范围内改变两组数据的相位关系后,可以认为相关系数公式中的分母项的值是不变的,其不随两组采样信号的移相变化而变化。因此,在判断相关系数最大值时,只需计算相关系数公式中的分子式项n∑xiyi。一(∑xi)(∑yi)的值,然后判断它的最大值即可,这样可以大大地减少系统的运算量,提高系统的反应的速度。
为了检验相关算法简化后对结果带来的影响,把采集到窗口中的两组数据经滤波与插值后,通过Matlab分别对完整的相关算法及简化算法进行仿真分析,仿真波形如图4所示。 其中上部为简化算法的仿真结果,下部为完整相关算法的仿真结果。图5为一部分仿真数据。从图中可以看出,完整相关算法的相关系数据介于+1~-1之间,最大值(接近于1)出现在5001的位置。相比之下,简化算法的值大若干数量级,这是简化算法略去分母的结果,但这对计算没有影响,只要得到最大值出现的时间,重要的是简化算法的最大值也出现在5001的位置,并且其波形与完整的相关算法几乎一样。由此可见,相关算法的简化并没有对这里的计算带来误差。 为进一步证实系统的可用性,将该系统与宝丽声DCT7088超声波流量计进行了对比测量,被测管道为外径为45 mm的钢管,壁厚3.5 mm,管道中的水由循环泵驱动,通过变频器控制循环泵的转速来得到不同的流速,测量结果如图6所示,二者测量结果已经十分逼近。
|