基于DSP语音信号采集系统的设计1资料

基于DSP语音信号采集系统的设计1资料
基于DSP语音信号采集系统的设计1资料

摘要

为了研究数字信号处理,提出了一个基于DSP TMS320VC5502的语音信号采集系统的设计。给出了该系统的总体设计方案,具体硬件电路,包括系统电源设计、复位电路设计、时钟电路设计、存储器设计、A/D接口电路设计、JTAG接口设计、DSP与A/D芯片的连接等,以及软件流程图。通过MATLAB得到语音信号的波形和频谱图。实验表明: 所设计的基于DSP的硬件和软件系统是一个很好的语音信号采集系统,该系统结构清晰,电路简洁,易于实现。

关键词:语音信号;数据采集;DSP;TLC320AD50

目录

基于DSP语音信号采集系统的设计

1.引言

20世纪50年代以来,随着数字信号处理各项技术的发展,语音信号处理技术得到不断提高, 语音合成、语音识别、语音记录与语音控制等技术已开始逐步成熟并得到应用。在语音信号处理过程中, 要实现语音信号处理技术的精确性、实时性目的,语音信号采集和无误差存储成为语音信号处理中的前提。TMS320VC5502是德州仪器公司公司在2002年基于TMS320VC5502推出的定点数字信号处理器,它采用修正的哈佛结构,包括1个程序存储总线、3个数据存储总线和4个地址总线,这种结构允许同时执行程序指令和对数据操作,运行速度快,单周期定点指令执行时间为5ns,远高于语音信号采集和处理的要求。在语音信号采集中, 模拟信号向数字信号转换(ADC)的精度和实时性对后续信号处理过程起到了重要作用。设计中采用TLC320AD50完成语音信号的A/D转换。TLC320AD50是TI公司提供的一款16 bit同步串口A/D和D/A转换芯片,ADC之后有1个抽取滤波器以提高输入信号的信噪比, 其采样频率最高可达22.5 Kb/s,满足语音信号处理中关于采样频率的要求。

2.总体设计

基于TMS320VC5502的语音信号采集系统的结构如图2–1所示,该系统的中央处理单元采用美国TI(德州仪器)公司的高性能定点数字信号处理芯片TMS320VC5502,TMS320VC5502是TI公司推出的定点数字信号处理器,它采用修正的哈佛结构,包括12组独立总线,即1组程序读总线,1组程序地址总线,3组数据读总线,2组数据写总线,5组数据地址总线。这种结构允许同时执行程序指令和对数据操作,运行速度快,单周期定点指令执行时间为10ns。在语音信号采

集中, 模拟信号向数字信号转换(ADC)的精度和实时性对后续信号处理过程起到了重要作用。设计中采用TLC320AD50完成语音信号的A/D转换。TLC320AD50是TI 公司提供的一款32 bit同步串口A/D和D/A转换芯片,ADC之后有1个抽取滤波器以提高输入信号的信噪比, 其采样频率最高可达22.5 Kb/s,满足语音信号处理关于采样频率的要求。

图2-1系统结构框图

(1) DSP核心模块的设计

TMS320VC5502是整个数据采集系统中,核心处理部分。把缓存器的数据转存到海量存储器中,并对CPLD逻辑的工作方式,工作时钟进行控制,同时还完成与上位机的通信。TMS320VC5502有2个MAC单元,4个40位累加器,能够在单周期内作2个17*17的乘法运算。在这里,选用TMS320VC5502的数据空间用做SRAM的扩展,选用TMS320VC5502的I/O空间用做FLASH扩展。

DSP核心模块充当整个系统的CPU的功能,除了承担对A\D转换器送来的信号做相应的处理之外,还驱动RS-232串行通信链路将相应的数据及时的传到上位机上以备做之后的相关处理或计算,这就要求DSP芯片的处理能力相当的强大和速度必须与ADC相匹配,这一点TMS320VC5502完全有能力做到。

(2) A/D转换模块

A/D转换模块是整个系统的主要部分,它接收来自外部的信号或模拟数据,然后经过处理转换成数字信号传递给CPU做后续的处理。设计中采用TLC320AD50完成语音信号的A/D转换。TLC320AD50是TI公司提供的一款16 bit同步串口A/D和D/A转换芯片,ADC之后有1个抽取滤波器以提高输入信号的信噪比, 其采样频率最高可达22.5 Kb/s,满足语音信号处理中关于采样频率的要求。

TLC320AD50(以下简称AD50 )是TI生产的多媒体音频编解码器芯片,它集成了16位A/D和D/A 转换器,采样速率最高可达22.05KHz,其采样速率可通过DSP编程来设置。在AD50内部ADC之后有抽样滤波器,以提高输入信号的信噪比,在DAC之前有插值滤波器,以保证输出信号平滑。AD50内部有7个数据和控制寄存器,用于编程设置它们的工作状态。由于语音信号的频率范围在200Hz~23400Hz之间,采样率一般设定为8kHz,所以用AD50做AD转换器非常合适。AD50的工作方式和采样频率均通过串口编程来实现。由于转换的数据和控制数据是通过同一串行口进行传输的,所以AD50中有首次通信和二次通信。首次通信专用于转换数据的传送,其时序如图2所示。二次通信则用来设置和读出寄存器的值,所有的寄存器都在二次通信时编程。启动二次通信有两种方法,一种是在FC上加高电平,第二种是将15位方式在首次通信的D IN的LSB位置为1。AD50完成语音信号采集后,在DSP中进行相应的处理算法,语音信号经处理再从AD50输出。

图2-2 TMS320VC5502芯片

3硬件设计

由系统结构框图可知,系统主要包括实现模/数转换的A/D模块、掉电时存放程序的Flash模块、为DSP提供电源的外部电源模块、时钟模块,复位电路模块、实现程序下载的JTAG接口模块以及外接扩展存储器等几个部分.系统结构框图如图2-1所示。

(1) DSP芯片

作为DSP家庭高性价比代表的16位定点DSP芯片,C5402适用于语音通信等实时嵌入应用场合。与其它C54X芯片一样,C5402具有高度灵活的可操作性和高速的处理能力。其性能特点如下:操作速率可达100MIPS;具有先进的多总线结构,三条16位数据存储器总线和一条程序存储器总线;40位算术逻辑单元(ALU),包括一个40位桶形移位器和两个40位累加器;一个17×17乘法器和一个40位专用加法器,允许16位带/不带符号的乘法;整合维特比加速器,用于提高维特比编译码的速度;单周期正规化及指数译码;8个辅助寄存器及一个软件栈,允许使用业界最先进的定点DSP C语言编译器;数据/程序寻址空间为1M×16bit,内置4K×16bit ROM和16K×16bit RAM;内置可编程等待状态发生器、锁相环(PLL)时钟产生器、两个多通道缓冲串口、一个与外部处理器通信的8位并行HPI口、两个16位定时器以及6通道DMA控制器且低功耗。与C54X 系列的其它芯片相比,C5402具有高性能、低功耗和低价格等特点。它采用6级

流水线,且当RPT(重复指令)时,一些多周期的指令就变成了单周期的指令;芯片内部RAM和ROM可根据PMST寄存器中的OVLY和DROM位灵活设置。这些都有利于算法的优化。

(2) 电源设计

为了降低芯片功耗,C54x系列芯片大部分都采用低电压设计,并且采用双电源供电,即内核电源CVDD:采用1.8V,主要为芯片的内部逻辑提供电压,包括CPU、时钟电路和所有的外设逻辑;I/O电源DVDD:采用3.3V,主要供I/O 接口使用。可直接与外部低压器件接口,而无需额外的电平变换电路。DSP芯片采用的供电方式,主要取决于应用系统中提供什么样的电源。在实际中,大部分数字系统所使用的电源可工作于5V或3.3V,本设计采用TI公司提供的双电源芯片: TPS73HD318电源的最大输出电流为750mA,并且提供两个宽度为200ms 的低电平复位脉冲。电路图如图3-1所示。

R ST

图3-1由TPS7301 芯片组成的电源电路

(3) 复位电路设计

TMS320VC5502的复位输入引脚RS为处理器提供了一种硬件初始化的方法,它是一种不可屏蔽的外中断,可在任何时候对TMS320VC5502进行复位。当系统上电后,RS引脚应至少保持5个时钟周期稳定的低电平,以确保数据、地址和控制线的正确配置。复位后(RS回到高电平),CPU从程序存储器的FF80H单元取指,并开始执行程序。本设计采用手动复位电路(如图3-2)。

图3-2 手动复位电路

(4) 时钟电路设计

时钟电路用来为’C54x芯片提供时钟信号,由一个内部振荡器和一个锁相环PLL组成,可通过芯片内部的晶体振荡器或外部的时钟电路驱动。利用DSP 芯片内部提供的晶振电路,在DSP芯片的X1、X2之间连接晶体振荡器。使用芯片内部的振荡器在芯片的X1和X2/CLKIN引脚之间接入一个晶体,用于启动内部振荡器。时钟电路图如图3-3。

22u

时钟模块C1=C2=20pF

图3-3时钟模块电路

(5) 程序存储器扩展设计

FLASH存储器用以扩展程序存储器 AT29LV1024是1M位的FLASH存储器FLASH存储器与EPROM相比,具有更高的性能价格比,而且体积小、功耗低、可电擦写、使用方便,并且3.3V的FLASH可以直接与DSP芯片连接。地址线:A0~A15;数据线:I/O0~I/O15;控制线:CE—片选信号;WE—编程写信号;OE—输出使能信号。扩展连接图如图3-4。

图3-4程序存储器扩展电路

(6)数据存储器扩展设计

要实现语音数据和系统程序的存储,TMS320VC5502必须有外接扩展存储器。TMS320VC5502 的速度为100 MI/s,为保证DSP运行速度,需要外部存储器的速度接近10ns。系统选择ICSI64LV16作为外部存储器,其容量64K字×16 bit。其硬件连接图如图3-5所示。

图3-5数据存储器扩展电路

(7) JTAG 接口设计

在系统中,通过JTAG 测试口访问和调试DSP 芯片。JTAG 是一种国际标准测试协议(IEEE 1149.1兼容),针对现代超大规模集成电路测试、检验困难而提出的基于边界扫描机制和标准测试存取口的国际标准。标准JTAG 测试端口包括4个必选引脚和一个可选的异步JTAG 的复位引脚TRST ,分别是工作模式选择引脚TMS ,串行数据输入引脚TDI ,串行数据输出引脚TDO ,端口工作时钟引脚TCK 。JTAG 接口引脚连接如图3-6所示。

图3-6 JTAG 接口引脚连接图

(8) A/D 接口电路设计

A/D 转换模块是整个系统的主要部分,它接收来自外部的信号或模拟数据,然后经过处理转换成数字信号传递给CPU 做后续的处理。TLC320AD50是一款SIGMA- DELTA 型单片音频接口芯片, 通过串行口与DSP 或其它设备通信。它内部集成了16 位的D/A 和A/D 转换器, 采样速率最高可达22.05 Kb/s, 其采样速率可通过DSP 编程来设置。设置AD50时,串行通信数据最低为高电平。在DAC 之前有一个插值滤波器以保证输出信号平滑, ADC 之后有一个抽取滤波器以提高输入信号的信噪比。

AD50 的发送和接收可以同时进行。参考AD50 的产品手册文献, 得出TMS320VC5502与TLC320AD50的连接方法如图3-7所示

AD50

图3-7 TLC320AD50与 TMS320VC5502 串行口的连接

4 软件设计

(1) MATLAB 环境中的语音信号采集和处理仿真

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

[y,fs,bits]=wavread('C:\Documents and Settings\Administrator\桌面\zz.wav');

%读一个已保存的WAV 语音文件

wavplay(y,fs); %播放语音文件

t=(0:length(y)-1)/fs; %计算语音播放时间

figure(1);

subplot(3,1,1); %确定语音波形的显示位置

plot(t,y); %画波形图

legend('波形图');

xlabel('时间(s)'); %X 轴的标题

ylabel('幅度'); %Y 轴的标题

x=fft(y.*hamming(length(y))); %加hamming 窗快速傅立叶变换fm=10000*length(x)/fs; %限定频率范围

f=(0:fm)*fs/length(x); %确定频率刻度

subplot(3,1,2); %确定语音波形的显示位置

plot(f,20*log10(abs(x(1:length(f)))+eps)); %画频谱图legend('频谱图');

xlabel('频率(Hz)');

ylabel('频谱幅度(dB)');

c=fft(log(abs(x)+eps)); % 倒频谱计算

ms1=fs/1000;

ms20=fs/50;

q=(ms1:ms20)/fs; %确定倒频刻度

subplot(3,1,3);

plot(q,abs(c(ms1:ms20))); %画倒谱图

legend('倒谱图');

xlabel('倒频(s)');

ylabel('倒频谱幅度');

图4-1 MATLAB 环境中做出的语音信号的波形图、频谱图和倒谱图

(2)系统软件设计

主程序流程图如图4-2。

图4-2主程序流程图

时间(s)

幅度

频率(Hz )

频谱幅度(d B )

4

倒频(s)

倒频谱幅度

相关主题
相关文档
最新文档