3.2.5波形显示模块
虚拟示波器的工作原理是对信号波形进行高速采样,采样值被数字化后存储起来,当重建波形时便从缓冲区取数,然后用清晰、均匀一致的轨迹映像在屏幕上。由于采集的模拟波形经数字化后成为一串离散数据,因此,如何重建信号波形是虚拟示波器设计中的关键问题之一。当前的波形显示主要有分段显示和滚动显示。这里采用滚动显示,并且提出一种新的滚动显示算法,突破了滚动显示只能观察变化缓慢的信号的限制。算法核心思想如下:
(1)得到所采集数据块的第1个和最后1个数据点的横坐标m_xMin和rn_xMax,m_xMax-m_xMin为波形的逻辑宽度。
(2)m_xMax-m_xMin的值为逻辑坐标,把它转化为设备坐标cx,用cx设定整个滚
动视图的宽度。
(3)为了提高画图的效率,只需画出滚动视图可视部分的图形,也就是剪裁区的图形,因此要得到剪裁区。
(4)画出坐标及剪裁区内的一段波形。
(5)利用CSplitterWnd::DoSerollBy()函数,根据采样间隔的大小决定断滚动视图速度的快慢。这样视图滚动以后相应的剪裁区也会发生改变,促使动态画出新的波形。
主要代码如下:
4、 实验与讨论
在实验中使用该系统对正弦信号和锯齿波信号进行了采集,并对2个通道的信号分别进行了频谱分析。实验时示波器参数设置如下:采样模式为双通道,其中通道1对正弦信号进行采样,通道2对锯齿波信号进行采样;采样率为120Ms/s;采样深度为16 000点;触发源为软件触发;触发时间极限为20ms;输入信号电压范围为~5V。实验结果如图4所示。达到了预定的效果。