基于TMS320C5402的语音信号压缩存储系统设计
2010-08-13杨明远
杨明远,何 颖
(湖南商务职业技术学院,湖南 长沙410205)
近年来,随着多媒体信息技术和网络技术的高速发展,数字语音压缩技术的应用领域越来越广泛,尤其在可视电话、IP网络电话、数字蜂窝移动通信、综合业务数字网、公共交换电话网和话音存储转发系统等领域中,需要在保证语音一定质量的前提下尽可能降低其编码比特率,便于在有限的传输带宽内让出更多的信道用于传送图像、文档、计算机文件和其他数据流。本文研究A律压缩算法的应用,给出音频接口芯片TLC320AD50C与TMS320C5402的接口设计,以实现语音信号的压缩、存储和回放。
1 语音信号压缩原理
μ/A律压缩解压编码是国际电报电话协会CCITT(Consultative Committee for InternationalTelegraph and Telephone)最早推出的G.711语音压缩解压编码。其中欧洲和中国等国家采用A律压缩解压编码,美国和日本等国家采用μ律压缩解压编码。由于本系统采用A律压缩解压算法,这里只介绍A律压缩原理。
A律压扩的数学解析式为:
式中:y为输出信号;x为输入信号;A为压缩系数。
由上式得知,小信号时为线性特性,大信号时近似为对数特性。这种压扩特性常把压缩、量化和编码合为一体。A律可用13段折线逼近(相当于A=87.6),便于用数字电路实现[1]。13段折线的压缩特性如图1所示。图1分段为x取正值时的情况,而x取负值时,压扩特性与x取正值成奇对称,在正 8段和负 8段中,正 1、2段和负1、2段斜率相同,合为一段,所以原来的 16段折线变为13段折线。
在进行A律压缩时,采样后的12 bit数据,默认其最高位为符号位,压缩时要保持最高位即符号位不变,原数据的后11 bit要压缩成 7 bit。这 7 bit码由 3 bit段落码和4 bit段内码组成。压缩变换后的数据根据后11 bit数据大小决定。具体的编码表如表1所示。
表1 A律压缩编码表
2 系统硬件接口设计
本系统实现的是G.711标准A律压缩编码的语音处理过程。系统以TMS320C5402为核心,完成语音的压缩、存储、解压功能。语音采集与输出模块采用TI公司推出的一款高性能的立体声音频Codec芯片TLC320AD50C,内置输入和输出放大器,且对输入和输出都具有可编程增益调节。
2.1 模拟接口设计
模拟信号输入电路如图2所示。语音信号放大器经过前端放大器TLC2272ACD放大、带通滤波、单输入信号转换为差分信号后,送入AD50C的A/D转换器的差分输入端(INP和INM)。A/D转换器将输入的模拟信号转换为以二进制补码表示的数字信号。
模拟信号输出电路如图3所示。经D/A转换、内部低通滤波恢复的模拟信号从AD50C的OUTP管脚输出。外部放大滤波电路选用LM356运算放大器,放大后的信号送扬声器还原成声音。
2.2 数字接口的设计
TLC320AD50C支持与TMS320C5402无缝对接,接口电路如图4所示。将TLC320AD50C设置成主动工作模式,输入主时钟MCLK为8.192 MHz,采样频率选择为8 kHz,内部 PLL使能(控制寄存器 4中的 N=8)[2]。通过寄存器设置,将 TMS320C5402的 FSX、FSR、CLKR、CLKX 配置为外部输人,TLC320AD50C的SCLK配置为内部产生。数据接收/发送帧同步信号、移位时钟信号均由TLC320AD50C产生,串行口的接收/发送过程受TLC320AD50C的控制。
3 系统软件接口设计
系统程序流程图如图5所示,软件设计工作主要包括以下几方面:
(1)TMS320VC5402串口的初始化。首先将DSP串口0复位,再对串口0的寄存器进行编程,使DSP串口工作在以下状态:以 SPI模式运行,每帧一相,每相一个字,每字16 bit,帧同步脉冲低电平有效,并且帧同步信号和移位时钟信号由外部产生[3]。
(2)AD50C初始化。该初始化操作过程包括通过TMS320C5402的同步串口发送2串16 bit数字信息到AD50C。第一串为0000 0000 0000 0001B,最低有效位(bits0)为1,说明下一个要传输的数据字属于次通信。第二个数据用来对AD50C的4个控制寄存器的某一个进行配置。15~11位为 0,10~8位为所选寄存器地址值,7~0位为所选中寄存器的编程值。通过对4个可编程控制寄存器编程,使AD50C工作在以下状态:选择INP/INM为工作模拟输入,15+1 bit ADC和15+1 bit DAC模式,不带从机,采样频率为8 kHz,模拟信号输入和输出放大增益均为 0 dB[4]。4个寄存器初始化需要4个主通信和次通信。
(3)压扩算法的实现。TMS320C5402内部的缓冲 串 口 (McBSPs) 带 有 硬件实现的μ律和A律压缩解压,用户只需要在相应寄存器中进行设置就可以了,本系统通过软件编程来完成线性码转换成A律。在主程序中通过A/D抽样量化得到线性编码,再由编码表通过软件计算得到8 bit A律编码,其中最高位为符号位,第6 bit到第4 bit为段落码,低4 bit为段内码。将8 bit的压缩结果存储到系统RAM中进行缓存,根据抽样率、语音存储时间以及系统RAM的容量设置语音存储缓冲区的大小,待缓冲区存满后,将缓冲区内的数据进行解压缩,然后输出到SPEAKER接口输出。
4 系统实验结果
硬件调试成功后,使录音时间达到5 s左右。通过CCS观察数据图形,图6为压缩前的语音信号波形,图7为压缩后的语音信号波形;通过回放,试听解压后语音信号无明显失真。实验结果说明系统成功实现了语音信号的压缩存储。
本文所介绍的MS320C5402与TLC320AD50C的组成语音压缩存储系统,接口电路简单,编程方便,且程序代码已在CCS3.1开发环境上得到验证。
[1]宋依青,何松.一种基于DSP语音信号线性与非线性量化相互转换的新方法[J].微电子学与计算机,2008(11):36-39.
[2]徐速.基于 DSP的实时语音压缩[J].微计算机信息,2007(2):61-64.
[3]李利.DSP原理及应用实用技[M].北京:中国水利水电出版社,2004:200-210.
[4]TLC320ADC/TLC320AD52C Data Manual.Texas Instruments,2002.