3.2 软件功能模块

该虚拟示波器有5大功能模块:信号采集、用户界面、频谱分析、数字滤波、波形显示。

3.2.1信号采集模块

信号采集模块主要完成数据的采集,根据采集信号的不同选用不同的采样频率。该模块中的应用程序通过采集卡的驱动程序和硬件进行通信,如果把该模块放在程序主线程中实现,那么,当应用程序与驱动程序进行数据通信时主界面就会冻结。为了解决这个问题,本文直接创建一种子线程来单独完成与驱动程序的通信任务,让主界面专用于响应视窗界面的信息。在子线程中通过调用gage_start_capture()函数进行数据的采集。图2示出数据采集流程。数据采集的主要代码如下:

3.2.2用户界面模块

界面主要切分为3个视图:主视图基类为ScrollView,用于显示波形;2个视图基类为For-mView,1个用于动态显示采集数据的特征参数,另1个用于对示波器进行操作。整个软件的主界面设计如图3所示。

3.2.3频谱分析模块

本软件利用快速傅里叶变换(FFT)进行频谱分析。频谱分析采用按时间抽取FFT算法,然后将幅值频谱分析结果在用户界面上以坐标曲线形式显示。进行FFT时可以选择点数,有1024、2048、4096 3种选择,如果点数不够,程序自动补零。

3.2.4数宇滤波模块

本软件可以对所采集的信号进行低通和高通滤波。首先根据给定通带截止频率、阻带截止频率、通带衰减和阻带衰减设计出巴特沃思(Butter-worth)模拟滤波器,再用双线性变换法设计出数字滤波器。