基于声卡和Matlab的虚拟信号发生器
发布时间:2008/5/27 0:00:00 访问次数:497
    
    
    来源:现代电子技术 作者:张桂林 张烈平
    
    摘 要:声卡是多媒体计算机最基本的配置硬件之一,价格便宜,使用方便。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)
  &n
    
    
    来源:现代电子技术 作者:张桂林 张烈平
    
    摘 要:声卡是多媒体计算机最基本的配置硬件之一,价格便宜,使用方便。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)
  &n
上一篇:凌阳16