基于Labview的声卡开发教程DOC.docx
- 文档编号:24765655
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:30
- 大小:272.93KB
基于Labview的声卡开发教程DOC.docx
《基于Labview的声卡开发教程DOC.docx》由会员分享,可在线阅读,更多相关《基于Labview的声卡开发教程DOC.docx(30页珍藏版)》请在冰豆网上搜索。
基于Labview的声卡开发教程DOC
基于LabVIEW的声卡数据采集系统的开发教程
在虚拟仪器系统中,信号的输入环节一般采用数据采集卡实现。
商用的
数据采集卡具有完整的数据采集电路和计算机借口电路,但一般比较昂贵,
计算机自带声卡是一个优秀的数据采集系统,它具有A/D和D/A转换功能,
不仅价格低廉,而且兼容性好、性能稳定、通用性强,软件特别是驱动程序
升级方便。
如被测对象的频率在音频范围内,同时对采样频率要求不是太高,
则可考虑利用声卡构建一个数据采集系统。
1.从数据采集的角度看声卡
1.1声卡的作用
从数据采集的角度来看,声卡是一种音频范围内的数据采集卡,是计算
机与外部的模拟量环境联系的重要途径。
声卡的主要功能包括录制与播放、
编辑和处理、MIDI接口三个部分。
1.2声卡的硬件结构
A/D
图1是一个声卡的硬件结构示意图。
一般声卡有4~5个对外接口。
LineIn
IMICInHII>
DSP
WaveOut*
D/A
SPKOdt*4
波表
MIDI合成器
MIDIIn
图1声卡的硬件结构示意图
声卡一般有LineIn和MicIn两个信号输入,其中LineIn为双通道输入,
0.02~0.2V。
MicIn仅作为单通道输入。
后者可以接入较弱信号,幅值大约为
声音传感器(采用通用的麦克风)信号可通过这个插孔连接到声卡。
若由Mic
In输入,由于有前置放大器,容易引入噪声且会导致信号过负荷,故推荐使
用LineIn,其噪声干扰小且动态特性良好,可接入幅值约不超过1.5V的信
号。
另外,输出接口有2个,分别是WaveOut和SPKOu。
WaveOut(或Line
Out)给出的信号没有经过放大,需要外接功率放大器,例如可以接到有源音
箱;SPKOu给出的信号是通过功率放大的信号,可以直接接到喇叭上。
这些
接口可以用来作为双通道信号发生器的输出。
1.3声卡的工作原理
声音的本质是一种波,表现为振幅、频率、相位等物理量的连续性变化。
声卡作为语音信号与计算机的通用接口,其主要功能就是将所获取的模拟音
频信号转换为数字信号,经过DSP音效芯片的处理,将该数字信号转换为模
拟信号输出。
输入时,麦克风或线路输入(LineIn)获取的音频信号通过A/D
转换器转换成数字信号,送到计算机进行播放、录音等各种处理;输出时,
计算机通过总线将数字化的声音信号以
PCM(脉冲编码调制)方式送到D/A
转换器,变成模拟的音频信号,进而通过功率放大器或线路输出(LineOut)送到音箱等设备转换为声波。
1.4声卡的配置及硬件连接
使用声卡采集数据之前,首先要检查LineIn和MicIn的设置。
如图2,打开“音量控制”面板,在“选项”的下拉菜单中选择“属性”,得到如图3的对话框,在此对话框上选择“录音”,并配置列表中的选项即可。
可以通过控制线路输入的音量来调节输入的信号的幅度。
0昔重控制
Qi区1
KW
*”hU£
退出①
^111■^—1111'-■■■■
平衡.
血-0
音a:
轼件合成署
平衡:
音S:
-_t
CD唱机
平衝:
弘一A
音S:
平衝:
M:
O
□靜音叫
曇示下册■控制
CDm.
回0□回□□
規■■蠟I5tLudAlDiciIhIAndio
图3音量控制面板属性更改及录音控制面板
声卡测量信号的引入应采用音频电缆或屏蔽电缆以降低噪声干扰。
若输
入信号电平高于声卡所规定的最大输入电平,则应该在声卡输入插孔和被测信号之间配置一个衰减器,将被测信号衰减至不大于声卡最大允许输入电平。
一般采用两种连接线:
a.一条一头是3.5mm的插孔,另一头是鳄鱼夹的连接
线;b.—条双头为3.5mm插孔的音频连接线。
我们也可以使用坏的立体耳机
做一个双通道的输入线,剪去耳机,保留线和插头即可。
2.声卡的主要技术参数
2.1采样位数
采样位数可以理解为声卡处理声音的解析度。
这个数值越大,解析度就
越高,录制和回放的声音就越真实。
我们首先要知道:
电脑中的声音文件是
用数字0和1来表示的。
所以在电脑上录音的本质就是把模拟声音信号转换
成数字信号。
反之,在播放时则是把数字信号还原成模拟声音信号输出。
声卡的位是指声卡在采集和播放声音文件时所使用数字声音信号的二进
制位数。
声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程
度。
8位代表2的8次方一一256,16位则代表2的16次方一一64<103。
比
较一下,一段相同的音乐信息,16位声卡能把它分为64咒103个精度单位进
行处理,而8位声卡只能处理256个精度单位,造成了较大的信号损失,最终的采样效果自然是无法相提并论的。
位数越高,在定域内能表示的声波振
幅的数目越多,记录的音质也就越高。
2.2采样频率
每秒钟采集声音样本的数量。
采集频率越高,记录的声音波形就越准确,
96KHz—般将采样频率设为4挡,
保真度就越高。
但采样数据量相应变大,要求的存储空间也越多。
目前,声
卡的最高采样频率是44.1KHZ有些能达
8KHz。
分别是44.1KHz、22.05KHz、11.025KHz、
2.3缓冲区
D/A和A/D任务通常是连续的。
为
与一般数据采集卡不同,声卡面临的
了在一个简洁的结构下较好地完成某个任务,声卡缓冲区的设计有其独到之
处。
为了节省CPU资源,计算机的CPU采用了缓冲区的工作方式。
在这种工作方式下,声卡的A/D、D/A都是对某一缓冲区进行操作。
一般声卡使用的
缓冲区长度的默认值是8192字节,也可以设置成8192字节或其整数倍大小
的缓冲区,这样可以较好地保证声卡与
CPU的协调工作。
声卡一般只对
20Hz~20KHZ勺音频信号有较好的响应,号测量的要求。
这个频率响应范围已经满足了音频信
2.4基准电压
声卡不提供基准电压,因此无论是
A/D还是D/A,在使用时,都需要用
户参照基准电压进行标定。
目前一般的声卡最高采样频率可达
96KHz采样位数可达13位甚至32
位;声道数为2,即立体声双声道,可同时采集两路信号;每路输入信号的最高频率可达22.05KHZ输出16为的数字音频信号,而16位数字系统的信
噪比可达96dB。
3.LabVIEW中有关声卡的控件介绍
利用声卡作为声音信号的DAQ卡,可以方便快捷地穿件一个采集声音信
号的VI。
与声音信号相关的函数节点位于程序框图下【函数】选版下【编程】
函数选版的【图形与声音】函数子选版的【声音】函数选版的各子选版,如
图4所示
*编程
LS形与声音
L声音
L输入
m
山〕
0冋
3
9
■0
▼编程
La形与芳音
L声音
L立件
L0?
^与声音"音L辂出匡彖%绘
图4LabVIEW中声卡控件
F面主要介绍【声音】/【输入】控件选板中相关控件的作用。
配置声音输入配置声音输入设备(声卡)参数,用于获取数据
并且将数据传送至缓冲区。
启动声音输入采集开始从设备上采集数据,只有停止声音输入采集已经被调用时,才需要使用该Vis。
声音输入清零停止声音采集,清除缓冲区,返回到任务的默认
状态,并且释放与任务有关的资源。
配置声音输出用于配置声音输出设备的参数,使用“写入声音输出”VI将声音写入设备。
写入声音输出将数据写入声音输出设备,如要连续写入,必须使用配置声音输出VI配置设备,必须手动选择所需多态实例。
在此不
介绍,
声音输出清零将任务返回到默认的未配置状态,并清空与任务相关的资源,任务变为无效。
此外,还有众多的声音文件的打开和关闭等函数节点,读者可参考LabVIEW帮助窗口进行了解。
另外在程序框图下【Express下【输入】下的【声音采集】及【输出】
5所示。
下的【播放波形】也是与声音信号相关的函数节点,如图
▼ExpressL输入
盲hHRI啊(3卜
输岀
■1wms卜
I3Lf[1
da
图5LabVIEW中Express下的声卡控件
4.应用程序举例
利用声卡采集声音信号,其程序的基本实现过程如图
4.1声音的基本采集
初始化/配置声卡
(配K声音输入}
T
__无错袂拎出
1
(启动声音输入采集就入声音输入〉
<■
6所示。
波形图显示
醫放声卡
鼻(停止声音输入采
图6声卡采集程序流程图
4.1.1Vis声音采集
本案例通过采集由LineIn输入的声音信号,练习声音采集的过程。
操作步骤
[1]执行【开始】/【程序】/NationalInstrumentsLabVIEW8.5l命令,进入
LabVIEW8.5的七栋界面。
[2]在启动界面下,执行【文件】/【新建VI】菜单命令,创建一个新的VI,
切换到前面板设计窗口下,移动光标到前面板设计区,打开【空间】/【新
式】/【图形显示控件】控件选板,选择一个“波形图”控件,放置到前
面板设计区,编辑其标签为“声音信号波形”并调整它的大小,如图
所示。
声音信号波形
-0.235-^^^-0.23S-
-0.24-
-0.21^-1^-0.£44-
-0.21®-
-0.25-
-0.2S2--0.
00.1020.30.40.50.6
图7波形图标签编辑
[3]切换到程序框图设计窗口下,打开【函数】/【编程】/【图形与声音】/
【声音】/【输入】函数选板,在程序框图设计区放置一个“配置声音输
入”节点、一个“启动声音输入采集”节点、一个“读取声音输入”节点、
一个“停止声音输入采集”节点、一个“声音输入清零”节点,如图
所示。
15己置芦晉输AI
I读取芦音输入I
I停止声音輸入采囊1I芦者输入稿零I
图8声音输入控件
[4]移动光标到各节点上。
可以在“即时帮助”
窗口中看到各节点的端口及
[6]
毎il道采祥数一
采样複式-设备m—
肓音格式0诒课输入<无错误)』
Si
任务in错误输岀
图9“配置声音输入”节点
分别移动光标到“配置声音输入”节点的“设备ID”、“声音格式”、“采
样模式”的输入端口上,单击鼠标右键,从弹出右键快捷菜单中,执行【创
建】/【输入控件】菜单命令,通过端口创建相应的输入节点,如图10所
sspl建mode
d&viceID
图10“配置声音输入”节点设置
移动光标到“声音输入清零”节点的“错误输出”端口上,单击鼠标右
键,从弹出的右键快捷菜单中执行【创建】/【显示控件】菜单命令,创
建相应的显示节点,如图11所示
图11
打开【函数】/【编程】
放置到程序框图设计区,
errorout
“声音输入清零”节点设置
/【结构】函数选板,选择“While循环”节点,在“While循环”的循环条件端口创建一个输入
控件,移动光标到“While循环”的循环条件节点的输入端,单击鼠标右
键,从弹出的右键快捷菜单中执行【创建】/【输入控件】菜单命令,创
建相应的输入节点,并按图12所示,完成程序框图的设计。
solUkd
停止
业rrorout
3卜仝
声音榕式
計22050
2通曲S
舞采fftli恃就
JJ
试卷代码
暮厂
a
0
0.1
设SID
02
肝间
果徉樹式
0.1
偉止
OS
图12程序框图的设计
[8]切换设计界面到前面板,可以看到与程序框图设计区节点相对应的控件
对象,调整它们的大小和位置,美化界面。
[9]单击工具栏上程序运行按钮,并对着传声器输入语音或一段音乐,即可
在波形图空间中查看声音信号的波形,其中的一个运行界面如图13所示。
声音信号液形
O.tM£2
0(MS
o.(Mie
igO.CHie
0.CHI2
0Ml
C.DiDa
O.CHCH
图13程序运行界面
4.1.2ExpressVI声音信号采集
本案例通过将采集到的声音信号显示在波形图中来学习“Expree输入”中“声音采集”函数的应用。
在练习的过程中,注意比较与“编程”中“声音输入”函数的异同。
操作步骤
[1]创建一个新的VI,切换到前面板设计窗口下,在前面板设计区放置一个
“波形图”,编辑其标签为“声音信号波形”并调整它的大小。
[2]切换到程序框图设计窗口下,打开【Express/【输入】函数选板,在程
序框图设计区放置一个“声音采集”函数节点,并按图14所示设置各参
数值。
nil超■
11
厳
moo
30000
2WXB%
S*rai・U如d*i*
[][则][ffl肋]
图14配置声音采集设置面板
[3]移动光标到“声音采集”节点上,可以看到各端口的解释,根据节点的
输入端“采样率”、“设备”、“通道数量”、“分辨率”及“持续时间”端口,
创建相应的输入控件,如图15所示
芦音采*
jflil遊ft—
H来H
数霍*
—数》
比;知击*
—1|谀《出
采禅SOh)
*=;IHII
持阿间(X)
*-丁;rl
1谀锚人t冠懵J-
叫泸备E(壬诩
分-
,分解5ta)
设香「
—
1
1
ffl
SwipltOk”曬盪輸岀
DurQionGJ「鬲;—卜壬洱百ih:
:
M匸•持穴盯罔TI
KttolutiohCbi讥P请逞输dt无fr1121—P*gi
«ChuUL«lsH-
IL13*
分辨率c位)
设备圖1数a
图15Express中声音采集控件及其设置
[4]在程序框图设计区放置一个“While循环”节点,并按图16完成程序框
图的设计。
声音来集
数据
Swupltr*l»Qhj情误輸I出:
Dur*ti«n〔“[【扁「f■—達匸低;fl
IxmLHftT干孑TiJit〕
Re百olutionjAf尢谙
设备
a道数量
停止
#ChuuielsII
图16程序框图设计
⑸切换到前面板设计窗口下,调整各空间的大小和位置,并设置输入控件
的输入参数,然后单击前面板工具栏上程序运行按钮,
开始运行程序,并
对着传声器输入语音或一段音乐,即可在波形图空间中查看声音信号的波
形,其中的一个运行界面如图17所示。
声音信号浓形
0.OflM-
代码
D.(M£-1=
Q
0(H2=
0W15-J
D.OU&J
迂Q(Mm
®D.0412-
0(MI-
0Ofloa-
0.0«B-
D.04(H-
D.
D0.10203040S0.6070909
图17程序运行界面
4.2双踪示波器
图18、19是一个用声卡实现的双踪示波器,它可以实现测试信号波形、单频测量等。
£
左声«/D1V
左V-Pa.
J
■■■■■«■■■■■_
1VByUfO
I:
畔闸分廈
O
7
畑
双踪虚拟示波器
冒ijwi.Isiwarta
禺
屮袴HI
耐口
石R9議事
jD:
Sd±.iL阳]旦
r
揮#ffnatu
1M—
■IE#r*f*c.
rfH”HT
□
J八
严
右声道/[>IV
D.ED.I
歪宅£虫石£甬左噹•
图18用声卡实现的双踪示波器界面
JHE
F2—13
僅I
■•laaraLi
”
冷"■“I
ff止
fir-Pcr
J
J
KCD址
i25051™
f_畀*K
■碎中
■:
LJ
:
lj>UBln£
":
MB
[>
曽・【贅?
—>
EI-T-n
m—&
4vnEiID
合
初齢化/
配槪声卡
/冏交、直流通道选银Q
L
♦WBT
&1
暫制
5?
A
圉
£3
z
可刻度及
卜
B即
IIh'
'.UH
"星2平位移
卄叩隔匚HjliI
通道选挥^
ffl存
图19双踪示波器程序框图设计
以上程序框图通过不同的条件结构实现不同的控制。
在程序设计中,利用【函数】/【ExpresS/【信号操作】函数面板中“拆分信号”节点,如图20所示。
图20“拆分信号”节点
由于由LineIn采集到的声音信号,其左右声道的声音信号是并接的,利用“拆分信号”节点,可以实现不同声道信号分离的目的,以达到对不同声道信号进行不同操作如增益、幅度改变等。
由于直接由“读取声音输入”节点输入的声音实则是动态数据,要对采
集到的信号进行增益等的控制,必须进行数据类型的转化,在本设计中,采用“从动态数据转换”节点实现目的,如图21所示。
从动态数£转换
动态数据类型一数组
图21“从动态数据转换”节点
4.3基本信号发生器
图22是一个用声卡实现的基本信号发生器,它可以产生正弦波、矩形波
等,并实现频率、幅值等的控制。
□.004*005
□.001□.002
I时间
0.75
05
0£5
-O.ES
-OS
-0.75
=;|0
制9000
谨那选择
陰正弦蔽
肿00
为M
基本信号发生器
■莓采样昭戲
^>10顾iS果祥憩
sroF
图22基本信号发生器界面
图23为基本信号发生器的程序框图设计
图23基本信号发生器程序框图设计
在本程序的设计中,首先应该注意到,采用程序框图设计窗口下【函数】
/【编程】/【图形与声音】/【声音】/【输出】控件面板的相应节点控件,并跟“输入”控件相类似地进行设置。
为实现在运行界面当中选择产生不同的波形,我们利用到前面板设计窗
口下【空间】/【新式】/【下拉列表与枚举】空间选板中的“枚举”控件,
如图24所示。
枚举
厂
图24【枚举】控件
移动光标到前面板设置的“枚举”控件上,单击鼠标右键,执行弹出的快捷菜单【属性】命令,打开【枚举属性】对话框,切换到“编辑项”选项卡,按图25所示对枚举项进行编辑。
外II數据类型IS示搭式编*5取[说阴信启||数据臧快捷键
顶
才te三箱谡
[确走II取消]I帮肋I
图25【枚举属性】编辑项的编辑
在程序框图设计区,将“枚举”节点作为【条件结构】的条件,两个节点连
接后,可以看到条件结构的“条件选择标签”的条件选择变为“正弦波”、“方波”,且“正弦波”为默认条件,如图26所示。
图26“条件结构”的连接
移动光标到条件结构的“选择器标签”上,单击鼠标右键,从弹出的右键快
27所示。
捷菜单中,执行【为每个值添加分支】菜单命令,命令执行后,从条件结构的“选择器标签”中可以看到,可选条件变为如图
/[波
形生成】控件面板中的“正弦波形”、“方波波形”等节点,放置在条件结构内,
完成频率、幅度、相位等相应控件的创建,便可以实现产生不同波形的需要。
4.4简易频谱分析仪
本案例通过对采集到的声音信号进行功率谱分析,练习声音信号的采集
和分析过程。
图28简易频谱分析仪运行界面
b|社
a冲利J
简易频谱分析仪
啓胡a存—UgB
岸*10;>*任远1_-rgJijI■
3n
-we-
-13
-L4O-
-bH-,
DHO5MtseiiffiFLBfl.迥g阿
上」藝严i相应2
诅道O〕i2ftlE^TE-!
-82.54tl
迫逍]4.I5M1E-Io
在程序的前面板可以定性观察和定量读取通道0和通道1的幅值和相位,
同时可以实现将所采集到的频谱进行保存。
ra|fjTJr电
*IE
S-
□
;]JWLt
■曲
I
IZZJSiriiEi
Bra
图29简易频谱分析仪程序框图设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Labview 声卡 开发 教程 DOC