欢迎来到天天文库
浏览记录
ID:61332267
大小:162.50 KB
页数:5页
时间:2021-01-25
《基于DSP和MATLAB的语音数据采集和处理系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于DSP和MATLAB的语音数据采集和处理系统1前言---目前迅速发展的数字信号处理器已在数据采集、通信及多媒体等领域中得到广泛的应用。本系统采用TI公司16位定点高速芯片TMS320C5410和专用语音采集芯片TLC320AD50进行数据采集和相关滤波、压缩处理,并将最终的数据流经串口送入计算机。在计算机中使用MATLAB控制串口接收数据并完成解压、回放、编码、通信仿真等处理。2硬件电路 ---2.1TMS320C5410外部扩展电路---TMS320C5410是TI公司于1996年推出的定点数字信号处理器。它运行速度快,单周期定点指令执行时间10ns
2、或8.3ns,远大于语音采集和处理的要求。另外它采用修正的哈佛结构,程序与数据分开存放,内部具有8条高度并行性的总线。其中,一组程序总线,三组16位数据总线和四组地址总线。允许数据存放在程序存储器中,并被算术指令直接使用,大大提高了运行速度和灵活性。CPU具有40位算术逻辑单元,两个独立的40位累加器,17×17位并行乘法器,一个40位桶形移位寄存器、8个辅助寄存器、2个辅助寄存器算术逻辑单元。最大可有8M字可寻址程序存储空间,可访问的数据存储空间有64K字,I/O存储器空间有64KB。其中片内64KB的RAM包括两块2KB的DARAM,七块8KB的SAR
3、AM以及片内16KB的ROM配置位程序存储器。片上集成一个16位定时器、软件可编程等待状态发生器、六通道直接存储器访问(DMA)控制器、三个多通道缓冲串口(McBSP)以及一个8位增强型主机接口(HPI8)。---图1为DSP与存储器的接口电路,其中PS、DS、IS分别为程序、数据和I/O空间选择信号。MSTRB、IOSTRB分别为存储器和I/O选通信号。---另外,由于FLASH存储器与EPROM相比有更高的性价比,而且体积小,功耗低,可电擦写,使用较方便。因此,本系统也扩展了一片FLASH存储器,图2为DSP与FLASH的接口电路。FLASH芯片为AM
4、D公司的AM29LV400B,该芯片为单电源供电,支持整片擦除,每个分区有保护,避免意外擦除,并且使用寿命很长。---2.2TMS320C5410与TLC320AD50的接口电路---AD转换是本系统的重要组成部分,要着重考虑转换精度和抗干扰问题。本系统所用AD和DA转换芯片为TI公司的TLC320AD50,它在一个封装中集成了两种功能,可同时进行AD和DA转换。图3为TMS320C5410和TLC320AD50的接口电路。---AD50采用16位过采样sigma-delta技术,以8K的采样率对输入的语音信号进行采样、量化,按同步串行方式传给5410进行
5、处理。AD50向CPU发出帧同步和移位时钟信号来控制数据的串行传输。在此需说明一下,本系统主要用来将语音信号通过AD转换采集进来,然后串行发送给PC,在PC中用MATLAB接收信号并进行处理。整个过程中DA转换并不在信号处理的主要流程中,DA转换只是用来验证采集数据时所用到的滤波、压缩算法的正确性与合理性。所以,在编写系统软件时并没有将DA转换写入。此外,把DA转换加进来也是为了丰富系统硬件资源利于今后进行功能扩展。---2.3TMS320C5410与PC机的串口通信---本系统采用MAX232E构成5410与PC间的通信接口。MAXIM公司的MAX232
6、E采用单5V电源供电,使用时只需外接4个电容就能完成TTL与RS232间的电平和逻辑关系的转换。经过DSP系统处理的语音信号通过串口以9600b/s的速率送入计算机,在计算机中通过MATLAB控制串口接收数据,并且利用MATLAB强大的数据处理能力对语音信号进行处理。3软件实现 ---本系统的软件由上位机部分和下位机部分组成。其中,下位机部分主要是针对DSP编程完成语音信号的采样、量化、滤波、压缩编码、以及与PC的串行通信。上位机部分主要是采用MATLAB语言编程进行串口数据接收、解压缩、以文件的形式存储数据并且最终将该数据文件送入本人用MATLAB语言完
7、成的一个通信信号处理系统进行进一步处理。---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个延时节的加权
8、值,既滤波器系数,可由MATLAB的kaiserord函数和fir
此文档下载收益归作者所有