新闻中心

EEPW首页>嵌入式系统>设计应用> 基于DSP的数字对讲机基带系统中的应用

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

作者: 时间:2012-06-16 来源:网络 收藏
4.1初始化模块

本文引用地址://m.amcfsurvey.com/article/148898.htm

的初始化是运行的基础部分,它涉及的整体硬件设计,如引脚的分配及连接、各芯片采用的工作模式等问题。本系统初始化模块划分为3个部分:初始化微处理器、初始化语音处理器、初始化外部寄存器。

初始化函数名为_Init.c,主要是对的时钟(clock),外部存储器接口(EMIF)和多通道串行缓冲串口(McBSP)进行初始化设置。

  AD7311L的初始化函数主要是对其的外部引脚配置,该模块分为McBSP1的配置和AD7311L的硬件配置。

  McBSP1的初始化函数如下:

  4.2语音编解码模块

  该模块主要是对G.723.1的代码处理。系统若直接使用ITU提供的定点C源代码,C5509A完成1帧的编码需要53400912个周期,即使C5509A工作在最高频率200MHz,也需要267ms。所以代码必须经过优化,且优化后的代码占用DSP的资源不能过高,这样才能保证DSP有足够的资源对后续的化进行实时处理。本设计主要从编译器、C语言级、汇编级和算法级4个方面对G.723.1的定点C代码进行优化。本文主要对算法级优化进行介绍。

  在对G.723.1算法进行仿真的过程中发现,基音估计、自适应码本搜索、固定码本搜索和代数码本搜索等模块占语音编解码的总时间超过70%,因此优化措施应着重对这几个模块的算法进行优化。

  ①开环基音估测函数Estim_Pitch()中,计算图1f[n]中的互相关值COL(j):

  寻找使得COL(j)max,开环基音周期j的搜索范围18~142。在基音周期较短时,基音频率较大;对语音信号编码质量影响较大,而基音周期较长时,基音频率较小,对语音信号编码质量较小。所以18~58之间基音周期采用逐点计算搜索,而59~142之间以采用隔点计算,可以减少运算量。

  ②高速率的脉冲激励编码(MP-MLQ)函数Find_Best()中计算预测残差信号

时需要进行卷积码预算,对其进行优化。计算误差信号的均方值

时,式中

先通过加减运算完成,最后做1次增益G的乘法运算即可得到r’[n],这样计算1次残差矢量最多需要60×6=360次加减运算,而优化前的预算量为4×8×(1+2L+58+59)=56640。由此可见优化减少了大量的运算。

  ③基本运算库函数优化。G.723.1代码的基本运算库函数Basop.c中,存在大量信号处理功能的函数,而且占据绝大部分运算,如L_mac()、L_mull()、L_add()、sature()等,所以还需在这几个函数上进行一些优化工作。

  5调试结果分析

  最终在TMS320C5509A上实时实现G.723.1标准。对于1帧语音在高速率6.3kbps模式下,编解码算法占用时间7.42ms,算法复杂度为49.5MIPS;低速率5.3kbps模式下,编解码占用时间5.34ms,算法复杂度35.6MIPS。

  其主要模块代码优化前后占用的时间对比如表1所列。

  整个程序优化后,G.723.1算法占用CPU的资源不到20%,即DSP还有足够的资源对后续的算法进行处理。

  结语

  在工作频率为200MHz的C5509A自制硬件电路上,实现了对G.723.1标准的实时处理。将2块板子串口相连,收端扬声器可以传出发端传来的实时、连续和清晰的语音。最后优化验证以及整体系统的调试结果证明,语音压缩编码方案选用正确,代码优化结果良好,硬件电路设计合理,在频谱带宽、DSP资源有限的条件下,圆满地实现了G.723.1语音压缩编码在基带化系统设计中的。从DSP的CPU负载情况看,G.723.1的代码还可进一步优化。若想进一步降低功耗,可采用全汇编实现。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭