保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

多制式语音编码及其DSP实现


信号,因此定义字长为8位;McBSP1收发G.729的码流。G.729分帧编码,帧长10ms,每帧80bit。为了数据能够方便、有效地收,定义串口的字长为16bit,这样,每5个帧同步收全一个G.729帧,共16×5×4(路)=80×4bit。
  
  为了取得数据格式的一致性,方便串口收发码流,对ADPCM和CVSD定义了相同的码流格式,并由McBSP2收发。如图2所示。
  
  32kbpsADPCM每样点用4bit编码,规定其码流为每样点的码字重复2次,即占8bit。4路信号其32bit;16kbps和32kbps的CVSD是每样点2bit和4bit编码,故规定其码流为每比特编码码字分别重复4次和2次,即均占8bit。4路信号也是32bit。
  
  (4)数据流的传输(串口与存储区)
  
  VC5409提供了6个DMA通道,用户可以设置每个DMA通道的源地址、目的地址、一次传输的数据量、同步事件和中断方式等。
  
  表3是本项目中各DMA通道的配置情况。
  
  表3DMA配置
  
  通道比特流源地址目的地址缓冲区(字)中断方式(缓冲区)DMA2G.729a(收)DRR11DM4×5×2全满/半满DMA3G.729a(发)DMDXR114×5×2全满/半满DMA4PCM(收)*1DRR10DM4×1全满*2DRR10DM4×80×2全满/半满DMA5PCM(发)*1DMDXR104×1全满*2DMDXR104×80×2全满/半满
  DM:数据存储区
  
  *1:对ADPCM/CVBSD编码
  
  *2:对G.729a编码
  
  (5)数据传输的控制
  
  如图3所示,串行数据流在McBSP的DR管脚接收,DX管脚发送。数据收发由帧同步信号触发。帧同步由CPLD提供,位时钟由外部晶振提供。
  
  串口与存储区之间的数据交换由CPU或DMA控制器完成。接收寄存器DRR满(发送寄存器DXR空)时,串口向DMA发出同步事件(REVT/XEVT)或向CPU发出中断请求(RINT/XINT),智能DMA或CPU数据传输已准备好。
  
  对PCM和G.729码流,串口(McBSP0/McBSP1)的数据读写为DMA方式。
  
  由于G.729采用分帧编码,一次编解码待处理的数据量较大。为了避免DMA读取数据过程中连续码流溢出,设计缓冲区为双倍大小。这2块缓冲区以乒乓方式工作,即DMA传递其中块缓冲区数据时,另一块缓冲区接收来自串口或CPU的下一组数据。由于VC5409的DMA支持缓冲区全满或半满都产生中断的方式,所以只要将这2块缓冲区设计成连续,就可以方便地实现乒乓工作,而不产生数据溢出。
  
  对ADPCM/CVSD码流,由于每次处理的码流长度较短(32bit),故在中断服务例程中由CPU直接读写串口(McBSP2),而不采取DMA方式。
  
  图3数据流的收发和传输
  
  3软件系统
  
  (1)CVSD算法的修正
  
  CVSD是每样点1bit的编码方式,所以32kbps和16kbps的CVSD输出信号分别由32kHz和16kHz采样的PCU信号编码得到。而实际CVSD编码器的输入总是8kHz的采样信号,为了满足算法要求。对输入PCM码流进行插值滤

《多制式语音编码及其DSP实现(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/174716.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。