首页 > 范文大全 > 正文

基于TETRA标准的语音压缩编解码器的实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于TETRA标准的语音压缩编解码器的实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】文章从TETRA通信终端的组成入手,介绍了一种基于双核处理器OMAP5912的tetra标准语音压缩编解码器的实现方案,阐述了其软硬件及算法的设计,给出了语音编解码器的原理与实现步骤。实际应用结果表明该方案可行。

【关键词】TETRA 语音压缩编解码 OMAP ACELP

1 引言

ETSI TETRA(Terrestrial Trunked Radio,陆上集群无线电)作为全球性数字集群无线电标准,具有频谱利用率高、兼容性强、开放性好、通话质量高和保密功能强等特点,广泛应用于全球各国公共安全、运输、经济、军事等领域。对于便携式的终端而言,它们对系统芯片的体积、功耗和成本提出了极为苛刻的要求。TI公司推出的开放式多媒体应用平台(OMAP,Open Multimedia Applications Platform),正是为了满足这样的需求而推出的适用于便携式多媒体终端的系统芯片。它除了具有性能/功耗比上的优势外,还提供丰富的接口,支持几乎所有流行的有线和无线接口标准。由于其出色的性能,该平台受到了世界主要移动设备制造商(如诺基亚、爱立信、索尼等)的青睐。

2 TETRA通信终端

TETRA标准作为一个满足专用移动通信(PMR)用户特殊需求而开发的数字集群标准,具有业务多样化、频谱效率高、通信保密性好、兼容互联性强、呼叫建立快速、调度特性良好、直通工作方式(DMO)等特点。与其它通信系统相比,其频谱效率、兼容互联性、直通工作方式和安全性能方面的优势尤为突出。TETRA标准的频谱范围从VHF的150MHz到UHF的900MHz,收发频率间隔为10MHz(900MHz时为45MHz)。

TETRA通信终端由射频和基带两部分组成。射频部分包括发射机、接收机、功率放大器和频率合成器等,基带处理部分包括语音编解码、信道编码、调制解调、突发脉冲的成型和设备接口。为了便于用户操作,移动台需要有各种控制按钮和显示面板等友好的人机接口。系统框图如图1:

3 基于OMAP5912的硬件平台

OMAP5912采用独特的双核结构,内含一个实现控制功能的带TI增强型ARM926EJ-S内核的处理器和一个实现数据处理功能的高性能、低功耗的TMS320C55x DSP内核。ARM处理器可用来实现各种通信协议、控制和人机接口等功能;数字语音编解码和纠错编解码算法在DSP核中完成,可充分利用DSP运算能力强、速度快的优点,并且具有极低的功耗。ARM核与DSP核之间的双核通信机制,可以充分结合两者的优势,让其发挥最大的效率。

基带部分需要为射频部分提供一系列的接口,用于数据和各种控制信号的传输。OMAP5912含有丰富的接口,如McBSP(Multichannel Buffered Serial Port)接口、UART接口、SPI(Serial Peripheral Interface)接口、I2C(Inter-Integrated Circuit)接口、JTAG(Joint Test Action Group)接口、GPIO(General Purpose I/O)等,完全可以满足接口的需要。硬件结构如图2所示。

在发送端,由AIC23对模拟语音进行A/D转换,通过DSP的串行接口将信号送到DSP核,在DSP端进行语音编码和信道编码(这两块为系统最主要的运算开销),再将信道编码后的数据流加入帧同步组成完整的帧。然后将基带信号调制到合适的频率,进行射频放大,经过带通滤波器以降低邻道干扰,最后通过天线将信号发射出去。接收过程与此相反。整个过程由ARM统一控制。

4 软件系统及算法设计

CPU系统结构是由双核(ARM+DSP)构成的,因此编译要分别在ARM端和DSP端单独进行,产生的可执行代码也要分别下载到存储器上。其中ARM为主CPU,DSP为协处理器,系统的整体初始化配置及系统的控制都是在ARM端进行,DSP负责完成信号处理算法。

4.1 OMAP5912初始化

OMAP5912芯片的初始化包括对ARM和DSP核的初始化,关闭中断,关闭看门狗,初始化时钟、电源等,初始化堆栈,加载中断服务程序并开启中断,设置复位引脚,初始化存储器和接口。初始化工作在ARM端进行,这里ARM和DSP核的工作频率为192MHz。

这些初始化工作在ARM端的GEL文件sd5912osk.gel和系统库中的OSK5912_init()函数中进行设置,使用时需要在CCS3.3上的ARM端先加载sd5912osk.gel文件,然后在主函数中引用OSK5912_init()函数即可。

4.2 双核通信

在OMAP5912中,复杂的数据运算由DSP核处理,ARM核负责系统的控制。为了保证DSP核与ARM核之间快速有效的通信,OMAP5912提供了三种双核间的通信机制:Mailbox中断方式,MPUI方式以及共享内存空间方式。

系统采用的是Mailbox中断方式,RAM与DSP均可以通过Mailbox触发对方的中断,并可以同时传递两个16bits的参数,以通知对方自己的状态或传递某种请求。在OMAP5912内部有三组邮箱寄存器:一组由ARM用来向DSP发送消息和产生中断,另外两组由DSP用来向ARM发送消息和产生中断。每组邮箱寄存器包含2个16bits寄存器和1个1bit的标志寄存器,其中的一个16bits寄存器由产生中断的处理器用来向被中断的处理器传递一个字的数据,另一个16bit寄存器则用来传递命令。邮箱机制通信的特点是及时、可靠,但每次传递的数据量较小,因此适合于在双核间通信时作为握手信号。

软件设计的大致过程为,先在ARM端运行初始化程序和对存储器等的设置程序,完成后通知DSP端进行数据处理。由于整个过程并不需要交换大量的数据,因此可以考虑使用简单易行的Mailbox方式,实行性和可靠性强。下面说明Mailbox方式在本系统中的实现过程。

在ARM端和DSP端分别设置好寄存器ARM2DSP1的地址。在ARM端运行初始化等程序结束后,向寄存器ARM2DSP1写入一个数值,DSP端查询寄存器ARM2DSP1的值,查询到之后启动DSP端对数据进行处理。也可以通过中断方式实现,即先ARM端运行初始化等程序,完成后发出一个中断,DSP端接收到此中断后,跳转到中断服务程序完成对数据的处理过程。

4.3 语音压缩编解码

TETRA系统中使用的语音编解码算法是ACELP(自适应码激励线性预测)算法。ACELP是一种混合语音编码算法,MOS得分为3.5(语音质量较好)。ACELP算法采用代数码本结构和聚焦搜索技术,提高了码本的灵活性,且大大降低了复杂度。

系统的AD采样频率为8kHz,每个数据的位数为16,进行一次编码需要的输入数据个数为240个。经过传输解码后,重建后的语音数据个数为240个。

ACELP算法每帧30ms,将每帧分成4个子帧,每个子帧7.5ms,编码后得到137比特的数据流。采用8k的采样速率每帧有240个抽样,每子帧有60个抽样。

编码分为短时预测分析(LP分析)和长时预测分析(基音分析),LP需要每帧更新一个,而基音参数和代数码本参数需要每子帧计算一次。编码得到的137比特的分配如表1所示,每帧137bits,码率压缩为4.567kb/s。