普仕凡
(中国人民解放军91550部队,大连,116023)
海上靶标搭载大量的靶载装备,海上布靶时,遥控岸站与海上靶标需要进行对接,确定靶载装备的工作状态,由于海上布靶点无GMS网络,无线对讲机无法使用,随靶出海人员与岸上人员在布靶期间的语音通信一直没有有效解决。为解决该问题,由靶标主管部门出资,以备份的靶载遥控 PDL数传电台为通信手段,研制了岸靶语音通信系统。经多次出海试验结果表明,MBE编码速率为2.4 kbps时语音通信效果良好、音质自然度较好、可靠性强,可有效解决岸靶语音通信问题。
岸靶语音通信采用 PDL数传电台为通信手段,电台最高通信波特率为 19.2 kbps,工作时通常使用9.6 kbps,无压缩情况下,8位A/D在8 kHz采样下的波特率为64 kbps,远高于9.6 kbps的电台通信波特率,为此选用AMBE-2000TM芯片为语音压缩工具,将语音数据压缩到9.6 kbps以内。AMBE-2000TM使用先进的多带激励(AMBE-Advanced MBE)编码。
MBE编码算法是用基音谐波处的谱抽样来表示短时谱,并且在谐波间隔频段上分别进行清/浊音判决。合成端用一组正弦波合成谱,用噪声谱的傅里叶反变换来合成清音谱。这种算法提出了一种由正弦模型引出的频域模型:多带激励模型。MBE模型如图1所示。首先按基音各谐波频率,将一帧语音的频谱分成若干个谐波带,再以若干个谐波带为一组进行分带,分别对各带进行清/浊、(V/U)判决,总的激励信号由各带激励信号相加构成。对于浊音带,用基音周期的脉冲系列谱作为激励信号谱;对于清音带,则使用白噪声谱作为激励信号谱。时变数字滤波器的作用是确定各谐波带的相对幅度和相位,起到了将这种混合的激励信号谱映射成语音谱的作用。这种模型使合成语音谱同原语音谱在细致结构上能够拟合得很好,其合成端的语音质量必然较高。
图1 MBE语音信号产生模型
MBE模型的数学表达式为:
而在合成端,合成语音信号表示为:
由图1可知,对于每一帧语音,必须估计的MBE模型参数是:基音频率ω0(基音周期P0= 2π/ω0)、清/浊音判决和谱包络参数Am(实际是谐波处的谱抽样)。基音频率和谱包络参数的估计是同时进行的。估计采用搜索算法和最小均方误差准则。
MBE合成算法是以MBE模型为依据,利用分析算法得到的参数来合成语音的。这里,清音和浊音分别合成,然后再将二者相加得到最终的合成语音。清音合成在频域进行。浊音合成可以用一组基频ω0及其谐波为振荡频率的正弦波在时域中直接合成。MBE编码在速率降到2.4 kbps时,仍能保持相当的可懂度和自然度。
基于AMBE-2000的岸靶语音通信系统由完全相同的两个终端构成。每个终端由 PDL数传电台、RS232电路、ATmega128单片机、AMBE-2000电路、AD73311电路、音频功放和前置音频放大电路组成。终端总体框图如图2所示。
图2 总体框图
终端的工作过程为:发送时AMBE-2000电路读取 AD73311电路采集的语音信号,将数据通过AMBE编码压缩,大约每20 ms生产一个压缩数据包,数据包生成后,其EPR引脚会输出一个短的负脉冲通知ATmega128单片机读取数据。ATmega128单片机读取数据后,通过数据帧格式中的帧起始数据来定位有效的语音压缩数据并将之取出,如果终端的PPT键按下则通过数传电台将压缩数据传送出去。接收时ATmega128单片机收到PDL数传电台传送来的压缩数据包,将数据包按照有格式数据打包送给 AMBE-2000电路解码,解码后的数据经过AD73311电路的D/A变换后送给音频功放推动扬声器播放语音。
AMBE-2000内部原理如图3所示[2],它可以分为编码器和解码器两部分。编码器从语音串行接口接收语音数据,从信道串行接口输出压缩数据;反之,解码器把从信道串行接口接收到的压缩数据还原为语音数据,从语音串行接口输出。编码器和解码器是完全异步的。
图3 AMBE-2000内部原理
语音串行接口和信道串行接口通常分别接A/D、D/A转换器和微处理器,这里分别选用AD73311[3]和ATmega128单片机,它们与AMBE-2000的接口电路如图4所示[1]。
图4 AMBE-2000外围电路
由图4可知,单片机通过PA0、PA1、PA2、PA3和PA4对AMBE-2000的压缩编码波特率进行选择,本系统初始化时设置5位波特率选择引脚为“10110”,选择压缩编码波特率为2400 bps,FEC为0 bps;单片机通过PA5和PA6控制AMBE-2000的无格式语音数据位选择端,设置使用有格式语音数据,设置PA5和PA6为“00”;单片机通过PC0和PC1控制AMBE-2000的通道软件接口,设置PC0和PC1为“00”使用主动有格式数据接口;单片机通过 PC2和 PC3控制AMBE-2000的A/D/A接口配置,系统设置PC2和PC3为“01”选择使用AD73311芯片[4];单片机通过PA7控制 AMBE-2000的复位引脚,通过 PC4控制AD73311的复位引脚。单片机通过PC4控制AD73311的串口使能位,初始化时PC4必须设置为“1”;单片机PE7接到按键PPT上,PPT用于控制语音传送。
单片机的外中断4与AMBE-2000的EPR引脚相连,通过外中断4读取AMBE-2000的编码数据,由于AMBE-2000工作在主动有格式状态,因此解码时,AMBE-2000大约每20 ms生产一个压缩数据包[5],这个数据包共有24个字节组成,数据包生成后,其EPR引脚会输出一个短的负脉冲指示[6],依次来决定对数据包的处理。单片机的外中断4(INT4)设置成下跳沿触发, EPR每输出一个下跳沿单片机就转到外中断4子程序去执行,读取一个数据包。
由图4可知,AMBE-2000压缩语音信号的读写通过ATMEGA128单片机的SPI接口实现,由于文章篇幅的关系,PDL与单片机的接口电路没有给出,本设计中,单片机通过UART1经RS232接口与数传电台连接。岸靶语音通信程序采用C语音编写,可读性强,存于单片机内部的FLASH存储器中,SPI接口和UART1接口的设置程序如下:
图5 系统程序流程图
单片机上电初始化的内容有:设置波特率选择引脚为“10110”,即压缩编码波特率为2400 bps;设置使用有格式语音数据;设置使用主动有格式数据接口;设置选择使用AD73311芯片作为A/D、D/A芯片;设置 SPI工作在主机模式,速率为 fosc /64;设置UART1波特率为9600、8位数据、1位停止位;设置外中断INT4、INT7工作在下降沿触发模式。
程序正常工作过程中,时刻监测外中断INT7和UART1的接收中断数据,如果外中断INT7出现下降沿触发并始终为低电平,程序转到外中断7执行,循环读取语音压缩数据并通过数传电台发送,直到INT7为高电平;程序正常工作过程中如果UART1接收到有效的语音压缩数据,则将数据根据AMBE-2000的编码数据包的格式打包,通过 SPI接口发送给AMBE-2000芯片播放。
在设计SPI读取AMBE-2000的编码数据程序中,当INT4中断到来时,通过读取帧头字节0x13、0x EC来定位有效数据的位置。另外,第2~6个字为压缩数据率特征字,在特定的数据率下,这5个字也是确定的。所以可以采用多帧头匹配的方法来提高有效数据定位的可靠性。第12~23 byte为语音压缩数据,压缩率为 2400 bps时,有效的压缩语音数据位数为:2400/50=48位,48/8=6 byte。也就是说只有 6 byte语音压缩数据,其它数据位为0。程序设计时,单片机的UART1接口只传输有用的数据,数传电台发送的数据格式见表1。
表1 发送数据格式
岸靶语音通信系统研制过程中,进行了拉距试验,从大连老铁山361高地至营口耗山,海图测量其距离为48.1 n mile,即89 km。岸站和靶载两端语音通话正常,并获得了较高的语音通话质量。岸靶语音通信系统研制完成后,多次出随任务出海使用,使用中系统通话稳定可靠。MBE编码速率为2.4 kbps时语音可清晰识别,音质自然度较好。
使用PDL数传电台和AMBE-2000芯片相结合实现语音通信的技术,可以应用到需要进行远距离无线通信的场合,而且 PDL数传电台的数据通信稳定性好,可以使用该技术实现数话同传功能。
[1] 徐玉滨, 沙学军, 隋丽娟. AMBE算法的特性分析与研究[J].无线电通信技术, 2004, (4): 11-13.
[2] 龚小燕, 牟荣增, 阎跃鹏, 等. 一种基于 AMBE-2000的低频率语音通信系统[J]. 微计算机信息, 2009, 25(2-2).
[3] Analog Devices,Inc . AD73311 Datasheet[M]. 1998.
[4] 张歆奕, 卢敦陆, 张有为. AD73311通用模拟前端的原理及其在语音处理中的应用[J].电子技术应用, 1999, (8): 53-55.
[5] Digital Voice Systems, Inc. AMBE-2000TMVocoder Chip USER’S Manual[M]. 2000.
[6] 魏柠柠, 金向东. 多速率语音芯片AMBE-2000的开发和应用[J]. 电声技术, 2005,(9).