基于MATLAB的语音信号采集和双线性变换法滤波器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章语音信号的采集

第一节语音信号采集的介绍

MATLAB是美国Math Works公司推出的一种面向工程和科学计算的交互式计算软件,在MATLAB环境中,可以通过多种编程方法驱动声卡实现对语音信号的采集和播放,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析.使用MATLAB语言编程可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种分析图的呈现等等.

在Matlab环境中,主要可以通过以下几种方法驱动声卡,采集语音信号:

1.将声卡作为对象处理采集语音信号Matlab将声卡作为对象处理,其后的一切操作都不与硬件直接相关,而是通过对该对象的操作来作用于硬件设备(声卡)。操作时首先要对声卡产生一个模拟输入对象(ai),给ai对象添加一个通道设置采样频率后,就可以启动设备对象,开始采集数据,采集完成后停止对象并删除对象。

2.调用wavrecord功能函数采集语音信号。wavrecord功能函数只适用于windows95/98/N平台,它使用windows声音输入设备录制声音。函数调用方式:wavrecord(N,fs,ch,nbits); N:采集的样本数据量; fs:样本采集频率,为8000Hz、11025Hz、22050Hz和44100Hz之一,默认值为11025Hz; ch:样本采集通道,1为单声道,2为双声道,默认值为1(单声道); nbits:每个样本的位数(或称解析度),‘double’、‘single’或‘int16’为16位,‘uint8’为8位; 3.运用audiorecorder

对象采集语音信号audiorecorder(fs,nbits,ch)可以创设一个audiorecorder对象。fs:样本采集频率,为8000Hz、11025Hz、22050Hz 和44100Hz之一,默认值为8000Hz; nbits:每个样本的位数,8位或16位,默认值为8位; ch:样本采集通道,1为单声道,2为双声道,默认值为1(单声道); audiorecorder对象创设后,就可以进行相应的录音、暂停、停止、播放以及数据读取等操作。

第二节语音信号的采集过程

一般来说,人的听觉能感知的声音频率范围为20~20000Hz,在这一频率范围内可感知的声音强度为0~140dB,其中人耳比较敏感的区域在50~4000Hz。因此,采集子系统的硬件参数可根据要分析的语音信号的频率和强度来确定。笔者设计的语音采集子系统是通过Realtek Ac'97型声卡和MATLAB的数据采集工具箱实现的。其中Realtek Ac'97型声卡的采样位数为16位,支持8~44.1 kHz的采样速率,可以满足语音采集的硬件要求。

MATLAB自带的数据采集工具箱(Data Acquisition Toolbox)是为简化和加快数据采集工作而专门设计的,提供了一整套专门用于数据采集的命令和函数,可用来直接控制与PC机兼容的数据采集设备的采集全过程。数据采集硬件设备的内部特性对MATLAB的接口是完全透明的,通过调用MATLAB函数和命令可对其进行访问,并对其属性进行可视化监控,而且对于采集的数据既可以进行实时分析,也可在存储后再进行处理,这样既方便了对实验测量数据的分析、比较和可视化操作,又提高了语音信号采集的质量和灵活性。

配置好数据采集设备的参数后,使用start命令便可启动声卡开始语音信号的采集。采集到的数据被暂时存放在PC机的内存里,理论上可采集的最大数据量是由PC机的内存容量决定的,这一点相对于一般的数据采集系统而言有较强的优势。MATLAB还可以记录采集过程中出现错误,如出错的时间、错误产生的来源以及数据采集设备的状态等信息都会被记录下来作为以后工作的参考。

如图1所示,语音采集子系统是通过Realtek AC’97型声卡和Matlab 的数据采集工具箱实现的。其中Realtek AC’97型声卡的

采样位数为16位,支持8~44.1kHz 的采样速率,可以满足语音采集的硬件要求[1]。Matlab 自带的数据采集工具箱里面,提供了专门用

于语音采集的命令和函数。数据采集的硬件设备的内部特性对Matlab 的接口完全是透明的,通过调用Matlab 提供的语音采集函数

和命令可以对其进行访问。而且,Matlab 可以对其采集的数据进行实时的分析,也可在存储后再进行处理。

图1 语音信号采集框图

话筒 数据采集设备

(声卡) MATLAB 语音采集工具箱

第二章 语音信号的MATLAB 处理

第一节 语音信号的特点

通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点:

①在频域内,语音信号的频谱分量主要集中在300~3400Hz 的范围内。利用这个特点,可以用一个防混迭的带通滤波器将此范围内的语音信号频率分量取出,然后按8kHz 的采样率对语音信号进行采样,就可以得到离散的语音信号。

②在时域内,语音信号具有“短时性”的特点,即在总体上,语音信号的特征是随着时间而变化的,但在一段较短的时间间隔内,语音信号保持平稳。在浊音段表现出周期信号的特征,在清音段表现出随机噪声的特征。

下面是一段语音信号的时域波形图(图2)和频域图(图3),由这两个图可以看出语音信号的两个特点。

00.51 1.52 2.5

3 3.5

4 4.55-0.8-0.6-0.4

-0.2

00.2

0.4

0.6Time(s)00.51 1.52 2.5x 10400.05

0.1

0.150.2

0.25

0.3

0.350.4

0.45

Frequency(Hz)

图2语音信号时域波形图 图3语音信号频域波形图

相关文档
最新文档