武汉工程大学邮电与信息工程学院毕业设计(论文)
LabVIEW所使用的术语、图标和概念都是技术人员、科学家、工程师所熟悉的,故而即使用户没有多少编程经验,同样也能利用LabVIEW来开发自己的应用程序[7]。
以LabVIEW为基础的本声卡信号采集系统主要完成了信号采集、存储、回放和频域分析等功能。本设计对于信号采集如此多的功能采用了分模块显示设置,这样使得主程序前面板简单明了,且功能齐全,方便了用户的操作。
第3章 系统功能设计及实现
3.1 软件开发工具LabVIEW介绍
LabVIEW是一种基于G语言(Graphical programming lan—guage)的可视化(图形化)优秀开发平台,主要用于数据的采集、分析、处理和表达,总线接口、VXI仪器以及GPIB与串口仪器的驱动程序编制和驱动虚拟仪器。它与C、Pascal等传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具等。与传统编程语言最大的区别是LabVIEW使用图形语言(即各种图标、图形符号、连线等),以框图的形式编写程序。络评估作为网络优化的第一步,工作范围包括通过对原有网络进行数据采集、现场检查,并对网络组网合理性、业务发展需求进行掌握和分析,同时和客户保持双向沟通,良性互动,提出适合客户网络发展的优
13
武汉工程大学邮电与信息工程学院毕业设计(论文)
化建议。
一个LabVIEW程序包括三个主要部分:前面板、框图程序、图标/接线端口。前面板是交互式图形化用户界面,用于设置输入数值和观察输出量。框图程序是利用图形语言对前面板的控制量和指示量进行控制。图标/接线端口用于把LabVIEW程序定义成一个子程序,以便在其它程序中加以调用[7]。
对虚拟示波器的设计和实现是建立在labVIEW和声卡采集系统之上的。
LabVIEW中有关声卡的函数主要包括声音输入函数、声音输出函数、分析函数和文件函数。
1. 声音输入函数 (1) SI Config
该函数的主要功能是设置声卡中与数据采集有关的一些硬件参数,如采样率,数据格式,缓冲区长度等。声卡的采样率由内部时钟控制,只有3~4种固定频率可选,一般将采样率设置为44100Hz 数据格式设置为16位字长。缓冲区长度可取默认值。为声音输入功能设置一个声音驱动。当设置好了后,你可以使用SI Start VI 和 SI Read VI从设备中获取声音。
(2) SI Start
14
武汉工程大学邮电与信息工程学院毕业设计(论文)
该函数用于通知声卡开始采集外部数据。采集到的数据会被暂存在缓冲区中,这一过程无需程序干预,由声卡硬件使用DMA直接完成,保证了采集过程的连续性。命令声音驱动开始堆积采集进来的数据。如果驱动已经运行了,命令这个VI不要起作用。
(3) SI Read
该函数用于等待采样数据缓冲区满的消息。当产生这一消息时,它将数据缓冲区的内容读取到用户程序的数组中,产生一个采样数据集和。若计算机速度不够快,使得缓冲区的内容被覆盖,则会产生一个错误信息。这时应调节缓冲区的大小,在采样时间与数据读取之间找到一个理想的平衡点。
从声音输入驱动中读取数据。当数据到达驱动的缓冲区时,数据缓冲后将获得数据,否则等待数据的到来,假如因为一些原因,未缓冲的数据被写入,将没有数据获得,替代,一个溢出的错误被报告。
(4) SI Stop
该函数用于通知声卡停止采集外部数据。已采集而未被读出的数据就会留在缓冲区中,可以使用SI Read 函数一次读完。命令声音输入驱动停止堆积采集进来的数据。采集到的数据存储在系统的缓冲器中,并且数据能用SI Read VI收集到。如果驱动不再运行,命令这个VI不要作用。
15
武汉工程大学邮电与信息工程学院毕业设计(论文)
(5) SI Clear
该函数用于完成最终的清理工作,例如关闭声卡采样通道,释放请求的一系列系统资源(包括DMA 缓冲区内存 声卡等)。关闭声音输入驱动联合task ID in和释放驱动使用的计算机系统得所有资源。
2. 声音输出函数 (1) SO Config
该函数用于设置一个声音输出设备,并且开创一个声音ID输出任务。利用这个VI来配置这个声音设备后,这个设备就将存在于暂停模式中,且可以利用SO Write (声音输出写入)和SO Start (声音输出开始)VI虚拟模块来完成这个数据的应用程序。
(2) SO Write
该函数需要联合task ID in向声音输出设备写入数据。如果这个设备已经开始运行,则数据会立刻转移到缓冲器中。如果设备正处于暂停状态,则数据不会开始转移直到SO Start声音输出开始键开始运行为止。
(3) SO Pause
要暂停一个声音输出设备需要联合task ID in端子的设置。如果这个设备正处于暂停模式中,我们则叫这个VI不工作。当你用这个VI时,将没有数据丢失,并且这个正确的位置将会被保存。这时我们要用SO Start VI(输出声音开始模块)来再次启动输出。Mac OS这个VI则可能不可以立刻停止声音的录入。
(4) SO Clear
16
武汉工程大学邮电与信息工程学院毕业设计(论文)
关闭输出声音设备与task ID in端子相关联,并且任何设备运用的资源要释放都必须送到计算机系统中去。
3. 分析函数
(1) Butterworth Filter
通过利用Butterworth Coefficients VI来生成数字滤波功能。
(2) Scaled Time Domain Window
将时域信号应用于选择的窗口:选择0、Uniformu不变窗;1、Hanning汉宁窗;2、Hamming海明窗;3、Blackman-Harris布莱克曼哈里斯窗;4、Exact Blackman准确的布莱克曼窗;5、Blackman布莱克曼窗;6、Flat Top 水平顶窗;7、Four Term Blackman-Harris四组布莱克曼哈里斯窗;8、Seven Term Blackman-Harris七组布莱克曼哈里斯窗;9、Low Sidelobe低斜窗。
(3) Auto Power Spectrum
计算单极性,多极性时域信号的功率谱分析。 (4) Power & Frequency
计算一个时域信号频谱中估计的频率峰值。 4. 文件函数
Simple Error Handler:它主要是指示是否有错误发生。如果一个错误发生,这个VI将会获得这个错误的一个描述,并且会随意地显示一个对话框。这个VI叫做通用错误处理器,并且它包括作为通用错误处理器的相同的基础功能除了少许选项[8]。
17