




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学信息科学与工程学院DSP技术课程设计报告1语音信号压缩(律)原理1.1语音信号编码概念:语音编码一般分为两类:一类是波形编码,一类是被称为“声码器技术”的编码。PCM编码即脉冲编码调制。波形编码的最简单形式就是脉冲编码调制(Pulse code modulation),这种方式将语音变换成与其幅度成正比的二进制序列,而二进制数值往往采用脉冲表示,并用脉冲对采样幅 度进行编码,所以叫做脉冲编码调制。 脉冲编码调制没有考虑语音的性质,所以信号没有得到压缩。 量化:脉冲编码调制用同等的量化级数进行量化,即采用均匀量化,而均匀量化是基本的量化方式。但是均匀量化有缺点,在信号动态范围较大而方差较小的时候,其信噪比会下降 。 国际上有两种非均匀量化的方法:A律和律,律是最常用的一种。在美国,7位律是长途电话质量的标准。 而我国采用的是A律压缩,而且有标准的A律PCM编码芯片。 DPCM&ADPCM :降低传输比特率的方法之一是减少编码的信息量,这要消除语音信号中的冗余度。相邻的语音样本之间存在明显的相关性,因此对相邻样本间的差信号进行编码,便可使信息量得到压缩。因为差分信号比原语音信号的动态范围和平均能量都小。这种编码叫Differential PCM,简称DPCM,即差分脉冲编码调制。 ADPCM即自适应差分脉冲编码调制,是包括短时预测的编码系统。CCITT(国际电报电话咨询委员会)在1984年提出的32 kbit/s的编码器建议就是采用ADPCM作为长途传输中的国际通用语音编码方案。这种ADPCM编码方案达到64 kbit/s PCM的语音传输质量,并具有很好的抗误码性能。1.2压缩算法及压缩技术介绍1. 压缩算法的介绍用途抽样频率(kHz)压缩标准或系统压缩技术码率(kbit/s)长途电话8G.711G.726G.728PCMADPCMLD-CELP6440/32/24/1616移动电话8GSMIS54/IS95G.729RPE/LTPVSELP/QSELPCS-ACELP13.216/8/4/2/18ISDN,会议电视1G.722SB-ADPCM64/56/48VCD32/48ISO/IEC10149MPEG1192/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律压缩转换如下表所说明,压缩后的码子组成:比特03表示量化值,比特46表示段值,压缩后的码子符号放在比特7。语音采集和播放芯片采用的是TI 公司生产的TLV320AIC23B ,TLV320AIC23B 的模数转换(ADC)和数模转换(DAC) 部件高度集成在芯片内部,芯片采用8 k 采样率,单声道模拟信号输入,双声道输出。TLV320AIC23具有可编程特性,DSP 可通过控制接口来编辑该器件的控制寄存器, 而且能够编译SPI , I2C 两种规格的接口。 DSP 采用I2C 口对TLV320AIC23 的寄存器进行设置。当MODE = 0 时,为I2C 规格的接口,DSP 采用主发送模式,通过I2C 口对地址为00000000001111 的11 个寄存器进行初始化。I2C 模式下,数据是分为3 个8 b 写入的。而TLV320AIC23 有7 位地址和9 位数据,也就是说,需要把数据项上面的最高位补充到第二个8 B 中的最后一位。MCBSP 串口通过6 个引脚CL KX ,CL KR ,FSX ,FSR ,DR 和CX 与TLV320AIC23 相连。数据经MCBSP 串口与外设的通信通过DR 和DX 引脚传输,控制同步信号则由CL KX ,CL KR ,FSX ,FSR 四个引脚实现。将MCBSP 串口设置为DSP Mode 模式,然后使串口的接收器和发送器同步,并且由TLV320AIC23 的帧同步信号LRCIN ,LR2COUT 启动串口传输,同时将发送接收的数据字长设定为32 b(左声道16 b ,右声道16 b) 单帧模式。表1 .2律二进制编码表压缩前的码子丢弃的比特数压缩后的码子偏置的输入(模值)段值、量化值比特:12 11 10 9 8 7 6 5 4 3 2 1 0比特:6 5 4 3 2 1 0 0 0 0 0 0 0 0 1 a b c d x1 0 0 0 a b c d 0 0 0 0 0 0 1 a b c d x x2 0 0 1 a b c d 0 0 0 0 0 1 a b c d x x x3 0 1 0 a b c d 0 0 0 0 1 a b c d x x x x 4 0 1 1 a b c d 0 0 0 1 a b c d x x x x x5 1 0 0 a b c d 0 0 1 a b c d x x x x x x6 1 0 1 a b c d 0 1 a b c d x x x x x x x 7 1 1 0 a b c d 1 a b c d x x x x x x x x 8 1 1 1 a b c d2 TMS320C5X的硬件结构2.1 C55XCPU 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种类型。l 程序流寄存器:包括程序计数器、返回地址寄存器和控制流程关系寄存器。l 块重复寄存器:包括块重复寄存器0和1(BRC0、BRC1)BRC1的保存寄存器(BRS1)、块重复起始地址寄存器0和1以及块重复结束地址寄存器0和1。l 单重复寄存器:包括单重复寄存器和计算单重复寄存器。l 中断寄存器:包括中断标志寄存器0和1、中断使能寄存器0和1以及调试中断使能寄存器0和1。l 状态奇存期:包括状态寄存器0,1,2和3。2.4 地址程序单元(A)地址程序单元包括数据地址产生电路、算术逻辑电路和寄存器组构成。A单元包括一个16位的算术逻辑单元,它既可以接收来自I单元的立即数也可以与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信。A单元包括的寄存器有以下几种类型。l 数据页寄存器:包括数据页寄存器和接口数据页寄存器;l 指针:包括系数数据指针寄存器、堆栈针寄存器和8个辅助寄存器;l 循环缓冲寄存器:包括循环缓冲大小寄存器、循环缓冲起始地址寄存器;l 临时寄存器:包括临时寄存器。2.5 数据计算单元(D)数据计算单元由移位器、算数逻辑电路、乘法累加器和寄存器组构成。D单元包含了CPU的主要运算部件。D单元移位器能够接收来自I单元的立即数,能够与存储器、I/O单元、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信,此外,还可以向D单元的ALU和A单元的ALU提供移位后的数据。移位可以完成以下操作:l 对40位的累加器可以完成向左最多32位的移位操作,移位数乐意从零食寄存器读取或由指令中的常数提供;l 对于16位寄存器、存储器或I/O空间数据可完成左移31位或32位的移位操作;l 对于16位立即数可完成向左移最多15位的移位操作。3 律语音信号压缩设计过程3.1设计思路将接收到的语音信号进行模/数转换后将波形输入缓冲区,使用 DSP芯片音频处理程序(输入16位线性样值,输出8位律样值)后,将波形输出缓冲区,经过音频信号数/模转换,最后通过扬声器播放出压缩后的语音信号。音频信号输入3.2设计步骤 音频信号ADC 模拟电路(扬声器)波形输入缓冲区RAM 音频信号DACdsp芯片音频处理程序 波形输出缓冲波形输出缓冲区RAM 图3.1 设计流程图 4 律语音信号压缩的CCS实现4.1 简述CCS环境 CCS,即Code Composer Studio,是TI公司在1999年推出的一个开放、具有强大集成开发环境。它最初是由GO DSP公司为TI的C6000系列DSP开发的。在TI收购了GO DSP后,将CCS扩展到了其它系列。现在所有TI的DSP都可以使用CCS进行开发,但是其中的DSPBIOS功能只有C5000和C6000的CCS中才提供。以前的DSP软件开发都是在一个分散的开发环境下进行,程序的编写、代码的生成以及调试等都是要通过命令来完成,类似于以前的DOS,十分烦杂。而CCS的出现是DSP开发软件的一次革命性的变化。CCS主要由代码生成工具、CCS集成开发环境、DSPBIOS和API函数以及RTDX组成。4.2 CCS配置击桌面图标的“setup CCStudio v3.1”图标,运行CCS设置程序,如图5.1所示:点击AddSave&quit完成设置。图5.1 用标准配置文件设置系统配置4.3 CCS环境中工程文件的使用在CCS集成环境下开发汇编程序或者C/C+程序,首先要建立一个工程项目文件(*.pjt),再向工程项目文件中添加汇编程序源文件(*.asm),C/C+源文件(*.c)和链接命令文件(*.cmd),并设置工程项目选项。 下面分别进行介绍建立工程文件,单击ProjectNew命令,系统将弹出如图所示的对话框,在该对话框中输入项目文件名,如fir单击“完成”系统就会创建一个名为fir.pjt的工程项目文件如图5.2所示。图5.2 创建新的工程项目文件对话框选择FileNew可打开一个新的编辑窗口。在新窗口中输入源代码。选择FileSave,在出现的对话框中输入一个文件名,并选择一个扩展名(C源代码选择*.c,汇编源代码选择*.asm),然后单击保存将源程序保存。添加文件:单击ProjectAdd File to Project命令然后会弹出如图5.3所示的对话框,单击打开完成对文件的添加。图5.3 向工程项目中添加文件对话框4.4 编译链接和运行目标文件对程序进行编译:执行ProjectCompile命令就可以对当前的汇编程序进行编译生成.obj文件。如果程序存在语法错误,那么就会在下面的编译链接信息框中显示错误信息。根据错误提示,读者可对程序进行修改2。对程序进行编译链接执行ProjectBuild命令,就可以对当前的项目文件同时进行编译,汇编和链接操作,并生成与工程项目名称相同的可执行的.out文件。如果有错误信息,则会在“编译链接”信息框中显示。也可以执行Project下的build All命令,所有项目中的文件重新编译,汇编和链接,生成.out文件。 单击主菜单“File”中“Load Program”选项,在对话框中,在CCS安装目录下,找到构建该工程的Debug目录,选择构建生成后的.out文件,并打开CCS装载完毕后,该“*.out”文件到目标dsp之后,会自动弹出“Disassembly”窗口如图5.4所示。图5.4 CCS调试程序时出现的视窗加工程界面 结果分析 CPU寄存器观察窗口 在程序正常运行,能够对语音信号进行压缩处理。在现代通信领域中,对语音信号的压缩方面有很大的发展前景,因此,应该对该课题在做深入的研究。该程序是对语音采集程序和16位/8位u律线性互换程序嵌套。在有些语句上还有不和理的地方,有待于修改。 参考文献 1 汪安民,程昱,徐宝根.DSP嵌入式系统开发典型案例.人民邮电出版社,20072 樊昌信,曹丽娜. 通信原理. 北京:国防工业出版社,2006.23 王金龙,沈良,任国春,蔡跃明,陈瑾,吴启晖.无线通信系统的DSP实现. 人民邮电出版社,2002.44 TMS320C55X DSP Mnemonic Instruction Set Reference Guide SORU374GZ. Texas Instruments,20025 TMS320C55XDSP AssemblyLanguage Tools Users Guide SPRU280HZ.Texas Instruments,2004 致谢 本次课程设计我们学会了DSP基本的原理结构、芯片及其DSK开发板的使用,并利用编写了本次率语音压缩存储的程序,对语音压缩的基本原理也有了一定的了解。课程设计中我们选择了较为简单的C语言而没有选择繁杂的汇编语言,但是由于以前没有给PC以外的平台编写程序的经验,给涉及硬件的程序编写带来了困难。通过阅读TI公司的例程和相关的文档,我们才逐步掌握了DSP编程的方法。 课程设计中使用了TI的CCS集成开发工具,给整个课程设计带来了极大的便利,学会了CCS使用后,整个程序的设计、编辑、载入都可在一个集成环境下完成,而不用去输入繁杂的DOS提示符命令。作为一名大四的学生,我觉得能做类似的课程设计是十分有意义的。通过此次设计试验也着重能够学到许多东西。最后感谢姜阳老师和周锡青老师对我的帮助和指导。附录 软件程序源文件 CMD文件:MEMORY PAGE0: VECS: origin=0xff80, length=0x80 PROG: origin=0x2000, length=0x2000PAGE1: DATA: origin=0x4000, length=0x1000 DRAM: origin=0x5000, length=0x1000 STACK: origin=0x6000, length=0x1000SECTIONS .vectors: VECS PAGE0 .text: PROG PAGE0 .data: DATA PAGE1 .bss: DRAM PAGE1 .stack: STACK PAGE1语音采集模块:.title ex12BSP.set1 ;当前使用McBsp1;McBsp 内存映射寄存器SPSA0.set 038hSPSD0.set 039hDRR10.set 021hDRR20.set020hDXR10.set 023hDXR20.set022hSPSA1.set 048hSPSD1 .set 049hDRR11 .set041hDRR21 .set 040hDXR11 .set 043hDXR21 .set042h;McBsp Subaddressed RegistersSPCR1.set00hSPCR2.set01hRCR1.set02hRCR2.set03hXCR1.set04hXCR2.set05hSRGR1.set06hSRGR2.set07hMCR1.set08hMCR2.set09hRCERA.set0ahRCERB.set0bhXCERA.set0chXCERB.set0dhPCR.set0eh.if BSP = 0SPSA.setSPSA0SPSD.setSPSD0RDRR.setDRR10RDXR.setDXR10.endif.if BSP = 1SPSA.setSPSA1SPSD.setSPSD1RDRR.setDRR11RDXR.setDXR11.endifWR_SUB_REG.macro val,addr;写McBsp控制寄存器stm addr,SPSAnopstm val,SPSDnop.endmRD_SUB_REG.macro addr,acc;读McBsp控制寄存器stm #:addr:,SPSAnopldm SPSD,accnopnopnop.endmWAITTRX .macro ;等待串口中断WAITR? RD_SUB_REG SPCR1,A and #1录音;ld b,ab play;已结束-放音recordld #0d000h,bsub ar2,bbc load,bneq ;录制数据放完,再从头放起stm#4000h,ar2load ld *ar2+,a;加载录制数据playand #0fffeh,a ;放音stlm A,RDXRretetransrsbx XFrete.end语音处理模块:#include #include /*This routine converts from linear to ulaw 输入:16位线性样值 输出:8位u律样值 */#define ZEROTRAP /*turn on the trap as per the MIL-STD*/#define BIAS 0x84 /*define the add-in biasfor 16 bit samples*/#define CLIP 32635unsigned char linear2ulaw(int sample) static int exp_lut256=0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF(烟草)4.1-2010烟草及烟草制品连续流动法测定常规化学成分测量不确定度评定指南第1部分:水溶性糖
- 考研复习-风景园林基础考研试题附参考答案详解(培优a卷)
- 风景园林基础考研资料试题及参考答案详解(培优)
- 《风景园林招投标与概预算》试题A带答案详解(巩固)
- 2025-2026年高校教师资格证之《高等教育法规》通关题库附答案详解(考试直接用)
- 2023国家能源投资集团有限责任公司第一批社会招聘笔试备考题库附答案详解(基础题)
- 2025福建晋园发展集团有限责任公司权属子公司招聘7人笔试备考题库及答案详解(夺冠)
- 2025年黑龙江省五常市辅警招聘考试试题题库附答案详解(培优a卷)
- 2025年河北省定州市辅警招聘考试试题题库附答案详解ab卷
- 2.3.2漏电流的检测设备的电气绝缘应具有良好的防电击性能
- 营业执照转让合同范本
- 劳务外包劳务合同范本
- 文旅产业项目商业计划书
- 2025年公共财政与预算考试试卷及答案
- 2025-2030中国市政工程建设行业市场发展前瞻及投资战略研究报告
- 2025年客户体验管理:存量时代银行的核心竞争力白皮书-瑞和数智
- 2025年医保知识培训试题:医保患者权益保障与医疗保险报销时限试卷
- 粒子加速器用30-4000 MHz级固态功率源系统 征求意见稿
- SL631水利水电工程单元工程施工质量验收标准第1部分:土石方工程
- 2025年湖南出版中南传媒招聘笔试参考题库含答案解析
- GB/T 44880-2024因果矩阵
评论
0/150
提交评论