微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于DSP技术的多路语音实时采集与压缩处理系统

基于DSP技术的多路语音实时采集与压缩处理系统

时间:07-24 来源:互联网 点击:
1.5通过IDMA端口装载程序
  
ADSP2181通过两种机制在上电、复位后自动装载DSP程序。两种机制由MMAP和BMODE两个引脚的电平控制。当MMAP=0,BMODE=1时,ADSP2181自动在系统复位时,通过IDMA端口由主机加载DSP程序。主机首先必须装载除程序的第一条指令外其它程序和数据到DSP的片内程序存储器,最后才写入对应程序RAM第一个单元的第一条指令。一当程序存储器的0地址被写入程序代码后,DSP立即从地址0开始执行程序。

2 8路语音信号的数据采集

  
8路语音数字信号通过一2.048 Mb/s的同步串行数据总线传输到DSP。其中每个通道的数据是64 Kbps,每个通道占用2.048 Mb/s的同步串行数据总线的32个时隙中的一个,因此,共占用8个时隙。DSP通过对时隙分配电路的控制给8个通道各分配一个时隙。这样,8个通道的每个通道的数据都在由DSP指定的时隙中传输。

DSP的串口0是一个可编程的最大数据传输速率能达到4.096 Mb/s的同步串行口。DSP串口0的操作在接收到一个WORD或发送完一个WORD的数据时,从DSP内部RAM读、写一个WORD的数据需要占用DSP的一个机器周期(33 ns),在接收和发送过程中不占用DSP的处理时间。由此可见,DSP的串口0具有很强的数据采集与控制能力。

利用串口0的较强的数据采集与控制能力,很容易实现通过2.048 Mb/s的同步串行数据总线对8通道语音数字信号的采集与控制。首先,编程DSP的串口0的同步时钟信号及帧同步信号分别为2 048 kHz和8 kHz,这两个信号控制CODEC的A/D转换速率和位传送速率,同时同步时钟信号还可供CODEC的A/D转换的时钟。再者,编程DSP的串口0工作于多通道模式,打开32个时隙中对应的8通道的时隙接收,使对应的每通道字(WORD)长为8位,选择A-Law压/扩,并打开自动缓冲功能并设置自动缓冲指针。当如上对串口0初始化并打开串口0的接收中断后,串口0将接收到的8 WORD的按A-Law解压的数据存放在自动缓冲指针指向的长度为8的缓冲区中,自动缓冲指针自动回位,同时产生一个硬件接收中断。

3 多路语音实时压缩处理

3.1
 压缩算法
  
考虑到压缩率的要求和实时的要求,在本系统中采用13 Kb/sRPE-LTP-LP编解码算法[GSM],该算法的特点是在模型编码算法中较为简单,语音质量高达到了通信等级,同时具有较高的压缩率。该算法的编码算法包括以下几个主要部分:

3.1.1 预处理部分
  
去除原始语音信号S0(n)中的直流分量得到S0f(n),再通过一阶的FIR滤波器进行高频预加重,得到信号S(n)。

3.1.2 LPC分析
  
按每160个样本点将信号S(n)进行分帧,对每帧数据计算出8个LPC反射系数γ(i),i=0,1,2,…,7;再转换成对数面积比参数LAR(i),i=1,2…7;并对所得的LAR(i)进行量化编码得到LARC。

3.1.3 短时分析滤波
  
短时分析滤波是一个8级格型滤波器,通过短时分析滤波,得到线性预测(LP)余量d(n)。

3.1.4 长时预测
  
利用长时预测综合对LP短时余量信号d(n)处理以进一步的去除冗余度。长时预测是按子帧进行处理的,每一帧分成4个子帧。
3.1.5 规则脉冲编码
  
对经过短时、长时预测后得到的LP余量信号,进行加权滤波、规则脉冲提取和量化编码。

在本系统的DSP上该算法实时实现性能如下:
·码流速率13 Kb/s
·编码运算量 3 MIPS
·解码运算量 0.7 MIPS
·程序量 2 KWORD  
·占用数据RAM 1 KWORD

3.2 多路语音实时压缩处理的软件实现
  
由于实时实现13 Kb/sRPE-LTP-LP编码算法只占用了DSP的3MIPS的运算量,而解码运算量为0.7 MIPS故在本系统的具有33 MIPS的运算速度的DSP上,可软件实时实现多达10通道的13Kb/sRPE-LTP-LP编码算法和1通道的解码算法。同时,还有2MIPS的运算速度用于系统控制与管理。根据本系统的要求,已成功实现了8通道的13Kb/sRPE-LTP-LP编码算法和1通道的解码算法。因此,本系统的DSP在完成要求的多路语音采集与压缩处理任务的条件下,还有一定的处理能力用于系统其它的扩展处理上。本系统的多路语音实时压缩处理的系统软件框图如图2所示。  


 
由图2可以看出,软件设计主要包括4大部分:

·命令解释与控制模块
·13 Kb/sRPE-LTP-LP编解码模块
·多通道语音编解码控制模块  
·接口功能模块

3.2.1 命令解释与控制模块
  
命令解释与控制模块主要是用于解释由PC机通过IDMA口发来的各种命令,如发送或接收编解码数据、设置PC机与DSP的数据传输数据量的大小、查询编解码状态以及启动,停止编解码操作等。该模块不直接与PC机打交道,而是通过接口功能模块,间接实现与主CPU的数据信息交换。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top