这里有很多方式允许使用Matlab和PC声卡来执行一个Talk-Through(直入直出)操作。因为我们的目的简单地转换成为DSP硬件的实现或者其他的DSP算法,需要将限制我们的讨论在Matlab的内建autiorecorder函数和SIMULINK程序(它也是美国MathWorks公司的产品)。
1.Matlab的audiorecorder.m函数
最新版本的Matlab对于32位Windows操作系统的计算机提供了audiorecorder.m的功能。这个特点允许声卡记录和播放声音文件而不需要Matlab的DAQ工具箱。图2.10所示框图描述了Matlab和PC声卡的接口关系。Matlab和audiorecorder.m相关的帮助文件如下,包括在这个帮助文件中的是与声卡记录和播放相关的一个完整的例子。
图2.10 Matlab到PC声卡的接口
>>help audiorecorder
AUDIORECORDER———音频记录对象。
AUDIORECORDER创建一个8000Hz,8位,1通道的AUDIORECORDER Object。会返回一个对象的句柄。
AUDIORECORDER(Fs,NBITS,NCHANS)创建了一个AUDIORECORDER对象,它的采样速率为Fs(单位为Hertz),比特位数为NBITS,通道数目为NCHANS.常用的采样速率为8000Hz、11025Hz、22050Hz、44100Hz。在Windows系统中比特位数必须为8、16、24。UNIX系统中为8或16。通常的数目必须为1或2(单通道或者立体声)。
AUDIORECORDER(Fs,NBITS,NCHANS,ID)创建一个使用音频设备识别ID作为输入的一个对象AUDIORECORED。如果ID等于-1,使用默认的输入设备。这个选项只能在Windows操作系统中使用。
例子:即时记录你的声音。使用采样速率为22050Hz,16比特,单通道。对着送话器说话,然后暂停你的录音。播放你当前所录音的内容。再录一些音,然后停止录音,最后将录音的数据以一个int16矩阵的形式返回到Matlab,程序如下:
(www.xing528.com)
可参看audioplayer,audiodevinfo,methods,audiorecorder/get,audiorecorder/set相关内容。
2.SIMULINK
SIMULINK也包含大量的建模和仿真环境的工具及Matlab可以使用的工具箱。图2.11所示的例子中,这个框图看起来非常简单但是有非常突出的灵活性和多样性。
图2.11 基于PC的Talk-Through系统的SIMULINK示例
From Wave Device—来自波形装置To Wave Device—发送到波形装置To Wave File—发送到波形文件
通过双击From Wave Device SIMULINK框,可以看到的所有用户可以调节的参数都可以观察和修改,如图2.12所示。在图2.13所示界面中单击“start simula-tion”按钮。这个例子是具有执行记录到波形文件的附加特性的Talk-Through例子。这个波形文件data.wav可以在Matlab中使用wavread函数随时读取出来。
图2.12 来自图2.11所示波形设备的块参数
图2.13 单击SIMULINK工具栏的开始仿真按钮
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。