综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章消费电子正文
 
基于声卡和Matlab的虚拟信号发生器
发布日期:2005-12-15 作者:张桂林 张烈平 来源:现代电子技术

 摘 要:声卡是多媒体计算机最基本的配置硬件之一,价格便宜,使用方便。Matlab是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令。介绍了通过计算机的声卡来实现虚拟信号发生器的基本原理以及Matlab的数据采集工具箱中用于模拟信号输出的主要函数和命令,并以三角波信号发生器为例,详细介绍了该信号发生器的具体实现方法,这对获得难以用常规仪器设备产生的信号提供了有效的方法,具有一定的借鉴价值。
  关键词:Matlab;声卡;信号发生器;三角波

  声卡作为多媒体计算机系统中最基本最常用的硬件之一,其技术已经发展成熟,他同时具有A/D和D/A转换功能,经济方便,目前已经被广泛应用于数据采集和虚拟仪器系统的设计[1,2]。Matlab是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱(data acquisition toolbox)为实现数据的输入和输出提供了十分方便的函数和命令,利用这些函数和命令可以很容易地实现对外部物理世界的信号输出和输入。根据声卡输出信号的原理,采用Matlab软件编程,可以方便地利用声卡输出所需要的三角波、正弦波、方波等多种信号,有效地实现信号发生器的基本功能。

1基于Matlab和声卡的虚拟信号发生器的设计与实现
1.1
系统实现原理
  通常PC机配置的声卡提供了麦克风输入和扬声器输出2个接口,他集成了信号输入/输出需要 的模/数转换器(ADC)和数/模转换器(DAC),因此,利用Matlab软件产生的各种虚拟信号通过声卡的DAC单元就可以直接输出。普通计算机与Matlab软件相结合实现虚拟信号发生器的系统结构如图1所示。

  图1中,只需要用音频线将软件系统产生的信号由线性输出(line out)接口引出,就可以通过声卡直接作为信号源输出,显然,在这种虚拟信号发生器系统中,只需要一台带有普通多媒体声卡并安装了Matlab软件的PC机就可以满足要求实现虚拟信号的输出,系统结构简单方便。
1.2基于Matlab的信号发生器的实现方法
  Matlab的数据采集工具箱(DAT)提供了一系列的函数和命令来实现实时模拟信号的输出,通过调用这些函数和命令可以直接控制声卡输出虚拟信号,在Matlab中用声卡产生虚拟信号的过程如图2所示。

  Matlab的数据采集工具箱提供的控制声卡输出模拟信号的主要函数和命令如下:
  (1) 初始化操作
  Matlab将声卡等设备都作为对象处理,其后的一切操作都不与硬件直接相关,而是通过对该 对象的操作来作用对象,所以,首先要为声卡建立一个设备对象。Matlab建立设备对象的函数如下:
  
  analogouput()为模拟输出设备对象建立函数,通过该函数将声卡映射为Matlab环境中的一个模拟输出设备对象句柄。winsound为声卡设备驱动程序。
  (2) 添加数据输出通道操作
  Matlab中用于添加数据输出通道操作的函数为addchannel,其函数格式如下:
  
  其中:ao为声卡对象的句柄(下同),ch为声卡通道号,最大为2通道。
  (3) 输出数据操作
  Matlab中用于输出数据操作的函数为putdata,其函数格式如下:
  putudata(ao,data)
  其中:data为所需要输出的数据。
  (4) 启动并触发声卡设备操作
  当完成输出数据操作后,并没有真正输出数据,必须启动声卡,才能对外输出信号,启动并触发声卡设备操作的命令如下:
  start(ao)
  (5) 停止并删除声卡设备操作
  信号输出完成后,声卡设备仍然保留在计算机系统中,若不将声卡设备停止并删除,计算机系统中仍会保留该设备,在下次启动虚拟信号发生器系统时将会发出声卡设备仍然在使用的错误信息。从系统中停止和删除声卡设备操作的命令分别如下:
  
2应用实例
  利用Matlab的数据采集工具箱和图形用户接口[3]可以方便地通过设计的界面控制输出信号的幅度、频率、宽度等参数,并可以用示波器直接观测,图3为虚拟信号发生器系统的主界面,可以用来产生正弦波信号、方波信号、矩形波信号、三角波信号和随机信号等常用信号。

  这里以三角波虚拟信号发生器为例来说明利用Matlab和声卡输出三角波信号的具体软件实现 方法。三角波信号发生器的参数设置界面如图4所示,他除了可以用于参数设置外,还可以显示输出信号的模拟波形。

  采用Matlab实现的具体程序如下:
 
3结语
  Matlab的数据采集工具箱和图形用户接口提供了十分简便的实现声卡输出功能的命令和函数 ,利用Matlab和声卡设计虚拟信号发生器十分方便,而在硬件上只需要一块声卡,无需添加 任何其他设备,价格十分便宜。虽然声卡的设计是以产生声音为目的,有效的音频范 围和输出电压的幅度在一定程度上限制了他的使用,但这已完全能满足产生基本信号源的 要求。在本设计的基础上,通过进一步的Matlab编程或硬件上的改进和扩展,可以实现一些 常规仪器设备不能产生的信号,这在实际应用中具有广泛的推广应用前景。

参考文献

[1]傅俊庆,赵爱琼. Matlab中基于声卡的虚拟仪器动态数据分析仪[ J].长沙交通学院学报,2003,19(1):15-18.
[2]王春耀,冯培昌.基于声卡的虚拟仪器示波器设计[J].电气自动化,2003 ,25(6):59-61.
[3]张志涌,徐彦琴.Matlab教程——基于6x版本[M].北京:北京航空航天大学出版社,2001


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
基于MATLAB的FIR滤波器设计与滤波 (10-14)
基于MATLAB超音速射流氧枪的高速数据采集系统 (09-25)
基于MATLAB串口通信的数据采集系统的设计 (10-16)
MATLAB环境下的串行数据通信系统设计 (10-20)
基于新的优化修正函数的模糊控制器设计 (10-31)
基于LabVIEW和声卡的数据采集系统 (10-22)
虚拟示波器基于声卡的设计与实现 (09-05)
任意波数字合成信号发生器 (04-08)
相位差可调双通道信号发生器的设计 (03-17)
基于LPM_ROM的正弦信号发生器电路实现方法 (09-04)
基于TMS320C5402的正弦信号发生器 (09-07)
基于ATmega8的DDS信号发生器的设计 (11-06)
实时仿真与嵌入式系统 (11-19)
利用MATLAB增强MAX+PLUS II的仿真功能 (12-06)
多人工干涉算法的编程实现 (01-09)
基于MATLAB模糊逻辑工具箱的模糊控制系统仿真 (01-07)
MATLAB在无速度传感器交流调速系统仿真中的应用 (01-09)
Matlab与数字示波器的通信 (01-15)
单路口交通多相位模糊控制器的设计与仿真 (01-16)
基于MATLAB的远程信号分析与诊断系统的开发 (01-01)
基于Matlab语言实现电磁场中的FDTD算法编程 (12-18)
QDPSK信号数字化解调器中带通滤波器的设计与仿真 (12-07)
嵌入式目标模块在DSP系统开发中的应用 (12-12)
基于MATLAB的有源滤波器研究 (12-12)
实时与非实时综合应用在多个信号的测量 (12-17)
基于Matlab的DSP系统级的设计方法 (01-22)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号