文档库 最新最全的文档下载
当前位置:文档库 › 基于DSP和MATLAB的语音数据采集和处理系统

基于DSP和MATLAB的语音数据采集和处理系统

2064

基于DSP 和MATLAB 的语音数据采集和处理系统

中国地质大学机电学院 罗大鹏 叶敦范

1 引言

目前迅速发展的数字信号处理器已在数据采集、通信及多媒体等领域中得到广泛的应用。本系统采用TI公司16位定点高速芯片TMS320C5410和专用语音采集芯片TLC320AD50进行数据采集和相关滤波、压缩处理,并将最终的数据流经串口送入计算机。在计算机中使用MATLAB控制串口接收数据并完成解压、回放、编码、通信仿真等处理。2 硬件接口电路

2.1 TMS320C5410外部扩展电路TMS320C5410是TI公司于1996年推出的定点数字信号处理器。它运行速度快,单周期定点指令执行时间10ns或8.3ns,远大于语音采集和处理的要求。另外它采用修正的哈佛结构,程序与数据分开存放,内部具有8条高度并行性的总线。其中,一组程序总线,三组16位数据总线和四组地址总线。允许数据存放在程序存储器中,并被算术指令直接使用,大大提高了运行速度和灵活性。CPU具有40位算术逻辑单元,两个独立的40一个40存器、2大可有8M器空间有包括两块2KBSARAM程序存储器。片上集成一个16位定时器、图1为DSP与存储器的接口电路,其中PS、DS、IS分别为程序、数据和I/O空间选择信号。MSTRB、IOSTRB分别为存储器和I/O选通信号。

EPROM相比有更高的性价比,而且体积小,功耗低,可电擦写,使用较方便。因此,本系统也扩展了一片FLASH存储器,图2为DSP与FLASH的接口电路。FLASH芯片为AMD公司的

AM29LV400B,该芯片为单电源供电,支持整片擦除,每个分区有保护,避免意外擦除,并且使用寿命很长。

2.2 TMS320C5410与TLC320AD50的接口电路

要着重考虑转换精度和抗干扰问题。本系统所用AD和DA转换芯片为TI公司的TLC320AD50,它在一个封装中集成了两种功能,可同时进行AD和DA转换。图3为TMS320C5410和TLC320AD50的接口电路。

AD50采用16位过采样sigma-delta技术,以8K的采样率对输入的语音信号进行采样、量化,按同步串行方5410进行处理。AD50向CPU发AD转换采集进PC,在PC中用接收信号并进行处理。整个过DA转换并不在信号处理的主要流DA转换只是用来验证采集数据时压缩算法的正确性与合转换写入。此外,把DA转换加进图1 DSP与存储器的接口电路

图2 DSP与FLASH接口电路

图3 DSP与AD50接口电路

65

TR O NI PR OD U CT S CH I NA A UG U ST 2004

2.3 TMS320C5410与PC机的串口通信

本系统采用MAX232E构成5410与PC间的通信接口。MAXIM公司的MAX232E采用单5V电源供电,使用时只需外接4个电容就能完成TTL与RS232间的电平和逻辑关系的转换。经过DSP系统处理的语音信号通过串口以9600b/s的速率送入计算机,在计算机中通过MATLAB控制串口接收数据,并且利用MATLAB强大的数据处理能力对语音信号进行处理。3 软件实现

本系统的软件由上位机部分和下位机部分组成。其中,下位机部分主要是针对DSP编程完成语音信号的采样、量化、滤波、压缩编码、以及与PC上位机部分主要是采用MATLAB语言编程进行串口数据接收、解压缩、以文件的形式存储数据并且最终将该数据文件送入本人用MATLAB语言完成的一个通信信号处理系统进行进一步处理。

3.1 下位机部分

整个下位机部分的程序流程图如图4所示,其中滤波部分为一个FIR高通滤波算法。这是因为主要采集的对象为语音信号,而TLC320AD50内部只有一个低通滤波器,可以用于滤除高于3.4kHz的干扰信号,但是对于低于300Hz的干扰则无能为力,所以针对DSP编程设计一个FIR高通滤波器滤除低频干扰。FIR滤波器在数学上可表示为:

式(1)中x(n)为最近的输入信号,x

(n-k)为延时了k个取样周期的输入信号,y(n)为时刻t=nT的滤波器输出信号,N为滤波器的阶数。h(k)是第k个延时节的加权值,既滤波器系数,可由MATLAB的kaiserord函数和fir1函数共同算得。从计算结果可以看出,一个N(设N为偶数)阶的FIR滤波器具有系数对称性,从而其输出方程可进一步简写为:

y(n)=h0[x(k)+x(k-N+1)]+h1[x (k-1)+x(k-N+2)]+Λ+ nH/2-1[x(k-N/2+1)+x(k- N/2)] (2)根据(2)式可以编写相应程序完成FIR高通滤波。

语音压缩部分采用的是非失真的压缩算法。具体为:当有两个以上连续相等的数据时,可以用3字节表示,即前2字节相等表示被压缩的数据值,后1字节表示被重复次数。由于语音信号自身的特点,即冗余度大,这就为此种压缩提供了可能。同样,在解压时,程序读入数据流,当遇到两个相等数据时则重复此数,重复次数由后一个数据决定。

3.2 上位机部分

本次设计中比较新颖的地方就是上位控制串口接收并处

理数据。比起VC或者VB,用MATLAB作上位机程序有其独特的优势。MATLAB自带很庞大的函数库,控制串口有serial等函数,语音的回放有wavread函数,至于信号

MATLAB的强项,它自带的信号处理工具箱函数大大的缩短了系统软件开发的周期。另外,MATLAB作人机交互界面也很方便,其自带的GUI工具包使整个过程快捷、流畅,比起VB也逊色不了多少。

3.1.1 MATLAB的人机交互软件设计

用MATLAB控制串口接收数据有以下几步:

1. 先进行串口的初始化操作,然后打开串口,用到的函数为:serial和

open。

2. 设定MATLAB和DSP的握手方式,可通过串口目标的FlowControl属性设定。

3. 接收和发送数据,用到fread和fwrite函数。

界面如图5

所示,调试时注意

MATLAB本身的GUI环境下设计的软件界面不能使用全局变量,若是使用会出现函数使用错误。另外,接收和发送数据之前要清PC的数据缓冲区,以免接收到或发送的数据不是当前数据。最后,接收到的数据应以文件的形式存储下来,

以便后续的系统处理。

3.1.2 信号处理系统设计

上位机的信号处理系统的设计思路是这样的,信号首先以文件的形式输入处理系统进行频谱分析,观察信号是否被噪声污染。若其频谱含有噪声谱则马上进入滤波器模块进行滤波,以滤除信号中的噪声。然后,再将滤波后的信号送入编解码模块进行编码或解码(在这里用户可以选择不同的编解码方式)。最

后将信号送入通信仿真模块进行各种调制或解调处理及相应波形的显示。

结束语

TMS320C5410作为高速数字信号处理器具有快速的运算能力,结合MATLAB强大的信号处理能力,完全可以达到较复杂的语音信号处理要求。而且系统的可扩展能力很强,可对软件进行修改或者添加新的快速的算法提高系统信号处理的实时性。

y(n)=

Σh(k)x(n-k) (1)

N-1

K=0

图4 程序流程图图5 人机交互界面

EPC

相关文档
相关文档 最新文档