基于声卡的虚拟信号发生器设计与实现.pdf
文本预览下载声明
72 基于声卡的虚拟信号发生器设计与实现
基于声卡的虚拟信号发生器设计与实现*
DesignandImplementationofVirtualSignalGeneratorBasedonSoundCard
徐继宁 程志强 北(方工业大学机电工程学院,北京 100041)
摘 要
介绍了一种以普通声卡为硬件设备的虚拟信号发生器的设计方法。设计采用了虚拟仪器技术,利用NI公司的Lab-
VIEW软件的模块化编程以及多线程技术,实现了多种常见周期信号及任意指定信号的双通道输出。
LabVIEW
关键词:信号发生器,声卡,虚拟仪器,
Abstract
ThispaperpresentsthedesignofavirtualsignalgeneratorthatutilizesanormalPCsoundcardashardwaredevice.
ThegeneratorwasdevelopedbasedonvirtualinstrumentsoftwareLabVIEW ofNICompany.Themodularizedprogramming
andmultithreadingtechnicalisperformedduringthedesignedprocess.
Keywords:signalgenerator,soundcard,virtualinstrument,LabVIEW
声卡目前已经是多媒体计算机的一个标准配置,利用计算 低层函数编写,由于Windows低层函数直接与声卡驱动程序打
机声卡进行采样和输出,就不需要购买专门的数据采集卡,为开 交道,因而封装层次低,速度快,而且可以访问、采集缓冲区中任
发低成本高性能的信号发生器,创造了有利条件。 意位置的数据,具有很大的灵活性,能够满足实时不间断采集的
1 声卡的技术指标 需要。本文主要用到的几个VI在SoundOutput子面板中,用
1)分辨率。目前,市场上的一般声卡按照其采样位数分可以 到的主要有 SO Config、SO Start、SO SetNum Buffers、SO
分为8位和16位,采样位数 分(辨率)可理解为声卡处理声音的 Write、SOClear。
解析度,数值越大解析度就越高,录制和回放的声音就越真实, SOConfig用于设置声卡数据格式;SOStart通知声卡输
它客观反映了数字声音信号对输入声音信号描述的准确程度。 出数据;SOSetNum Buffers设置声卡缓冲区大小,一要节省
从数据采集的角度来看,声卡是音频范围内的数据采集卡。声卡 CPU资源,二要保证输出信号的连续性;SOWrite将缓冲区内
位数的概念与数据采集卡中的位数完全一致,但一般的数据采 的数据通过声卡输出;SOClear完成最终清理工作,释放请求
集卡大多只有12位,而声卡主流产品都是12位的。因此在这个 的一系列系统资源如DMA,缓冲区内存,声卡端口等。
指标上,声卡毫不逊色于常用的数据采集卡。 利用LabVIEW构建基于声卡的虚拟信号发生器流程如图
2)采样频率。目前声卡的最高采样频率大都是44.1KHz,少 1,这个流程与一般的数据采集卡并无多大差别。
数达48KHz。对于民用声卡,一般将采样频率分为4档,分别是
44.1KHz、22.05KHz、11.025KHz和8KHz,这个频率也是DAC
输出信号的采样频率。对于20KHz范围内的音频信号,如果最
高采样率48KHz,虽然理论上没有问题,但效果已经不是很好。
因而使用声卡的局限性在,它不允许用户在最高采样率下随意 图1 声卡模拟输出工作流程示意图
设定采样频率。 3 信号发生器的实现
3)声卡的频率
显示全部