基于 MATLAB 的数字信号发生器
摘要:MATLAB 有强大的音频处理函数和强大的数据处理功能,是一个数据分
析和处理功能十分强大工程实用软件,能够方便地产生各种波形的数据数组,同
时通过音频处理函数又可以很方便的将数据数组传递给声音设备,并以特定的
采样频率和传输比特位由声卡输出。他数据采集工具箱为实现数据输入和输出
提供了十分方便函数和命令。本文介绍了通过计算机声卡来实现虚拟信号发生
器基本原理以及 Matlab 数据采集工具箱中用于模拟信号输出主要函数和命令,
并以正弦波等信号发生器为例,详细介绍了该信号发生器具体实现方法,这对
获得难以用常规仪器设备产生信号提供了有效方法,具有一定借鉴价值。并介
绍了基于声卡和 MATLAB 的数字电子琴、双音多频(DTMF)信号系统、混音
器的实现。
关键词:MATLAB,声卡,数字信号发生器,数字电子琴,双音多频,混音器
一、引言
声卡是将音频输入数据转换为立体声输出的一种设备,输入信号同时也设定
了 声 卡 的 采 样 频 率 和 采 样 位 数 , 普 通 声 卡 采 样 频 率 通 常 可 选 值 为
8,000Hz、11,000Hz、16,000Hz、22,000Hz 和 44,100Hz,而高性能的专业声卡的
A/D 采样频率最高可达 96,000Hz,D/A 转换频率最高可达 192,000Hz。声卡的采
样频率可以通过专业软件来进行更改和设置的。声卡输出位数为固定值,包括
8 位、16 位和 24 位,这个参数标志声卡进行 D/A 转换时的转换精度,但要使输
出信号更接近理想值,还需要高采样频率来做保障。声卡作为多媒体计算机系
统中最基本最常用硬件之一,其技术已经发展成熟,他同时具有 A/D 和 D/A 转
换功能,经济方便,目前已经被广泛应用于数据采集和虚拟仪器系统设计。
Matlab 是一个数据分析和处理功能十分强大工程实用软件,他数据采集工
具箱(data acquisition toolbox)为实现数据输入和输出提供了十分方便函数和命
令,利用这些函数和命令可以很容易地实现对外部物理世界信号输出和输入。
根据声卡输出信号原理,采用 Matlab 软件编程,可以方便地利用声卡输出所需
要三角波、正弦波、方波等多种信号,有效地实现信号发生器基本功能,并且
可以进一步设计成数字电子琴、双音多频(DTMF)信号系统、混音器等实用
功能。本文将对上述的功能实现进行详细说明。
二、软件功能和实现原理
1、软件的功能包括:
(1)数字信号发生器的功能
能够产生正弦波、方波、三角波等常见的波形的数字信号,并且提供了图
形界面用于选择波形、频率、幅值与相位。能够根据用户指定的波形和参数产