DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 129|回复: 0
打印 上一主题 下一主题

TMS320C5402的语音信号压缩存储系统实现

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 13:59:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      混沌在信号处理、通信和控制领域的应用也日渐广泛。一般认为,在通信领域,混沌信号代替传统的正弦信号作信息载体有以下优势:其一是混沌信号的宽频特性可以实现某种意义上的扩频;其二是混沌信号的类似噪声难以预测,而这一特点正好可为信息的保密传输提供保证。随着多媒体信息技术和网络技术的高速发展,数字语音压缩技术的应用领域越来越广泛,尤其在可视电话、IP网络电话、数字蜂窝移动通信、综合业务数字网、公共交换电话网和话音存储转发系统等领域中,需要在保证语音一定质量的前提下尽可能降低其编码比特率,便于在有限的传输带宽内让出更多的信道用于传送图像、文档、计算机文件和其他数据流。
  1 语音信号压缩原理
  μ/A律压缩解压编码是国际电报电话协会CCITT(CONsultaTIve Committee for International Telegraph and Telephone)最早推出的G.711语音压缩解压编码。
  A律压扩的数学解析式为:



  式中:y为输出信号;x为输入信号;A为压缩系数。
  由上式得知,小信号时为线性特性,大信号时近似为对数特性。A律可用13段折线逼近,便于用数字电路实现13段折线的压缩特性如图1所示。图1分段为x取正值时的情况,而x取负值时,压扩特性与x取正值成奇对称,在正8段和负8段中,正1、2段和负1、2段斜率相同,合为一段。



  在进行A律压缩时,采样后的12 bit数据,默认其最高位为符号位,压缩时要保持最高位即符号位不变,原数据的后11 bit要压缩成7 bit.这7 bit码由3 bit段落码和4 bit段内码组成。压缩变换后的数据根据后11 bit数据大小决定。具体的编码表如表1所示。



  2 系统硬件接口设计
  本系统实现的是G.711标准A律压缩编码的语音处理过程。语音采集与输出模块采用TI公司推出的一款高性能的立体声音频Codec芯片TLC320AD50C,内置输入和输出放大器,且对输入和输出都具有可编程增益调节。
  2.1 模拟接口设计
  模拟信号输入电路如图2所示。语音信号放大器经过前端放大器TLC2272ACD放大、带通滤波、单输入信号转换为差分信号后,送入AD50C的A/D转换器的差分输入端(INP和INM)。A/D转换器将输入的模拟信号转换为以二进制补码表示的数字信号。



  模拟信号输出电路如图3所示。经D/A转换、内部低通滤波恢复的模拟信号从AD50C的OUTP管脚输出,外部放大滤波电路选用LM356运算放大器。



  2.2 数字接口的设计
  TLC320AD50C就是一种具有许多优良特性的模拟接口电路芯片,该芯片可广泛用于各种电路,尤其是应用在DSP领域中。AD50芯片采用过采样 - 技术,可进行A/D和D/A的高分辨率、低速信号转换。该器件同时还包括两个串行同步转换电路,在DAC之前有一个内插滤波器,而在后面有一个抽取滤波器。AD50中的可选项和电路配置可以通过串行口进行编程, AD50配置位可进行软件编程,该器件中共有七个数据和控制寄存器可供使用。
  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,帧同步脉冲低电平有效,并且帧同步信号和移位时钟信号由外部产生。
  (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开发环境上得到验证。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-24 00:42 , 耗时 0.154161 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表