《应用科技》2005年第11期摘录:第11期陈立伟,等:基于TMS
-
如发现有乱码,请点击下面链接浏览原文
正文摘录:
第11期陈立伟,等:基于TMS320V(;5421的多制式语音编码的实现点2bit和4bit编码,故规定其码流为每比特编码码字分别重复4次和2次,即均占8bit.4路信号也是32bit.3.4数据流的传输(串口与存储区)V(:5421提供了6个DMA通道,用户可以设置每个DMA通道的源地址、目的地址、一次传输的数据量、同步事件和中断方式等.3.5数据传输的控制串行数据流在McBSP’的DR管脚接收,Dx管脚发送.数据收发由帧同步信号触发.帧同步由CPIjD提供,位时钟由外部晶振提供.串口与存储区之问的数据交换由CPu或DMA控制器完成.接收寄存器DRR满(发送寄存器DxR空)时,串口向DMA发出同步事件(REVT/xEVq、)或向(:PI』发出中断请求(RINT/xINT),智能DMA或(:PU数据传输已准备好.对PCM和G.’729码流,串口(.McBSP0/:McBSF’1)的数据读写为DMA方式.由于G.’729采用分帧编码,一次编解码待处理的数据量较大.为了避免DMA读取数据过程中连续码流溢出,设计缓冲区为双倍大小.这两块缓冲区以轮流方式工作,即DMA传递其中块缓冲区数据时,另一块缓冲区接收来自串口或CPU的下一组数据.由于VC54.16的DMA支持缓冲区全满或半满都产生中断的方式,所以只要将这2块缓冲区设计成连续,就可以方便地实现轮流工作,而不产生数据溢出.对ADPcM/cVS[)码流,由于每次处理的码流长度较短(32bit),故在中断服务例程中由CPu直接读写串口(McBSP2),而不采取DMA方式.4软件系统4.1CVSD算法的修正cVSI)是每样点1bit的编码方式,所以32KB/s和16KB/s的cVSI)输出信号分别由32kHz和16kHz采样的PCu信号编码得到.而实际cVS[)编码器的输入总是8kHz的采样信号,为了满足算法要求,对输入PcM码流进行插值滤波.根据插值原理,可以选择低通滤波器无失真地恢复原始信号.为了取得信号质量和运算量的折中,设计了5阶的椭圆型IIR滤波器.另外,在对编解码后的信号进行频谱测试时,发现在3kHz处,信号的幅度超出要求3dB左右.为此在编码端加入了谱调整的模块,使3kHz处频谱下降3dB,作为补偿.日f。):唑堕翌』№堕堕三、’1.00000—0.66797z“日㈤:叫盟旦塑l¨7掣、’1.00000—0.67639z“4.2存储区的优化1)由于使用DP寻址,变量名仅指示偏移量;而4路信号分时处理,各路所用变量与程序代码相同,所以可以使用不同页上同名变量,在不混淆各路信号数据存储区的前提下,简化程序存储区大小.对于ADPcM程序,编解码器的有状态变量各占25字,编解码器都使用的变量占14字.鉴于DP一页有128字,所以可以考虑前两路编解码器变量共用一页存储区;后两路编解码器变量共用一页存储区.这样,两路编解码器的存储量有25×2×2+14=114字<128字,可以存储在同一页上.2)对cVS[)和ADPcM算法,由于输入输出信号不分帧(逐样点处理),而码流格式又取得了一致,所以可以共享输入输出存储单元.5实验结果各算法的复杂度和存储量如表2所示.表2各算法的复杂度和存储量总的存储量=(8.32+18.53+1.54+0.52+2.048+0.28)=31.24千字;.算法复杂度=max(60,12,15.5)=60MIPS.从表2可以看出,一片Vc5421上的硬件资源可以满足算法要求.实际系统的各算法性能也通过了相关的标准测试.该方法以较少的运算量及较少的硬件资源获得了较高的语音编码质量.参考文献:[1]ARMEINzR.RapiddeVelopmentofareal—timespeedlco—deronaTMS320(:54xDSP[J].Mt’croprocessor’sandMicr—osystems,2002(2):1045—1048.[2]李刚.数字信号微处理器的原理及其开发应用[M].天津:天津大学出版社,2000.[责任编辑:李雪莲]
阅读此文(图):
点击此处在线翻阅