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)模拟滤波器,再用双线性变换法设计出数字滤波器。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查