当前位置:首页 > 测试测量 > 测试测量
[导读]介绍了通过计算机的声卡来实现虚拟信号发生器的基本原理以及Matlab的数据采集工具箱中用于模拟信号输出的主要函数和命令,并以三角波信号发生器为例,详细介绍了该信号发生器的具体实现方法

摘 要:声卡是多媒体计算机最基本的配置硬件之一,价格便宜,使用方便。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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

一直以来,EDA都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来EDA软件的相关介绍,详细内容请看下文。

关键字: EDA SPICE MATLAB

Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。

关键字: python 函数 对象编程

测试数据综合分析的绝佳工具,深受工程师和研究员欢迎

关键字: 后处理分析软件 向导 函数

评估板(EVB)及其配套软件具有即插即用功能,可轻松评估ADI产品的性能。其图形用户界面(GUI)提供了直观的方式,可进行手动配置并与该设备通信。但是,在更复杂的产品中,如果不能自动处理这些重复性任务,那么在评估所有可用...

关键字: ADI Python MATLAB

由上图中可以知道进程地址空间中最顶部的段是栈,代码中调用函数、定义局部变量(但不包含static修饰的变量)或声明的类的实例等等都要使用栈空间,当函数执行完(也就是程序执行超过了这个函数的作用范围的时候),操作系统会把该...

关键字: 进程地址 局部变量 函数

摘要:随着社会不断发展,传统化石能源已经无法满足日益增长的能源需求,基于这一情况,光伏电源的使用逐渐变多。而高渗透率的光伏电源出力大于负荷的消耗时,配电网的电压波动影响会变大,网络发生故障而造成部分负荷失电停止运行后也会...

关键字: 光伏电源 电压分布 MATLAB

(全球TMT2022年9月23日讯)莱维特发布新一代高性能声卡-CONNECT 6。它是一款面向音乐人、内容创作者和主播等多应用场景的专业级声卡,适配Windows、Mac电脑和iPhone,iPad及Android手...

关键字: NEC 声卡 IPAD 软件

音频创新品牌莱维特官宣发布新一代高性能声卡CONNECT 6,现已上市 上海2022年9月23日 /美通社/ -- 奥地利知名音频创新品牌莱维特刚刚发布了新一代高性能声卡- CONNECT 6。作为创新型音频...

关键字: NEC 声卡 移动设备 电脑

摘要:首先研究了地铁车辆牵引变频器的电路结构、控制策略、分段同步控制等技术,随后分析了SPEM分段同步控制的优点,并在MATLAB中建立模型,验证了分段同步控制的优越性。最后利用软件的仿真功能建立牵引变频器的计算机仿真模...

关键字: 牵引变频器 分段同步控制 MATLAB

MATLAB是“Matrix Laboratory”的缩写,正如其命名所示,最初使命仅仅是一个交互式的矩阵计算器。1981年Dr. Cleve Moler基于兴趣爱好和教学需求将其设计出来,最初包含的71个文字和函数可供...

关键字: AI 电气化 MATLAB Mathworks
关闭
关闭