首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于DSP的数字对讲机基带系统中的应用

基于DSP的数字对讲机基带系统中的应用

随着通信技术的发展,传统的模拟对讲机已不能满足人们的需求,对讲机数字化势在必行。信息社会的高速发展使频谱资源变得愈加宝贵,信道利用率成为一项关键因素。如何在有限的信道资源下,通过压缩信源以提高传输效率,已成为当前急需解决的问题之一。DSP数字信号处理器的运算能力越来越强,本设计采用TI公司的通用定DSPTMS320C5509A作为基带系统的处理器,主要对G.723.1语音压缩编码在频带、DSP资源有限的数字对讲机基带系统中的具体应用进行研究与实现。
  1G.723.1语音压缩编码原理
  G.723.1标准主要用于对语音及其他多媒体声音信号的压缩。该算法是H.324系列标准的一部分,包含2种工作速率:低速率(5.3kbps)采用代数码本线性激励预测(ACELP),高速率(6.3kbps)采用多脉冲激励最大似然量化(MP_MLQ)。2种速率的编码器都以帧为处理单位,帧长为30ms,加上另需7.5ms的延时,总共37.5ms的算法延时。
  输入的16位线性PC码流分成长度为240样点的语音帧。每帧信号先通过1个高通滤波器,去除低频成分,再分成4个子帧,每个子帧60个样点。对每个子帧进行10阶LPC预测,将最后1个子帧的LPC参数转化成线谱对LSP参数。用预测分裂矢量量化法(PSVQ)进行量化。为了减少合成端合成语音信号的误差,在分析端对LSP系数解码、插值后,再变为LPC系数。由LPC分析后的LPC系数可得到共振峰加权滤波器的系数。用共振峰加权滤波器对经高通滤波后的语音信号进行共振峰加权滤波,可得到共振峰加权滤波后的语音信号f(n)。由f(n)经基音估计可求出开环基音周期,基音周期的搜索范围为18~142个样点。对每个子帧的语音信号进行谐波噪声整形、冲击响应计算,然后进行闭环基音搜索,求出闭环基音周期及基音增益,再计算出残差信号。然后根据不同的速率进行激励搜索,求出脉冲位置和幅度参数,打包后形成以帧为单位的编码数据流。
  2语音系统的结构及硬件原理图
  原始的模拟语音首先要经过模数变换,转化为数字信号之后,通过串口输入到DSP中,再进行语音压缩算法。G.723.1标准计算复杂和数据存储量大的问题使得语音编解码方案的实时实现存在很多困难。为了保证该算法处理的实时性,本系统选用DSP作为主控芯片,用来实现编解码算法。
  3语音系统的硬件设计
  本基带系统的核心部件采用CPLD和DSP。DSP负责基带的数字化处理,CPLD用于外围器件的控制。将CPLD和DSP技术相结合,一方面能利用DSP软件控制的灵活性,另一方面又能利用CPLD硬件上的高速、高集成度和可编程性。
  本系统选用TMS320C5509A(简称C5509A)负责G.723.1标准的算法及后续基带数字化的处理(信道编译码、交织、加扰、CRC、基带调制解调)。该芯片是TMS320C55X系列DSP中的一款,C55X系列的结构见参考文献[1]。
  CPLD主要用来扩展DSP的外部地址空间,实现地址译码、时序控制,并给DSP提供所需的逻辑和时序控制信号。本系统选用Altera公司MAX7000系列中的EPM7128,其与DSP的接口电路如图3(a)所示,其中FSX和FSR帧同步信号端的同步信号相同。原始模拟语音信号必须进行数字化处理后,才能在DSP中进行语音压缩编解码算法。系统选用的是ADI公司推出的低成本、低功耗通用模拟前端AD7311L,其与DSP的接口电路如图3(b)所示。由于G.723.1的算法比较复杂,处理时需要大量的存储空间,本设计采用4Mb×16的SDRAM,芯片为MT48LCM16,通过EMIF接口映射到C5509A的CEO空间

  4语音系统的软件设计
  总体软件流程如图4所示。当DSP处于发送状态时,通过MCBSP1接收来自AD7311L的数字化语音数据,调用语音压缩编码程序,编完1帧输出数据,然后继续进行后续的相关基带处理。当DSP处于接收状态时,接收来自后续基带处理的数据,调用语音解码程序;解码后的语音数据,再以每帧的数据通过MCBSP1送入AD7311L,最后还原成原始语音。下面主要介绍初始化模块及语音编解码模块。

4.1初始化模块


  系统的初始化是系统运行的基础部分,它涉及系统的整体硬件设计,如引脚的分配及连接、各芯片采用的工作模式等问题。本系统初始化模块划分为3个部分:初始化微处理器、初始化语音处理器、初始化外部寄存器。
  DSP初始化函数名为DSP_Init.c,主要是对DSP的时钟(clock),外部存储器接口(EMIF)和多通道串行缓冲串口(McBSP)进行初始化设置。
  AD7311L的初始化函数主要是对其的外部引脚配置,该模块分为McBSP1的配置和AD7311L的硬件配置。
  4.2语音编解码模块
  该模块主要是对G.723.1的代码处理。系统若直接使用ITU提供的定点C源代码,C5509A完成1帧的编码需要53400912个周期,即使C5509A工作在最高频率200MHz,也需要267ms。所以代码必须经过优化,且优化后的代码占用DSP的资源不能过高,这样才能保证DSP有足够的资源对后续的基带数字化进行实时处理。本设计主要从编译器、C语言级、汇编级和算法级4个方面对G.723.1的定点C代码进行优化。本文主要对算法级优化进行介绍。
返回列表