语音信号压缩μ率.docx

上传人:b****2 文档编号:17585451 上传时间:2023-07-26 格式:DOCX 页数:23 大小:209.66KB
下载 相关 举报
语音信号压缩μ率.docx_第1页
第1页 / 共23页
语音信号压缩μ率.docx_第2页
第2页 / 共23页
语音信号压缩μ率.docx_第3页
第3页 / 共23页
语音信号压缩μ率.docx_第4页
第4页 / 共23页
语音信号压缩μ率.docx_第5页
第5页 / 共23页
语音信号压缩μ率.docx_第6页
第6页 / 共23页
语音信号压缩μ率.docx_第7页
第7页 / 共23页
语音信号压缩μ率.docx_第8页
第8页 / 共23页
语音信号压缩μ率.docx_第9页
第9页 / 共23页
语音信号压缩μ率.docx_第10页
第10页 / 共23页
语音信号压缩μ率.docx_第11页
第11页 / 共23页
语音信号压缩μ率.docx_第12页
第12页 / 共23页
语音信号压缩μ率.docx_第13页
第13页 / 共23页
语音信号压缩μ率.docx_第14页
第14页 / 共23页
语音信号压缩μ率.docx_第15页
第15页 / 共23页
语音信号压缩μ率.docx_第16页
第16页 / 共23页
语音信号压缩μ率.docx_第17页
第17页 / 共23页
语音信号压缩μ率.docx_第18页
第18页 / 共23页
语音信号压缩μ率.docx_第19页
第19页 / 共23页
语音信号压缩μ率.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

语音信号压缩μ率.docx

《语音信号压缩μ率.docx》由会员分享,可在线阅读,更多相关《语音信号压缩μ率.docx(23页珍藏版)》请在冰点文库上搜索。

语音信号压缩μ率.docx

语音信号压缩μ率

1语音信号压缩(μ律)原理

1.1语音信号编码

概念:

语音编码一般分为两类:

一类是波形编码,一类是被称为“声码器技术”的编码。

PCM编码即脉冲编码调制。

波形编码的最简单形式就是脉冲编码调制(Pulsecodemodulation),这种方式将语音变换成与其幅度成正比的二进制序列,而二进制数值往往采用脉冲表示,并用脉冲对采样幅度进行编码,所以叫做脉冲编码调制。

脉冲编码调制没有考虑语音的性质,所以信号没有得到压缩。

量化:

脉冲编码调制用同等的量化级数进行量化,即采用均匀量化,而均匀量化是基本的量化方式。

但是均匀量化有缺点,在信号动态范围较大而方差较小的时候,其信噪比会下降。

国际上有两种非均匀量化的方法:

A律和μ律,μ律是最常用的一种。

在美国,7位μ律是长途电话质量的标准。

而我国采用的是A律压缩,而且有标准的A律PCM编码芯片。

DPCM&ADPCM:

降低传输比特率的方法之一是减少编码的信息量,这要消除语音信号中的冗余度。

相邻的语音样本之间存在明显的相关性,因此对相邻样本间的差信号进行编码,便可使信息量得到压缩。

因为差分信号比原语音信号的动态范围和平均能量都小。

这种编码叫DifferentialPCM,简称DPCM,即差分脉冲编码调制。

ADPCM即自适应差分脉冲编码调制,是包括短时预测的编码系统。

CCITT(国际电报电话咨询委员会)在1984年提出的32kbit/s的编码器建议就是采用ADPCM作为长途传输中的国际通用语音编码方案。

这种ADPCM编码方案达到64kbit/sPCM的语音传输质量,并具有很好的抗误码性能。

 

1.2压缩算法及压缩技术介绍

1.压缩算法的介绍

用途

抽样频率(kHz)

压缩标准或系统

压缩技术

码率(kbit/s)

长途电话

8

G.711

G.726

G.728

PCM

ADPCM

LD-CELP

64

40/32/24/16

16

移动电话

8

GSM

IS54/IS95

G.729

RPE/LTP

VSELP/QSELP

CS-ACELP

13.2

16/8/4/2/1

8

ISDN,会议电视

1

G.722

SB-ADPCM

64/56/48

VCD

32/48

ISO/IEC10149

MPEG1

192/128/96

表1.1 压缩算法表

2.压缩技术的介绍

波形编码:

直接对语音时域或频域波形样值进行编码。

PCM,ADPCM,SBC,ATC

参数编码:

对人类语音的生成模型的参数进行编码。

混合编码:

结合波形编码和参数编码。

MPLPC,RPE/LTP,CELP,VSELP

可变速率编码:

G.727嵌入式编码

无失真编码。

霍夫曼编码

ADPCM工作原理

自适应地改变量化幅值

确定好量化幅度的最大值和最小值

1.3语音信号的μ律压缩

1.3.1量化方法概述

  所谓量化就是把抽样信号的幅度离散化的过程。

根据量化过程中量化器的输入与输出的关系,可以有均匀量化和非均匀量化两种方式。

均匀量化时,由于对编码范围内小信号或大信号都采用等量化级进行量化,因此小信号的“信号与量化噪声比”小,而大信号的“信号与量化噪声比”大,这对小信号来说是不利的。

为了提高小信号的信噪比,可以将量化级再细分些,这时大信号的信噪比也同样提高,但这样做的结果使数码率也随之提高,将要求用频带更宽的信道来传输。

采用压缩的量化特性是改善小信号信噪比的一种有效方法。

它的基本思想是在均匀量化前先让信号经过一次处理,对大信号进行压缩而对小信号进行较大的放大。

由于小信号的幅度得到较大的放大,从而使小信号的信噪比大为改善。

这一处理过程通常简称为“压缩量化”,它是用压缩器来完成的。

压缩量化的实质是“压大补小”,使小信号在整个动态范围内的信噪比基本一致。

在系统中与压缩器对应的有扩张器,二者的特性恰好相反。

目前常用的压扩方法是对数型的A压缩律和μ压缩律,其中μ压缩律公式为

               

        (1.1)

图1.1μ律压缩特性曲线

其中x为归一化的量化器输入,y为归一化的量化器输出。

常数μ愈大,则小信号的压扩效益愈高,目前多采用μ=255。

μ律压缩特性曲线如图1.1所示。

 

1.3.2μ255/15折线压缩律

  μ律压缩曲线是连续曲线。

μ值不同,压缩特性也不同。

要设计电路来实现这样的函数是相当复杂的;而且采用非线性量化法时,要用压缩规律所规定的判定值直接和信号相比较,以确定信号所在量化级并直接作相应编码,那是不容易的。

为了使所需数字电路容易实现,就要求相邻的判定值或量化间隔能成简单的整数比(通常为2倍比),而这一要求用平滑和连续变化的非均匀量化律是不容易满足的。

但如果采用若干段折线组成的非均匀量化压缩律就很容易实现。

因此,就发展了用折线逼近μ律和A律非均匀量化折线压缩方式。

255/15律折线压缩方式是将μ律曲线分16段做弦,当相邻折线段的段距比值为2时,可以很好地逼近μ=255的μ律压缩曲线的特性。

实际上由于在原点两侧的第一条折线都通过原点,斜率相同而对称,所以合成了一条折线,因而实际上总共只有15条折线。

因此,这种折线压缩律就称为μ255/15折线压缩律,如图2所示:

图1.2 μ255/15折线压缩特性

1.3.3μ律压缩编码

一个8比特u=255的码子有一个符号比特、一个3比特段代码和一个4比特的电平量化值串联而成。

在发送以前,所有比特是取反的,所以一个正书将有带“1”的符号比特。

在决定输入是属于哪一段以前,原始整数的符号先不考虑,一个偏移量33加到该整数的绝对值上。

偏移量限制最大的输入为8159,并减小最小步长至2/8159。

偏移量简化了每一段两个短点的计算。

寻找所在段代码是借助于检测偏移输入模值的最有效“1”位置,而量化值是由跟在它后边的4个比特组成。

从线性到u律压缩转换如下表所说明,压缩后的码子组成:

比特0~3表示量化值,比特4~6表示段值,压缩后的码子符号放在比特7。

语音采集和播放芯片采用的是TI公司生产的TLV320AIC23B,TLV320AIC23B的模数转换(ADC)和数模转换(DAC)部件高度集成在芯片内部,芯片采用8k采样率,单声道模拟信号输入,双声道输出。

TLV320AIC23具有可编程特性,DSP可通过控制接口来编辑该器件的控制寄存器,而且能够编译SPI,I2C两种规格的接口。

DSP采用I2C口对TLV320AIC23的寄存器进行设置。

当MODE=0时,为I2C规格的接口,DSP采用主发送模式,通过I2C口对地址为0000000~0001111的11个寄存器进行初始化。

I2C模式下,数据是分为3个8b写入的。

而TLV320AIC23有7位地址和9位数据,也就是说,需要把数据项上面的最高位补充到第二个8B中的最后一位。

MCBSP串口通过6个引脚CLKX,CLKR,FSX,FSR,DR和CX与TLV320AIC23相连。

数据经MCBSP串口与外设的通信通过DR和DX引脚传输,控制同步信号则由CLKX,CLKR,FSX,FSR四个引脚实现。

将MCBSP串口设置为DSPMode模式,然后使串口的接收器和发送器同步,并且由TLV320AIC23的帧同步信号LRCIN,LR2COUT启动串口传输,同时将发送接收的数据字长设定为32b(左声道16b,右声道16b)单帧模式。

表1.2 μ律二进制编码表

压缩前的码子

丢弃的比特数

压缩后的码子

偏置的输入(模值)

段值、量化值

比特:

1211109876543210

比特:

6543210

00000001abcdx

1

000abcd

0000001abcdxx

2

001abcd

000001abcdxxx

3

010abcd

00001abcdxxxx

4

011abcd

0001abcdxxxxx

5

100abcd

001abcdxxxxxx

6

101abcd

01abcdxxxxxxx

7

110abcd

1abcdxxxxxxxx

8

111abcd

2TMS320C5X的硬件结构

2.1C55XCPU

C55X有1条32位的程序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和1条24位的程序地址总线及5条23位地址总线,这些总线分别与CPU相连。

总线通过存储单元接口(M)与外部程序总线和数据总线相连,实现CPU对外部存储器的访问。

这种并行的多总线结构,使CPU能在一个CPU周期内完成1次32位程序代码读、3次16位数据读和两次16位数据写。

C55X根据功能的不同将CPU分为4个单元,指令缓冲单元(I)、程序流程单元(P)、地址流程单元(A)、和数据计算单元(D)。

读程序地址总线(PDA)上传送24位的程序代码地址,由读程序总线(PB)将32位的程序代码送入指令缓冲单元进行译码[1]。

2.2指令缓冲单元(I)

C55X的指令缓冲单元有指令缓冲队列IBQ和指令译码器组成。

在每个CPU周期内,I单元将从程序数据接收的4B程序代码放入指令缓冲队列,指令译码器从队列中取6B程序代码,根据指令的长度可对8位、16位、24位、32位和48位的变长指令进行译码,然后把译码数据送入P单元、A单元和D单元去执行。

2.3程序流程单元(P)

程序流程单元有程序地址产生电路和寄存器组凑成。

程序流程单元产生所有程序空间的地址,并控制指令的读取顺序。

程序地址产生逻辑电路的任务是产生读取空间的24位地址。

一般情况下,它产生的是连续地址,如果指令要求读取非连续地址的程序代码时,程序地址产生逻辑电路能够接收来自I单元的立即数和来自D单元的寄存器值,并将产生的地址传送到PAB。

在P单元中使用的寄存器分为5种类型。

●程序流寄存器:

包括程序计数器、返回地址寄存器和控制流程关系寄存器。

●块重复寄存器:

包括块重复寄存器0和1(BRC0、BRC1)BRC1的保存寄存器(BRS1)、块重复起始地址寄存器0和1以及块重复结束地址寄存器0和1。

●单重复寄存器:

包括单重复寄存器和计算单重复寄存器。

●中断寄存器:

包括中断标志寄存器0和1、中断使能寄存器0和1以及调试中断使能寄存器0和1。

●状态奇存期:

包括状态寄存器0,1,2和3。

2.4地址程序单元(A)

地址程序单元包括数据地址产生电路、算术逻辑电路和寄存器组构成。

A单元包括一个16位的算术逻辑单元,它既可以接收来自I单元的立即数也可以与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信。

A单元包括的寄存器有以下几种类型。

●数据页寄存器:

包括数据页寄存器和接口数据页寄存器;

●指针:

包括系数数据指针寄存器、堆栈针寄存器和8个辅助寄存器;

●循环缓冲寄存器:

包括循环缓冲大小寄存器、循环缓冲起始地址寄存器;

●临时寄存器:

包括临时寄存器。

2.5数据计算单元(D)

数据计算单元由移位器、算数逻辑电路、乘法累加器和寄存器组构成。

D单元包含了CPU的主要运算部件。

D单元移位器能够接收来自I单元的立即数,能够与存储器、I/O单元、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信,此外,还可以向D单元的ALU和A单元的ALU提供移位后的数据。

移位可以完成以下操作:

●对40位的累加器可以完成向左最多32位的移位操作,移位数乐意从零食寄存器读取或由指令中的常数提供;

●对于16位寄存器、存储器或I/O空间数据可完成左移31位或32位的移位操作;

●对于16位立即数可完成向左移最多15位的移位操作。

3μ律语音信号压缩设计过程

3.1设计思路

将接收到的语音信号进行模/数转换后将波形输入缓冲区,使用DSP芯片音频处理程序(输入16位线性样值,输出8位μ律样值)后,将波形输出缓冲区,经过音频信号数/模转换,最后通过扬声器播放出压缩后的语音信号。

3.2设计步骤

图3.1设计流程图

4μ律语音信号压缩的CCS实现

4.1简述CCS环境

CCS,即CodeComposerStudio,是TI公司在1999年推出的一个开放、具有强大集成开发环境。

它最初是由GODSP公司为TI的C6000系列DSP开发的。

在TI收购了GODSP后,将CCS扩展到了其它系列。

现在所有TI的DSP都可以使用CCS进行开发,但是其中的DSPBIOS功能只有C5000和C6000的CCS中才提供。

以前的DSP软件开发都是在一个分散的开发环境下进行,程序的编写、代码的生成以及调试等都是要通过命令来完成,类似于以前的DOS,十分烦杂。

而CCS的出现是DSP开发软件的一次革命性的变化。

CCS主要由代码生成工具、CCS集成开发环境、DSPBIOS和API函数以及RTDX组成。

4.2CCS配置

击桌面图标的“setupCCStudiov3.1”图标,运行CCS设置程序,如图5.1所示:

点击Add→Save&quit完成设置。

 

图5.1用标准配置文件设置系统配置

4.3CCS环境中工程文件的使用

在CCS集成环境下开发汇编程序或者C/C++程序,首先要建立一个工程项目文件(*.pjt),再向工程项目文件中添加汇编程序源文件(*.asm),C/C++源文件(*.c)和链接命令文件(*.cmd),并设置工程项目选项。

下面分别进行介绍建立工程文件,单击Project→New命令,系统将弹出如图所示的对话框,在该对话框中输入项目文件名,如fir单击“完成”系统就会创建一个名为fir.pjt的工程项目文件如图5.2所示。

图5.2创建新的工程项目文件对话框

选择File→New可打开一个新的编辑窗口。

在新窗口中输入源代码。

选择File→Save,在出现的对话框中输入一个文件名,并选择一个扩展名(C源代码选择*.c,汇编源代码选择*.asm),然后单击保存将源程序保存。

添加文件:

单击Project→AddFiletoProject命令然后会弹出如图5.3所示的对话框,单击打开完成对文件的添加。

图5.3向工程项目中添加文件对话框

4.4编译链接和运行目标文件

对程序进行编译:

执行Project→Compile命令就可以对当前的汇编程序进行编译生成.obj文件。

如果程序存在语法错误,那么就会在下面的编译链接信息框中显示错误信息。

根据错误提示,读者可对程序进行修改[2]。

对程序进行编译链接执行Project→Build命令,就可以对当前的项目文件同时进行编译,汇编和链接操作,并生成与工程项目名称相同的可执行的.out文件。

如果有错误信息,则会在“编译链接”信息框中显示。

也可以执行Project下的buildAll命令,所有项目中的文件重新编译,汇编和链接,生成.out文件。

单击主菜单“File”中“LoadProgram”选项,在对话框中,在CCS安装目录下,找到构建该工程的Debug目录,选择构建生成后的.out文件,并打开CCS装载完毕后,该“*.out”文件到目标dsp之后,会自动弹出“Disassembly”窗口如图5.4所示。

图5.4CCS调试程序时出现的视窗加工程界面

结果分析

CPU寄存器观察窗口

在程序正常运行,能够对语音信号进行压缩处理。

在现代通信领域中,对语音信号的压缩方面有很大的发展前景,因此,应该对该课题在做深入的研究。

该程序是对语音采集程序和16位/8位u律线性互换程序嵌套。

在有些语句上还有不和理的地方,有待于修改。

参考文献

[1]汪安民,程昱,徐宝根.DSP嵌入式系统开发典型案例.人民邮电出版社,2007

[2]樊昌信,曹丽娜.通信原理.北京:

国防工业出版社,2006.2

[3]王金龙,沈良,任国春,蔡跃明,陈瑾,吴启晖.无线通信系统的DSP实现.人民邮电出版社,2002.4

[4]TMS320C55XDSPMnemonicInstructionSetReferenceGuideSORU374G[Z].TexasInstruments,2002

[5]TMS320C55XDSPAssemblyLanguageToolsUser’sGuideSPRU280H[Z].TexasInstruments,2004

致谢

本次课程设计我们学会了DSP基本的原理结构、芯片及其DSK开发板的使用,并利用编写了本次μ率语音压缩存储的程序,对语音压缩的基本原理也有了一定的了解。

课程设计中我们选择了较为简单的C语言而没有选择繁杂的汇编语言,但是由于以前没有给PC以外的平台编写程序的经验,给涉及硬件的程序编写带来了困难。

通过阅读TI公司的例程和相关的文档,我们才逐步掌握了DSP编程的方法。

课程设计中使用了TI的CCS集成开发工具,给整个课程设计带来了极大的便利,学会了CCS使用后,整个程序的设计、编辑、载入都可在一个集成环境下完成,而不用去输入繁杂的DOS提示符命令。

作为一名大四的学生,我觉得能做类似的课程设计是十分有意义的。

通过此次设计试验也着重能够学到许多东西。

最后感谢姜阳老师和周锡青老师对我的帮助和指导。

 

附录软件程序

源文件

CMD文件:

MEMORY

{

PAGE0:

VECS:

origin=0xff80,length=0x80

PROG:

origin=0x2000,length=0x2000

PAGE1:

DATA:

origin=0x4000,length=0x1000

DRAM:

origin=0x5000,length=0x1000

STACK:

origin=0x6000,length=0x1000

}

SECTIONS

{

.vectors:

{}>VECSPAGE0

.text:

{}>PROGPAGE0

.data:

{}>DATAPAGE1

.bss:

{}>DRAMPAGE1

.stack:

{}>STACKPAGE1

}

语音采集模块:

.title"ex12"

BSP.set1;当前使用McBsp1

;McBsp内存映射寄存器

SPSA0.set038h

SPSD0.set039h

DRR10.set021h

DRR20.set020h

DXR10.set023h

DXR20.set022h

SPSA1.set048h

SPSD1.set049h

DRR11.set041h

DRR21.set040h

DXR11.set043h

DXR21.set042h

 

;McBspSubaddressedRegisters

SPCR1.set00h

SPCR2.set01h

RCR1.set02h

RCR2.set03h

XCR1.set04h

XCR2.set05h

SRGR1.set06h

SRGR2.set07h

MCR1.set08h

MCR2.set09h

RCERA.set0ah

RCERB.set0bh

XCERA.set0ch

XCERB.set0dh

PCR.set0eh

.ifBSP=0

SPSA.setSPSA0

SPSD.setSPSD0

RDRR.setDRR10

RDXR.setDXR10

.endif

.ifBSP=1

SPSA.setSPSA1

SPSD.setSPSD1

RDRR.setDRR11

RDXR.setDXR11

.endif

WR_SUB_REG.macroval,addr;写McBsp控制寄存器

stmaddr,SPSA

nop

stmval,SPSD

nop

.endm

RD_SUB_REG.macroaddr,acc;读McBsp控制寄存器

stm#:

addr:

SPSA

nop

ldmSPSD,acc

nop

nop

nop

.endm

WAITTRX.macro;等待串口中断

WAITR?

RD_SUB_REGSPCR1,A

and#1<<1,A

bcWAITR?

AEQ

.endm

PROGREG.macroprogword

stm#01h,RDXR

WAITTRX

stm#:

progword:

RDXR

WAITTRX

.endm

wait.macro

STM#0008h,AR0

RPT*AR0

NOP

.endm

.mmregs

.global_c_int00

.sect".vectors"

RESETbd_c_int00

stm#2000h,SP

.space19*4*16

BRINT0brecv

nop

nop

BXINT0btrans

nop

nop

.space4*4*16

BRINT1brecv

nop

nop

BXINT1btrans

nop

nop

.space4*4*16

.text

_c_int00

ld#0h,DP

stm#2000h,SP

ssbxINTM

ssbxSXM

st#2491h,SWWSR

st#0ffe0h,PMST

st#0f007h,CLKMD

stm#4000h,AR1

stm#4000h,AR2

mcbsp_init;初始化McBsp串口

rsbxCPL

nop;cpllatency

nop;cpllatency

nop;cpllatency

ld#0,DP

ssbxINTM

ssbxSXM

WR_SUB_REG#0000H,SPCR1

WR_SUB_REG#0200H,SPCR2

WR_SUB_REG#000CH,PCR

WR_SUB_REG#0000H,SPCR1

WR_SUB_REG#0000H,SPCR2

WR_SUB_REG#0040H,RCR1;16BITs

WR_SUB_REG#0004H,RCR2;IgnoreFSafterthef

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2