在语音的数字通信和数字存储等应用领域,需要对多路语音信号进行实时采集和压缩处理[1]。如某语音记录设备,需要对8路语音信号进行实时采集和压缩处理,而且要求对采集到的语音数据的压缩率尽量高。一般地,当要求语音数据压缩后的码流在10 Kbps左右时,需要采用语音的模型编码技术。而模型编码算法的运算量很大。因此,如一方面要求对多达8路的语音信号进行实时采集,另一方面又要求对各路的语音信号进行较高压缩率的实时压缩处理,对数据采集和处理系统提出了更高的要求。

  由于VLSI技术的迅速发展,DSP(Digitalsig-nal processor数字信号处理器)的性能价格比得到了很大的提高[2],使得利用DSP的高速数据管理能力和处理能力来实现高速数据采集和处理成为实时数据采集和处理的一个新的发展方向。基于此,本文介绍的多路语音实时采集与压缩处理系统采用了高速DSP技术。

1 系统结构与工作原理
1.1 系统主要性能指标
   采集语音信号通道数:8

语音信号带宽:300~3 400 Hz

采样速率:8 000 Hz

语音回放通道数:1
    每路语音信号压缩后码流:13 Kbps

扩展ISA总线接口
  系统在结构上包括三个主要部分,即8通道A/D和1通道D/A部分,DSP最小系统及DSP的DMA与ISA总线的接口。如图1所示。

1.2 A/D及D/A
  该部分由9片A-Law CODEC芯片TP3057组成。其中8片构成8通道A/D转换器,另一片构成D/A转换器,直接由DSP控制。该芯片采样数据是8 000×8 bit A-Law PCM数据,每通道数字信号的输入和输出是64 KbpsPCM同步串行码流。数据传输码流速率是2.048 Mb/s。8片A-Law CODEC均挂接在同一2.048 Mb/s的同步串行数据总线上,2.048 Mb/s的数据分为32个时隙,每个通道的64Kbps数据的传输占用32个时隙中的一个。具体占用那一个时隙由时隙分配控制电路确定。

1.3 DSP最小系统
  DSP是本系统核心部分,它完成对2.048 Mb/s的同步串行数据总线的控制,及对高达2.048 Mb/s串行数据码流的采集、8路输入语音的压缩处理和1路语音的解压缩处理。本系统采用的DSP是AnalogDevice公司的定点DSP,即ADSP-2181,其主要功能与特点如下:
  (1)外接16.67 MHz晶振,指令周期为30 ns,33 MIPS运算速度,所有指令单周期执行。
  (2)提供一个16位的DMA(IDMA)口,用于高速存取片内存储器及装载数据和程序。
  (3)提供一个8位自举DMA(BDMA)口,用于从自举程序存储器中装载数据和程序。
  (4)程序RAM 24Bit×16 K,数据RAM 16Bit×16 K。
    (5)16位字长运算精度。
  (6)提供两个双缓冲区的串口,具有硬件A/u律编解码和自动缓冲(Auto-buffer)能力,其中的串口0具有多通道(Multichannel)的功能。
  (7)提供6个外部中断、13个可编程I/O引脚和JTAG仿真引脚。

  由于DSP的上述功能和特点,使得DSP与A/D及D/A电路实现了无缝连接。其中串口0连接8路A/D的2.048 Mb/s的同步串行数据总线,串口1连接D/A CODEC电路。由于DSP具有16 K的程序RAM和16 K的数据RAM,所以对于本系统无需外扩存储器,即由单片DSP就构成了本系统所需的最小DSP系统。

1.4 DSP的DMA与ISA总线的接口
  ADSP2181片内集成了一个直接访问其内部存储器的16位DMA端口(IDMA PORT)。主机通过此接口可以直接访问ADSP2181片内的程序和数据存储器的任一单元。因而主机可以通过此端口对DSP加载程序、下载程序、读取片内执行的状态、实现与DSP的数据传输等操作。IDMA端口总线的16位数据和地址是复用的。由于DSP的程序存储器是24位的,而DMA的数据总线宽度是16位,故对程序存储器操作时,分为两次,先对高16位操作,然后接着对最低8位操作。通过IDMA端口的存、取操作分如下两步进行:

·IDMA地址锁定操作
  通过IDMA的地址锁存信号(IAL),将14比特的地址信息和1比特的存储器类型信息通过IDMA总线,在地址锁存信号(IAL)的降沿时被锁入到DSP片内的IDMA地址锁存器。14比特地址信息确定了ADSP片内的存储器地址,而存储器类型位用来区分操作是对程序存储器或数据存储器。

·数据存、取操作
  当地址信息被放入到IDMAA寄存器中后,通过加IDMA的IWR,IRD信号,实现对片内的指定地址的信息进行读、写操作。每次读、写操作后存储器的地址值将自动的递增,为下一次的读写操作做好准备。

  本系统中通过ISA总线的I/O操作及IDMA口对DSP的内部存储器进行访问的。通过硬件译码满足IDMA时序要求的控制信号IAL,IWR,IRD等及DSP的复位信号(RESET)。该接口占用了16个I/O地址空间。

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的数据信息交换。

3.2.2 13 Kb/sRPE-LTP-LP编解码模块
  该模块是一个单通道13 Kb/sRPE-LTP-LP语音编解码模块。它是本系统的语音压缩处理的核心部分,为使该模块具有通用性,为该模块单独形成一个ADSP-2100系列语言库,可与任何其它ADSP-2100系列模块相连。

3.2.3 多通道语音编解码控制模块
  该模块基于单通道13 Kb/sRPE-LTP-LP语音编解码模块,实现多通道语音编码和单通道语音解码。对于多通道语音编码,一方面,当某通道采集到一帧160点的语音数据时,调用语音编码模块对该帧进行编码,并将编码后的语音数据按约定的格式存放到各通道的编码数据缓冲区中;另一方面,由于语音的模型编码是前后帧相关联的,所以该模块还必须将当前通道的当前帧编码后的必须保存的数据和状态进行保存,以及在调用语音编码模块对当前帧进行编码前,恢复上一帧编码后的数据和状态。对于单通道语音解码,则只需在接收到由PC机传送来的压缩数据后,调用解码模块,然后将解码后的160点语音数据送到D/A的串口1发送缓冲区。

3.2.4 接口功能模块
  该模块实现DSP与PC机的数据的实际交换工作,同时也实现DSP的数据采集与控制。由于它是软件设计中唯一与硬件相关的模块,故该模块在设计上尽量与其它模块独立。这样,当硬件有所改变时,可不必改变其他模块。

4 结 
  本系统由于采用了DSP技术,使得多路语音的采集和压缩处理得以实时实现。同时还使系统具有较高的可编程性能。基于该系统的某语音记录仪已经通过省、部级的鉴定。本系统的成功设计说明数据采集与处理系统采用基于DSP技术,将大大提高系统的高速数据的实时采集和实时处理的能力。而且,当今的DSP的处理速度和数据管理能力还在迅速地提高,其价格也降到能应用于一般的应用场合。如ADSP-21061,40 MIPS的运算速度,10个DMA控制器,40位浮点运算精度,数据管理能力可达240Mbytes/s,其售价也只有30~40美元。因此,开发和研究基于DSP技术的数据采集与处理系统具有重要的实际意义。

转载于:https://www.cnblogs.com/chenhu/archive/2010/12/25/1916638.html

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

  1. 高速ad指标分析 matlab,高速ADC的动态性能参数和基于DSP技术的测试方法研究

    高速ADC是信号处理机的不可欠缺的组成部分,其性能的好坏对信号处理系统的整体性能也至关重要.通常ADC的技术参数是由生产厂商提供,可作为设计的重要依据,但是在电路板上形成的ADC模块的性能如何,还与A ...

  2. 基于RFID技术的酒类资产管理防伪溯源防串货系统--新导智能

    一.背景--目前酒厂生产中的问题 现今社会,假冒商品已成苏州新导为世界性难题,在利益的驱使下,市场上假冒伪劣产品日益横行,特别是对于酒类商品,已成苏州新导为不法分子假冒伪劣制造的重点之一,给人们的生活 ...

  3. 交通诱导信息发布系统服务器,基于TTS技术的交通语音诱导信息发布系统设计

    摘要: 随着高速公路建设投资的加大和交通拥挤程度的增加,人们对方便快捷的获取高速公路交通信息和高速公路交通部门政务信息需求的要求越来越紧迫,提高交通诱导信息的发布质量已成为时势之需.电子,计算机技术的 ...

  4. 智慧养老之基于RFID技术下的智慧养老解决方案-养老院智能看护系统-新导智能

    目前,随着我国进入快节奏社会并且生活条件逐步提高,福利医疗事业在我国将会进入高速发展期,更多的人会选择把家里的病人送到养老院,让自己的亲人能够接受更好的医疗.随之而来的是病人的安全问题,亲人会担心病人 ...

  5. django language_「基于Python技术的智慧中医商业项目」Django问诊系统篇-1.系统配置...

    如果你对中医感兴趣欢迎留言讨论,觉得我的内容对你有帮助的话,能够请我喝一杯沪上阿姨不禁万分感谢. 内容简介 Django搭建康养智慧中医问诊系统配置内容,根据实际情况和具体需求进行修改该即可. 创建项 ...

  6. 多路视频数据实时采集系统设计与实现

    多路视频数据实时采集系统设计与实现 常永亮   王霖萱  常馨蓉 摘要 面对越来越多的实时视频采集.播放的应用,如何能更加方便的操控视频采集,保证流畅的播放效果,成为近几年实时媒体流的一个重要研究方向 ...

  7. java录音程序_record类完成语音信号采集的任务_Android实现语音数据实时采集、播放...

    最近做的项目是和语音实时采集并发送,对方实时接收并播放相关,下面记录下实现的核心代码. 很多Android开发者应该知道android有个MediaRecorder对象和MediaPlayer对象,用 ...

  8. 数字信号处理课程设计:语音信号采集与滤波处理系统设计与实现 (MATLAB)——(一)

    语音信号采集与滤波处理系统设计与实现 任务要求 利用MATLAB 设计实现语音信号采集处理软件,通过MIC 实时录制并分析语音信号,包括实时显示信号波形.时域统计特征值.计算信号的频谱等: 采集并录制 ...

  9. 基于物联网技术的智慧病房管理系统(一)—— 系统配置

    基于物联网技术的智慧病房管理系统(一)-- 系统分析与配置 系统要求 设计一个基于物联网技术的智慧病房管理系统.假设医院住院部的一层病房(走廊两边病房平行分布),病房数量最多60间,每间病房3个床位, ...

最新文章

  1. linux命令fdisk
  2. android open source
  3. mysql 导入gtid_开启gtid导入报错
  4. BZOJ4627 前缀和 + 权值线段树
  5. python中matplotlib 的简单使用
  6. [每日一题] 11gOCP 1z0-053 :2013-10-1 persistent lightweight jobs...........................11
  7. T-Sql(二)事务(Transaction)
  8. 在成长中遇到的挫折事件对你的影响_孩子一遇到困难就退缩?3个方法培养孩子逆商,提升抗挫折能力...
  9. 华为OJ编程 动态规划类
  10. opencv:image-imageData+image-widthStep*i)[j]表达式含义
  11. 超星高级语言程序设计实验作业 (实验02 分支与循环程序设计)(一)
  12. DSP学习(3)—— DSP调试与追踪
  13. 深度学习在知识图谱的应用
  14. 【yolov5系列】 为yolov5网络增加亮度数据增强方法
  15. IDEA 使用Git回滚到上一个版本
  16. 精度高0-10V转0-100MA/200MA/300MA/线性驱动隔离器
  17. PMP超详细的报名流程,手把手教你报名(含备考资源)
  18. 人工智能如何影响社会经济
  19. The Balance(详细讲解)
  20. 【量化笔记】Markowitz模型的python实现

热门文章

  1. python批量ping50台服务器_使用python编写批量ping主机脚本
  2. 网工必看,万字网络排错笔记
  3. 一图看懂windows11新功能
  4. Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外
  5. mysql8.0.13安装版_windows下mysql 8.0.13 解压版安装图文教程
  6. nodejs 服务器怎么导入qs_nodejs基本原理总结
  7. linux 7za下载,Linux安装7za
  8. 百度小程序源码php_dedecms织梦小程序插件万能api接口插件(支持百度微信小程序)...
  9. 【Qt】sqlite数据库使用
  10. TikTok信息流广告怎么做才有效果?我从100个营销短视频中总结了这些方法