MELP在数字对讲机基带系统中的应用*

2012-08-13 05:57陈学艺凌朝东陈哲平
通信技术 2012年9期
关键词:对讲机基带解码

陈学艺, 凌朝东, 陈哲平, 杨 骁

(华侨大学 信息科学与工程学院,福建 厦门 361008)

0 引言

目前,大多数数字对讲机方案都是基于通用芯片平台,集成度低,功耗较高,价格昂贵,调试复杂,不利于产业化。随着集成电路技术的发展,基于声码器与微控制器的对讲机方案得到了较快的发展,声码器通常使用专用语音编解码芯片完成语音数字化处理。为了简化系统维护,方便使用操作,采用通用数字信号处理器作为基带处理核心,实现声码器功能,使语音处理灵活,具有更好的通用性和扩展性。

1 系统的硬件设计

根据该基带系统在功耗、成本及扩展性等方面考虑,需要完成模拟语音信号数字化转换及处理,无线信道传输。系统总体结构方案如图1所示。

系统主要由 AIC23数模转换模块、DSP语音处理模块、微控制单元(MCU)模块和 CC1101射频模块4部分构成。

1.1 DSP处理模块

基带系统处理核心是基于通用DSP形成的数字语音处理单元,实现数模转换模块AIC23的控制,完成MELP声码器。选择TMS320VC5510作为基带系统处理核心,它有如下特点[1]:双乘加器(MAC)结构,代码执行效率高;320KWord的RAM,可以减少扩展功耗较大的片外存储芯片;丰富的片上外设,如:外部存储器接口(EMIF, External Memory Interface)、直接内存存取(DMA, Direct Memory Access)控制器、多通道缓冲串行口(McBSP, Multi-channel Buffered Serial Port)等;先进的电源管理技术降低系统功耗。通过 EMIF接口扩展 256KWord的Flash存储器,用于上电后系统程序的加载,和电源、时钟管理、JTAG模块构成DSP的最小系统。

1.2 数模转换模块

TLV320AIC23是TI公司推出的一款高性能、低功耗立体声音频编解码器[2]。它可以和TI的DSP无缝连接,通过 DSP的 McBSP接口与其进行连接,McBSP1用于配置工作参数,McBSP2用于传送模数(A/D)、数模(D/A)转换的数据。AIC23和DSP的输入输出接口(I/O)电压兼容,使系统设计简单。

1.3 MCU模块

控制器 MCU主要实现对外围器件的控制和设置,进行按键扫描检测、基带信号的发送与接收、与 DSP之间数据的交换和实现通信协议。选择MSP430F149作为主控制器[2],其通用同步/异步接收/发送器(USART)串口与 DSP进行通信。 USART1与DSP的Mcbsp0接口连接,通过串行外设接口(SPI)进行数据通信;USART0与射频模块进行连接通信。

1.4 射频模块

射频模块主要完成数字基带信号调制解调,规定比特符号和码元之间的关系,并建立频率同步和码元同步。射频模块采用 TI的 CC1101芯片,集成了一个高度可配置的基带调制解调器,支持四进制频移键控(4FSK)、高斯频移键控(GFSK)、最小移频键控(MSK)等调制方式。单片机通过SPI方式实现对CC1101运行参数和64字节发送/接收先入先出队列(FIFO)的控制[3]。

2 系统软件的设计

软件主要是DSP与MSP430的程序设计,包括数据采集、语音处理、MCU控制处理。接收时,CC1101接收无线传输来的调制信号,解调后送到MSP430完成数据组帧恢复,得到数字编码码流。与DSP进行通信,DSP对其进行解码恢复成数字语音码流,送到AIC23进行 D/A转换为话音信号。发送时, 由麦克风输入的语音经AIC23进行A/D采样,由DSP进行数字压缩编码,再送到单片机进行填充组帧,最后由射频模块进行调制后发射出去。

2.1 数据采集

DSP与AIC23之间的数据交换采用DMA的工作方式[2],减轻数据采集时DSP的负担,同时进行声码器处理。采用乒乓(Ping-Pong)存储结构,每当串口Mcbsp2发送/接收到一个单元数据,自动触发DMA将其存入一个存储块中,例如Ping存储区,当存储满时会中断 CPU进行数据处理。同时,DMA会自动去操作Pong存储区,继续采集数据。这样可以有效防止数据在处理时被新数据覆盖的情况,而且Ping-Pong之间自动切换,可以不间断对数据进行采集,适合流水线式处理,完成数据的无缝缓冲与实时处理。

2.2 语音处理

语音处理模块主要实现MELP声码器算法[4-5]。语音帧长22.5 ms,每帧数据用 54 bit 进行编码。MELP声码器分为分析器和合成器两部分。分析器实现对原始语音信号进行帧分析处理,其流程图如图2所示。首先经过高通滤波器进行预处理,滤除直流工频干扰,然后完成各个语音段的特征参数(基音周期、带通清/浊音强度、非周期脉冲标志、线谱对(LSF,Linear Spectrum Pairs)参数、增益估计和傅里叶谱幅度等)的提取,最后进行量化编码和组帧。

合成器用于对接收到的码流进行解码恢复,首先进行解包、排列,然后译码生成混合激励信号,先后经过自适应谱增强,线性预测编码参数(LPC,Linear Predictive Coding)合成滤波,增益控制,脉冲离散滤波等步骤处理,在接收端重构输入的语音信号[5]。合成器的流程图如图3所示。

声码器模块采用 MELP标准的 C程序开源代码。在DSP移植过程中,需要对其进行优化,以满足实时性要求。主要从以下几个方面对MELP的定点C代码进行优化。

(1)编译器优化选项和inline函数方法优化[6]

采用优化选项的优化级别-o2,得到较高的代码优化效率。对小函数用inline关键字限定,当函数较常被调用时,可以减少调用的时间开销,获得较好优化效果。

(2)使用ETSI函数[7]

调用mathhalf文件中基本运算函数非常频繁,运行效率低。将这些函数用ETSI函数代替,当代码中调用了这些函数时,编译器会自动把优化过的汇编代码嵌入到程序中,可以节省很多时钟周期,优化效果很好。

(3)数据内存的优化

对存储器进行合理规划,将程序代码和常量系数分配到单访问随机存储器(SARAM, Single Access RAM)中,把频繁访问的变量、堆栈等放在双访问随机存储器(DARAM, Dual-Access RAM)中,充分利用片内内存,提高程序的执行效率。

(4)对程序结构进行简化

对代码结构进行优化,减少一些不必要的代码的运行,比如 logic();等测试函数。将算法中用到MEM_ALLOC()等动态分配内存的函数,根据运行时所需的空间大小在函数中直接给出,减少库函数的调用,防止破坏软件流水执行。

(5)循环优化[8]

对算法中循环部分进行优化。利用其硬件结构、寻址方式进行修改,减少分支和调用等指令,合理安排代码处理流程。充分利用其指令执行时的流水线特点,提高执行效率。

DSP程序的控制流程如图 4所示。程序中设置两个长度为180字编码和解码缓冲块。当接收缓冲区满180样点时,DMA中断CPU进行处理,把数据复制到编码缓冲块中并进行MELP编码,处理得到的数据通过DMA复制到发送缓冲存储器,送到MCU进行后续处理。解码过程是将MCU发来的帧比特数据,经过MELP解码后存储解码数据到解码缓冲块中,然后将合成语音数据发送到AIC23进行话音的回放。

2.3 MCU控制

DSP与 MSP430微控制器采用 SPI 方式进行通信,MSP430工作在主模式。主要流程如图5所示。发送过程中MSP430通过串行通信模块USART1 接收来自DSP的54bit一帧的语音压缩码流后,加上一些帧头、帧尾等信息进行组帧,形成 72 bit 的数据帧,由 USART0 送至射频模块进行发射。接收过程,MSP430对从射频模块接收到解调后的数据进行处理,将数据组帧恢复成压缩的数字语音码流,发送至DSP进行语音的合成处理。

3 测试与分析

程序经过编译、连接,然后进行下载调试[9]。对MELP声码器进行测试,优化前后的所占用的时钟周期如表1所示。

表1 优化前后时钟周期

可以看出,优化前MELP处理一帧数据,分析就需要 31 115 629个时钟周期,DSP工作在最高频率200 MHz下也需要 155.6 ms,远远大于一帧 22.5 ms的处理时间。经过优化后,分析一帧数据只需要4.1 ms,合成一帧语音也从43.6 ms降到了1.3 ms。能够达到语音的实时处理,满足系统性能要求。

利用国际电信联盟(ITU)推荐的P.862主观语音质量评估(PESQ, Perceptual Evaluation of Speech Quality)算法对合成语音与原始语音的误差进行数学计算,得到合成语音的平均主观得分(MOS, Mean Opinion Score)[6]。优化后 MELP声码器的合成语音的MOS值在3.27左右,通过人耳可以听到较清晰,可懂度较好的话音,符合要求。

4 结语

从基带系统中 MELP声码器的测试结果看, 基于通用DSP的方案在发射端能进行语音采集数字化处理,并在接收端正确完成语音的解码回放,话音质量良好。结合DSP处理器特点,通过对代码优化后获得性能良好,在信道频率资源有限的条件下,较好的实现了MELP声码器对语音的数字化处理,能满足数字对讲机基带系统设计要求。适用于短波窄带数字语音通信、保密通信等需要低速率的语音编码场合, 具有广阔的应用前景。

[1] 刘媛媛.基于DSP的MELP语音编码算法研究及实现[D].哈尔滨:哈尔滨工程大学,2008.

[2] 熊堃,陈向东,葛林.数字对讲机中语音编码的研究与DSP实现[J].通信技术,2010,43(10):123-125.

[3] 韦建超,陈向东.基于 CC1101的无中心数字对讲机设计[J].电子设计工程,2009,17(06):1-3.

[4] 彭天伟,凌朝东,杨骁.数字对讲机中语音信号处理的研究[J].通信技术,2011,44(10):58-60.

[5] 王洪,唐凯.低速率语音编码[M].北京:国防工业出版社,2006:72-172.

[6] 李洋,吴玉成.MELP语音编解码算法在DSP上的优化[J].电声技术, 2010,34(05):44-47.

[7] 钟磊. G.723.1在DSP数字对讲机基带系统中的应用[J].单片机与嵌入式系统应用,2009(08):13-16.

[8] 陈泰红,任胜杰,魏宇.手把手教你学 DSP:基于 TMS320 C55x[M].北京:北京航天航空大学出版社,2011:154-171.

[9] 文军,王加懂.DSP程序在线编程的研究与实现[J].信息安全与通信保密.2007(08):193-195.

猜你喜欢
对讲机基带解码
《解码万吨站》
帮助聋哑人士交流的“对讲机”
Ag元素对Ni-7at.%W合金基带织构形成的影响
家用对讲机的概述
解码eUCP2.0
苹果推出自研基带芯片要过几道坎?
苹果10亿美元为5G买“芯”
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
耳机式对讲机