3 波形消隐
以上介绍了单幅波形显示的方法,在实际使用时一般需要连续显示波形,连续显示波形时,在显示下一幅波形之前,首先需要对上一幅波形清除或消隐。
VB的图片框和窗体提供了CLS方法,可以实现波形的清除,但在连续显示和清除波形时,存在严重的闪烁现象。
将显示波形的图片框或窗体的DrawMode 属性在属性框中设置成13 - Copy Pen,或在程序中用类似Picture1.DrawMode = vbXorPen 的语句将画笔设置成异或笔,显示波形后经过二次重画即可消隐已经显示的波形。整幅显示-整幅消隐波形一样可出现一定的闪烁,但通过消隐一条线段-显示一条新线段的方法可彻底消除闪烁问题。
该方法对波形显示区中的文字或其他控件均不会造成影响。
4 事件监测 VB是面向对象的程序设计语言,连续显示波形一般需要使用循环语句。在循环显示波形时,通常不能通过波形条件或循环内的条件退出循环,而是需要通过事件驱动退出循环。VB提供了Doevents函数,该函数的功能是转让控制权,以便让操作系统处理其它的事件,可利用该函数实现循环控制中的事件监测。在外部事件中给出退出循环的条件,并在循环中判断该条件,以便在条件成立时退出循环,实现波形的连续显示和退出控制。
5 双通道波形显示 设计双通道波形显示程序时,可在窗体上放置两个图片框,每个图片框用于显示一个通道的波形,编程时在两个图片框中交替显示一个通道的波形,当显示速度较快时,宏观上可得到双通道同时显示的效果。
6 数字滤波 数字滤波算法较多,以下介绍两种简单的滤波方法:
6.1 过滤系统噪声
在显示波形之前,将采样波形数据中每一个值与一个门限值比较,如果小于该门限值,即将该采样值赋予0值,然后显示处理后的数据波形,即可滤除系统噪声。
但使用时需注意的是:该方法易将有用波形滤除。
6.2 过滤瞬间干扰噪声
系统工作时,有时会出现瞬间干扰噪声。可在显示波形之前进行多次采样,然后将采样同一点的多个数据去掉最大值和最小值,对剩余的数据取平均值,再将得到的平均值通过波形显示程序显示,一般可有效地滤除瞬间干扰噪声。但该方法对显示速度会有一定的影响,可根据需要应用。
7 结束语 根据以上论述设计的数字波形显示程序已在某检测软件中应用,使用效果良好,工作稳定、可靠,并具有一定的抗干扰能力。同时也取得了一定的经济效益和社会效益。
查看本文来源