摘要 :介绍了美国dvsi公司的高性能语音压缩解压缩芯片ambe-1000,ambe-1000采用ambe语音压缩算法,具有语音音质好和编码波特率低、功耗低等优点。mc14lc5480是一款通用单信道pcm编码/解码器。该文设计了基于ambe-1000和mc14lc5480的数字语音传输系统,能够实现全双工、实时的通信,具有低波特率下较高通话质量的优点。
关键词: ambe算法编码/解码数字语音传输
0 引言
目前,语音处理系统中基于对语音构成的分析,产生了多种压缩编码算法。其中,美国dvsi公司的先进多带激励(abme,advanced multi-band excitation)算法具有较大优势。相比其他算法,它不仅码率低,同时在低波特率下能保持优良的语音合成的自然度效果,还具有良好的抗背景噪声能力。如果加上fec前向纠错编码,可对信道误码进行一定程度的纠错。正因为ambe语音压缩编码的这些优点,ambe语音压缩编码方式在野战综合通信网、卫星网、
移动通信网等专业网中得到了广泛的使用。
ambe-1000是dvsi公司开发的基于ambe算法的一种高性能的多速率语音编码/解码芯片,非常适合于数字语音通信及处理的场合。本文基于ambe-1000设计了一个语音压缩系统,该系统具有设计简便、语音编码速率可变、音质良好、功耗小等优点,可应用于多种需要。
1 ambe-1000的工作原理和模式
1.1 ambe-1000的工作原理及特性
ambe-1000是基于ambe算法的语音编码/解码芯片,其语音编码/解码速率可以在2400~9600bps之间以50bits的间隔变化。在芯片内部有相互独立的语音编码和解码通道,可同时完成语音的编码和解码任务;并且所有的编码和解码操作都在芯片内部完成,不需要外扩的存储器。ambe-1000最基本的组成部分就是一个编码器和一个解码器,两者相互独立。编码器接收8khz采样的语音数据流(16bit线性,8bit a律,8bit u律)并以一定的速率输出信道数据。相反,解码器接收信道数据并合成语音数据流。编码器和解码器接口的时序是完全异步的。ambe-1000采用a/d-d/a芯片作为语音信号的接口。送往解码器用于控制的数据和语音数据是不同的。输入输出的语音数据流的格式必须是相同的(16bit线性的,8bit a律,8bit u律),信道接口采用8位或16位的微控制器。
芯片可选择的功能包括回声抵消,vad(语音激活检测),电源模式,数据/前向纠错率的选择等,这些功能由外围管脚或输入到解码器的命令帧来决定,值得注意的是,软件命令可覆盖硬件设置。
1.2 ambe-1000的工作模式
通道接口:
通道接口用于描述从编码器输出的压缩比特流和输入到解码器的压缩比特流。该接口也可输出状态信息,例如可以检测是否有双音多频的语音信号(dtmf)输入。此外,该接口可对编解码器执行更复杂的控制操作(通常在初始化时)。这些控制功能包括语音和纠错码速率的选择、a/d-d/a芯片的设置。
在多数的语音传输系统中,实际编码比特流以一定格式从通道中摘录出来,并和系统信息合在一块构成系统传送数据流,通过传输通道发送,在接收端又被摘录出来,并通过解码器构成ambe-1000所需格式的数据流。通道接口流图如图2所示。
ambe-1000有多种工作模式:并行和串行,有帧和无帧格式,主动和被动。其中,并行被动帧模式是最灵活和实用的一种工作模式,本文设计方案采用的就是并行被动帧模式。我们可以通过上拉电阻和拨位开关与相应的接口选择引脚相连,就可以选择相应的工作模式,我们还可通过类似的方法来选择语音和纠错码速率。这样,只需设计相应的串行和并行接口,用户就可以根据预定的格式对数据进行处理。ambe-1000的数据在有帧格式下,每帧由17个16位字组成。编码器每20ms输出17个字,同样解码器则要接收17个字。当编码/解码的数据率低于9600bps时,不足的位补0。需要注意的是,无论ambe-1000工作在什么速率,所有272位(17字*16 bits=272 bits)的帧数据(包括任何未用的结尾零)都必须从编码器输出或输入解码器。无帧格式只能用于串行模式。
当编码包就绪(epr)信号变高时,表明有一编码的数据帧等待输出。当chp-rdn下沿信号到来时,8位并行数据就锁存到数据总线上,此时微控制器可以读取数据总线上的数据;并且根据chp-rdn下沿信号依次读取34字节的一帧数据。chp-obe则用来说明输出缓冲区是否有数据。当chp-rdn信号的脉冲间隔大于ambe-1000工作时钟的350倍时,可以忽略chp-obe信号。当ambe-1000工作在并行被动输入模式时,则微控制器可以根据dpe、chp-wrn信号往ambe-1000写数据。在随后的20ms,微控制器应该准备读取该帧34字节数据。
时钟和复位:
ambe-1000的输入时钟频率范围为26~30 mhz。它有三种输入方式:一、ttl时钟源直接输入;二、cmos时钟源或振荡器直接输入;三、采用晶体振荡电路输入。有效的复位信号应该是低电平,并且须持续最少6时钟周期。
2 ambe-1000的a/d-d/a接口
模拟语音信号与ambe-1000芯片之间要通过a/d-d/a芯片来连接。a/d-d/a芯片的选择要慎重,最好要选16位线性的器件。另外也要考虑这些器件的信噪比和滤波特性。
mc14lc5480是motorora公司推出的一款通用单信道pcm编码解码滤波器。它有一个输入运算放大器,运算放大器的输出输入到编码器。解码器接收到pcm数据后使用一个差分d/a转换器加以扩展。d/a的输出是3400hz以下的低通滤波输出,信号再由有源r-c滤波器滤波以消除开关电容滤波器的能带输出。
ambe-1000在使用时与任一a/d或d/a接口的语音采样率都是8khz,这8khz的语音数据通过串口来输入输出。串口的控制信号可以完全由使用者来设定。最灵活的办法就是向解码器输入一帧id=0x03h的命令帧来设置这些控制信号,使用者可以对sioc进行全部的配置。为了简化a/d-d/a芯片的配置,一组预设的配置值可以通过管脚c_sel[2~0]来配置。这些预设的配置值,指明了接口的方向以及可编程器件的程序字的顺序。ambe-1000的a/d-d/a接口电路如图3所示。
3 系统分析
考虑到系统语音信号要有足够大的增益,需要加上必要的高性能放大器芯片,采用了ad8542。系统的结构框图如图4所示。
图4 系统结构框图
系统上电后,微控制器at89c51复位,mc14lc5480进行语音的a/d-d/a转换和pcm编解码,ambe-1000负责压缩编解码过程。ambe-1000每完成一帧语音数据的编解码运算,与at89c51交换一次数据。而at89c51通过串行或并行接口与别的节点交换数据,从而完成数字化语音的通信过程。而软件编程主要是对at89c51进行编程。在电路设计时,尤其注意模拟地与数字地的分开,模拟信号和数字信号的隔离,以避免背景噪声和相互干扰。
4 结语
目前,语音通信的应用极广泛,对传输质量和流量提出了越来越高的要求。本文介绍的由ambe-1000构成的语音传输系统,不但满足了较低流量下具有良好的通话质量的要求,同时也具有低成本、低功耗的优点,在诸多场合下具有较大的应用前景。
参考文献
[1] mc14lc5480 pcm codecd datasheet.1999.
[2] 刘运毅,陈俊江,覃团发.ambe-1000声码器在语音通信系统中的应用[m].电子技术应用.2002,8:64~66.
本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/245290.html