聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 周彦明

周彦明

时间:2011-07-13 22:24:44    下载该word文档

EDA课程设计论文

基于DSP语音信号处理

通信与电子工程学院

专业班级 083

学生姓名

指导教师

2011613


介绍一个多路语音实时采集与压缩处理系统。该系统基于PCISA总线结构,最大的特点是通过单片DSP高性能价格比实时地实现了多达10路的语音采集和10路语音实时压缩及一路语音解压处理。该系统已成功应用于某语音记录设备中。

关键词:数据采集数据处理;实时;语音压缩

 

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

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

I

第一章 系统结构与工作原理 1

1.1 系统的主要性能 1

12 ADDA 1

13 DSP最小系统 2

14 DSPDMAISA总线的接口 2

15 通过IDMA端口装载程序 3

第二章 路语音信号的数据采集 4

第三章 多路语音实时压缩处理 5

31 压缩算法 5

311 预处理部分 5

312 LPC分析 5

313 短时分析滤波 5

314 长时预测 5

315 规则脉冲编码 5

3 2 多路语音实时压缩处理的软件实现 6

321 命令解释与控制模块 6

322 13 KbsRPELTPLP编解码模块 17

323 多通道语音编解码控制模块 17

324 接口功能模块 18

结论 19

参考文献 20


第一章 系统结构与工作原理

1.1 系统的主要性能

采集语音信号通道数:

8语音信号带宽:

3003 400 Hz采样速率:

8 000 Hz语音回放通道数:

1每路语音信号压缩后码流:

13 Kbps扩展ISA总线接口
  系统在结构上包括三个主要部分,即8通道AD1通道DA部分,DSP最小系统及DSPDMAISA总线的接口。如图1所示。

12 ADDA

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


13 DSP最小系统

DSP是本系统核心部分,它完成对2048 Mbs的同步串行数据总线的控制,及对高达2048 Mbs串行数据码流的采集、8路输入语音的压缩处理和1路语音的解压缩处理。本系统采用的DSPAnalogDevice公司的定点DSP,即ADSP2181,其主要功能与特点如下:
   1)外接1667 MHz晶振,指令周期为30 ns33 MIPS运算速度,所有指令单周期执行。
   2)提供一个16位的DMAIDMA)口,用于高速存取片内存储器及装载数据和程序。
   3)提供一个8位自举DMABDMA)口,用于从自举程序存储器中装载数据和程序。
   4)程序RAM 24Bit×16 K,数据RAM 16Bit×16 K
   516位字长运算精度。
   6)提供两个双缓冲区的串口,具有硬件Au律编解码和自动缓冲(Autobuffer)能力,其中的串口0具有多通道(Multichannel)的功能。

7)提供6个外部中断、13个可编程IO引脚和JTAG仿真引脚。由于DSP的上述功能和特点,使得DSPADDA电路实现了无缝连接。其中串口0连接8AD2048 Mbs的同步串行数据总线,串口1连接DA CODEC电路。由于DSP具有16 K的程序RAM16 K的数据RAM,所以对于本系统无需外扩存储器,即由单片DSP就构成了本系统所需的最小DSP系统。

14 DSPDMAISA总线的接口

  ADSP2181片内集成了一个直接访问其内部存储器的16DMA端口(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寄存器中后,通过加IDMAIWRIRD信号,实现对片内的指定地址的信息进行读、写操作。每次读、写操作后存储器的地址值将自动的递增,为下一次的读写操作做好准备。
  本系统中通过ISA总线的IO操作及IDMA口对DSP的内部存储器进行访问的。通过硬件译码满足IDMA时序要求的控制信号IALIWRIRD等及DSP的复位信号(RESET)。该接口占用了16IO地址空间。

15 通过IDMA端口装载程序

  ADSP2181通过两种机制在上电、复位后自动装载DSP程序。两种机制由MMAPBMODE两个引脚的电平控制。当MMAP0BMODE1时,ADSP2181自动在系统复位时,通过IDMA端口由主机加载DSP程序。主机首先必须装载除程序的第一条指令外其它程序和数据到DSP的片内程序存储器,最后才写入对应程序RAMDSP立即从地址0开始执行程序。

第二章 路语音信号的数据采集

一个单元的第一条指令。一当程序存储器的0地址被写入程序代码后,8路语音数字信号通过一2048 Mbs的同步串行数据总线传输到DSP。其中每个通道的数据是64 Kbps,每个通道占用2048 Mbs的同步串行数据总线的32个时隙中的一个,因此,共占用8个时隙。DSP通过对时隙分配电路的控制给8个通道各分配一个时隙。这样,8个通道的每个通道的数据都在由DSP指定的时隙中传输。
DSP的串口0是一个可编程的最大数据传输速率能达到4096 Mbs的同步串行口。DSP串口0的操作在接收到一个WORD或发送完一个WORD的数据时,从DSP内部RAM读、写一个WORD的数据需要占用DSP的一个机器周期(33 ns),在接收和发送过程中不占用DSP的处理时间。由此可见,DSP的串口0具有很强的数据采集与控制能力。
利用串口0的较强的数据采集与控制能力,很容易实现通过2048 Mbs的同步串行数据总线对8通道语音数字信号的采集与控制。首先,编程DSP的串口0的同步时钟信号及帧同步信号分别为2 048 kHz8 kHz,这两个信号控制CODECAD转换速率和位传送速率,同时同步时钟信号还可供CODECAD转换的时钟。再者,编程DSP的串口0工作于多通道模式,打开32个时隙中对应的8通道的时隙接收,使对应的每通道字(WORD)长为8位,选择ALaw压/扩,并打开自动缓冲功能并设置自动缓冲指针。当如上对串口0初始化并打开串口0的接收中断后,串口0将接收到的8 WORD的按ALaw解压的数据存放在自动缓冲指针指向的长度为8的缓冲区中,自动缓冲指针自动回位,同时产生一个硬件接收中断。


第三章 多路语音实时压缩处理

31 压缩算法

考虑到压缩率的要求和实时的要求,在本系统中采用13 KbsRPELTPLP编解码算法[GSM],该算法的特点是在模型编码算法中较为简单,语音质量高达到了通信等级,同时具有较高的压缩率。

311 预处理部分

去除原始语音信号S0n)中的直流分量得到S0fn),再通过一阶的FIR滤波器进行高频预加重,得到信号Sn)。

312 LPC分析

按每160个样本点将信号Sn)进行分帧,对每帧数据计算出8LPC反射系数γi),i0127;再转换成对数面积比参数LARi),i127;并对所得的LARi)进行量化编码得到LARC

313 短时分析滤波

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

314 长时预测

利用长时预测综合对LP短时余量信号dn)处理以进一步的去除冗余度。长时预测是按子帧进行处理的,每一帧分成4个子帧。

315 规则脉冲编码

对经过短时、长时预测后得到的LP余量信号,进行加权滤波、规则脉冲提取和量化编码。
在本系统的DSP上该算法实时实现性能如下:
·码流速率13 Kbs   
·编码运算量 3 MIPS       
·解码运算量 07 MIPS   
·程序量 2 KWORD  
·占用数据RAM   1 KWORD

3 2 多路语音实时压缩处理的软件实现

3.2.1命令解释与控制模块

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

由图2可以看出,软件设计主要包括4大部分:
·命令解释与控制模块
·13 KbsRPELTPLP编解码模块            
·多通道语音编解码控制模块  
·接口功能模块

1. 针对上述的问题通常的解决方法有三种

第一种方法是使用嵌入式处理器(比如凌阳SPCE061A芯片)构成嵌入式语音系统实现语音处理压缩功能。该方法设计简单,价格便宜,使用方便灵活。但语音处理能力有限。只有在数据量不大、处理系统不繁忙的情况下,这种方法才有效。

第二种方法是使用FPGA/CPLD构成片上系统实现实时语音压缩处理。该方法开发周期短,利用重配置可以减少硬件的开销。但在比较低的取样速率时和有很高复杂度的软件问题的情况下,FPGA实现很困难。

第三种方法是使用通用数字信号处理器(DSP)强大的数据处理能力,由于DSP采用内部多总线结构,使数据的存储和指令的执行更加快捷。最重要的一点是,DSP具有快速的指令周期,如TMS320系列己经从第一代的200ns降低到现在的5ns(1600MIPS)以下,如此高的运算速度使其可以满足许多实时处理的需要。

2.实时语音压缩的原理

在电话通信中,语音信号的编码方式一般为PCMPulse Code Modulation)编码。由于需要采集、存储、传输和处理的音频数据量极大,只有进行压缩后才能正常进行传输和存储。目前,用于语音压缩编码的算法有ADPCMCELPRPE—LTPLPCMBEPW1MELP等。其中最常用的是u/A律压缩解压。

 

      u/A律压缩解压编码是国际电报电话协会(CCITT)最早推出的G711语音压缩解压编码的一种格式的主要内容。其中欧洲和中国等国家采用A律压缩解压编码,美国和日本采用u律压缩解压编码。现在介绍A律的资料较多,所以本实例着重介绍u律压缩解压

 所谓u律压缩就是压缩器的压缩特性具有如下关系的压缩律:

 уln(1+ux)/ ln(1+u)   0≤x≤1

式中 у——归一化的压缩器输出电压,

即 у=压缩器输出电压/压缩器可能的最大输出电压

  x——归一化的压缩器输出电压,

即 x=压缩器输出电压/压缩器可能的最大输出电压

  u——压扩参数,表示压缩的程度。

 在使用u律的处理过程为:压缩和解压,压缩是指在发送端对输入信号进行压缩处理,再均匀量化,相当于非均匀量化;解压是在接收端进行相应的解压处理,以恢复原始信号。

1DSP硬件实现数据压缩解压的简单流程。

3 数据压缩解压流程

 

      经过压缩的采样信号,按8位二进制编码,编码表如下:


      8位码有三部分组成:极性码(0:负极性信号;1:正极性信号)、段落码、电平码。

U率解压编码表与编码表左右相反。U律编码= 极性码(musign)+段落码(muchord)+电平码(mustep),算法如下:

  muchord = (19- T|EXP)<<4 = 190 - (T|EXP)*16 + 10H

    musign = (AH * (-1)) << 7 = (AH * FFFFH)*128 = AH * (FFFFH * 128) = AH * (FFFFH << 7) = AH * FF80H

mustep = (((|int| + 33) << (T|EXP)) << -26 ) -10H

3.实时语音压缩的硬件部分设计

     实时语音压缩的硬件电路框图如图1所示。本系统实现的是ITU-TG711国际标准建议muPCM的语音处理过程。通过TCL320AD50对话筒输入或声卡输出的语音进行压缩,录入的数据存储在数据空间0x2000~0xa000

4、实时语音压缩的硬件电路框图

 

4.实时语音压缩的软件部分设计

一旦完成了正确的硬件连接,接下来就可以进行软件编程调试了。要完成的工作包括:    
    1TMS320VC5416串口的初始化。首先将DSP串口1复位,再对串口116个寄存器进行编程,使DSP串口工作在以下状态:以SPI模式运行,每帧一段,每段一个字,每字16位,采样率发生器由DSP内部产生,帧同步脉冲低电平有效,并且帧同步信号和移位时钟信号由外部产生。
   2AD50初始化。该初始化操作过程包括通过TMS320VC5416的同步串口发送两串16位数字信息到AD50。第一串为0000 0000 0000 0001B,最低有效位(bits0)说明下一个要传输的数据字属于二次通信。第二个数据值用来对AD504个数据寄存器的某一个进行配置。Bits1511位为0Bits108位为所选寄存器地址值,Bits70位为所选中寄存器的编程值。4个用户可编程寄存器的描述如下:R1中包含模拟输入通道选择,硬件 / 软件编程方式选择;R2进行单机 / 从机工作和电话模式选择;R3控制带从机个数选择;R4用来设置模拟信号可编程放大增益和A/DD/A转换频率。其它两个寄存器R5R6是厂家留着测试用的,用户不可以对其编程。我们在以下例程中对4个可编程寄存器编程,使AD50C工作在以下状态:选择INP/INM为工作模拟输入,15+1ADC15+1DAC模式,不带从机,采样频率为8KHz,模拟信号输入和输出放大增益均为0dB
    3)用户代码的编写。完成对音频信号采集

3、实时语音压缩的软件电路框图

function x = ista(wave, fs, window, start ,lagstep)

%wave 为输入语音, 先对其进行预处理。

对语音进行加窗处理。

Win Size= length ( window);

base= wave( start : start+ winSize-1) . *window

%计算短时自相关函数:

lagk

n = 1;

fork= 1:lagstep: win Size

x ( n ) = ( sum( base. * ( wave( start+ k: start + k + win Size-1) . * window) ) ) ;

n = n + 1;

end

x =normalise( x) ;

5 示出了语音自相关函数实验, 利用菜单¹加载声音文件( 如图1 所示) , 点击信号面板中任意点可显示加载语音的波形, 同时会在信号面板中出现光标, 可以通过移动光标来选择不同段的语音¼, 同时可以控制对语音的放大和缩小显示。移动左边的光标可刷新自相关函数面板并显示新选择语音的自相关函数, 同时在相应的基音周期面板中显示估计出来的基音周期»

其运行程序如下:

function [ IT L, ITU, IZCT , energy, zc, N1, N2] = epd Stats

( signal, fs )

win Size Ms= 10;   %确定加窗函数;

win Shift Ms= 10;

silence End Ms= 100;

backoff Ms= 250;

win Size= millitosamples ( win Size Ms , fs ) ;

win Shift= millitosamples( win Shift Ms , fs ) ;

silence End= millitosamples(silence End Ms , fs ) ;

my window= window( winSize, 'hamming') ;

signed Signal= sgn( signal ) ;

j= 1;   %计算语音的短时能量和过零率。

for i= 1: win Shift : length( signal ) win Size

energy ( j ) = ( sum ( ( abs ( signal ( i: i + win Size - 1 ) ) ). *

my window) ) ; %/win Size;

zc ( j ) = sum ( abs ( signed Signal ( i + 1: i + win Size ) -

signed Signal (i : i+ win Size- 1) ) );

 j= j+ 1;

end

silence Range= 1: length( 1: win Shift : silece End- win Size IF

= ( ( ( 25* win Size Ms) / 10) / 10000) * fs; %确定ZS。对采样率

 为10KHz 的语音若10ms 为一帧时, ZS 的典型值为25

IZC= mean ( zc ( silence Range) ) ;

zcstd = std( zc( silence Range) );

IZCT = min( IF, IZC+ 2* zcstd) ;

IMX= max( energy ) ; %确定能量阈值ML MH

IMN= mean( energy (silenceRange) ) ;

I1= 0. 03* ( IMX- IMN) + IMN;

I2= 4* IMN;

IT L= min ( I1, I2) ;

ITU= 5* IT L;

N1= 0;

N2= 0;

[ N1, N2] = get End Points( IT L, ITU , IZCT , energy, zc)

duration = length ( energy) ;

backoff Length = length ( 1: win Shift : millitosamples

( back off Ms , fs ) win Size) ;

done= 0; %进行端点检测, 首先估计起点。

form= 1: duration

 if and( energy(m) > = IT L, done)

 for i= m: duration

 if energy( i) < ITL

 break

 else

 if energy( i) > = ITU

 if done

 N1= i - (i= = m) ;

 done= 1;

  end

  break

  end

  end

  end

  end

end

start ID= max( N1- back off Length , 1) ;

end ID= N1; M1= s um( zc( start ID: end ID) > = IZCT ) ;

if M1> = 3

 for i= start ID: end ID

  if zc( i) > = IZCT

   N1= i;

   break ;

  end

 end

end

done= 0;  %进行端点检测, 估计终点。

form= duration : - 1: 1

if and( energy(m) > = IT L, done)

for i= m: - 1: 1

if energy( i) < ITL

break ;

else

if energy( i) > = ITU

if don e

N2= i+ ( i= = m) ;

done= 1;

end

break

end

end

end

end

end

start ID= N2;

end ID= min ( N2+ backoff Length, length( zc) ) ;

M2= s um( zc( start ID: end ID) > = IZCT ) ;

if M2> = 3

for i= max( [ 1 start ID] ) : end ID

%max added by MPC to preventneg indices

if zc( i) > = IZCT

N2= i;

break ;

end

end

end

warp Ratio= round( length( signal ) / length ( energy) ) ;

N1= N1* warp Ratio;

N2= N2* warp Ratio;\

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

322 13 KbsRPELTPLP编解码模块

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

323 多通道语音编解码控制模块

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

324 接口功能模块

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

结论

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


参考文献

[1]戴礼荣,王仁华.高速DSP技术及其在通信中的应用.合肥工业大学学报,1997

[2]王仁华,戴礼荣.当代DSP及其在现代通信应用中面临的挑战.中兴新通信,1998

[3]陈永彬,王仁华.语音信号处理.合肥:中国科学技术  大学出版社,1990

免费下载 Word文档免费下载: 周彦明

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服