声卡从话筒中获取声响模仿信号,经过模数转化器(ADC),将声波振幅信号采样转化成一串数字信号,存储到计算机中。重放时,这些数字信号送到数模转化器(DAC),以相同的采样速度还原为模仿波形,扩大后送到扬声器发声,这一技能称为脉冲编码调制技能(PCM)。作为多媒体计算机体系中最根本最常用的硬件之一,其技能现已开展老练,他一起具有A/D和D/A转化功用,经济便利,现在现已被广泛运用于数据收集和虚拟仪器体系的规划[1,2]。Matlab是一个数据剖析和处理功用非常强壮的工程实用软件,他的数据收集工具箱(dataacquisitiontoolbox)为完结数据的输入和输出供给了非常便利的函数和指令,运用这些函数和指令能够很容易地完结对外部物理国际的信号输出和输入。依据声卡输出信号的原理,选用Matlab软件编程,能够便利地运用声卡输出所需求的三角波、正弦波、方波等多种信号,有用地完结信号发生器的根本功用。
1根据Matlab和声卡的虚拟信号发生器的规划与完结
1.1体系完结原理
一般PC机装备的声卡供给了麦克风输入和扬声器输出2个接口,他集成了信号输入/输出需求的模/数转化器(ADC)和数/模转化器(DAC),因而,运用Matlab软件发生的各种虚拟信号经过声卡的DAC单元就能够直接输出。
只需求用音频线将软件体系发生的信号由线性输出(lineout)接口引出,就能够经过声卡直接作为信号源输出,明显,在这种虚拟信号发生器体系中,只需求一台带有一般多媒体声卡并安装了Matlab软件的PC机就能够满意要求完结虚拟信号的输出,体系结构简略便利。
1.2根据Matlab的信号发生器的完结办法
Matlab的数据收集工具箱(DAT)供给了一系列的函数和指令来完结实时模仿信号的输出,经过调用这些函数和指令能够直接操控声卡输出虚拟信号,在Matlab顶用声卡发生虚拟信号的进程.
Matlab的数据收集工具箱供给的操控声卡输出模仿信号的首要函数和指令如下:
(1)初始化操作
Matlab将声卡等设备都作为目标处理,这以后的全部操作都不与硬件直接相关,而是经过对该目标的操作来效果目标,所以,首要要为声卡树立一个设备目标。
ao=analogouput(winsound)
analogouput()为模仿输出设备目标树立函数,经过该函数将声卡映射为Matlab环境中的一个模仿输出设备目标句柄。winsound为声卡设备驱动程序。
(2)增加数据输出通道操作
Matlab顶用于增加数据输出通道操作的函数为addchannel,其函数格局如下:
chan=addchanel(ao,ch)
其间:ao为声卡目标的句柄(下同),ch为声卡通道号,最大为2通道。
(3)输出数据操作
Matlab顶用于输出数据操作的函数为putdata,其函数格局如下:
putudata(ao,data)
其间:data为所需求输出的数据。
(4)发动并触发声卡设备操作
当完结输出数据操作后,并没有真实输出数据,有必要发动声卡,才干对外输出信号,发动并触发声卡设备操作的指令如下:
start(ao)
(5)中止并删去声卡设备操作
Matlab的数据收集工具箱和图形用户接口供给了非常简洁的完结声卡输出功用的指令和函数,运用Matlab和声卡规划虚拟信号发生器非常便利,而在硬件上只需求一块声卡,无需增加任何其他设备,价格非常廉价。尽管声卡的规划是以发生声响为意图,有用的音频规模和输出电压的起伏在必定程度上约束了他的运用,但这已完万能满意发生根本信号源的要求。在本规划的基础上,经过进一步的Matlab编程或硬件上的改善和扩展,能够完结一些惯例仪器设备不能发生的信号,这在实践运用中具有广泛的推广运用远景。
信号输出完结后,声卡设备依然保存在计算机体系中,若不将声卡设备中止并删去,计算机体系中仍会保存该设备,在下次发动虚拟信号发生器体系时将会宣布声卡设备依然在运用的错误信息。