语音信号的μ/A律压缩
发布时间:2008/12/17 0:00:00 访问次数:2040
语音信号的编码方式一般为脉冲调制编码(pcm,pulse code modulation)。采用dsp可以直接对pcm编码后的语音信号进行μ律和a律压缩。
pcm编码即脉冲编码调制,也就是将模拟信号转换数码,然后再转换成二进制数字信号的方法。几种常用的二进制编码格式如表1所示。
表1 几种常用的二进制编码格式
μ/a律压缩解压编码是国际电报电话协会(ccitt,consultative committee forinternational telegraph and telephone)最早推出的g.711语音压缩解压编码的一种格式的主要内容。其中欧洲和中国等国家采用a律压缩解压编码,美国和日本等国家采用μ律压缩解压编码。由于中国采用a律,本实例着重介绍a律压缩解压算法。图1是dsp硬件实现数据压缩解压的简单流程,dsp将传输来的压缩后的数据进行解压成16位或者32位,然后对解压后的数据进行分析、处理,最后将处理后的数据按照要求压缩成8位的数据格式输出到相应设备,供其他设备读取。
图1 数据压缩解压流程
图2是dsp将数据解压的值,dsp将压缩的8位数据解压成16位的dsp通用数据格式,其中高13位为解压后的数据,低3位补0。这是因为6.711的a律压缩只能对13位数据操作。dsp将解压后的数据放在缓冲串口的发送寄存器中,只要运行发送指令,缓冲串口就会将数据发送出去。缓冲串口对接收数据的解压过程和压缩过程完全相反。图3是μ律数据解压的示意图。
图2 a律数据解压
图3 μ律数据解压
dsp内部的缓冲串口(mcbsps)带有硬件实现的μ律/a律压缩解压,用户只需要在相应寄存器中进行设置就可以了。
在进行a律压缩时,采样后的12位数据,默认其最高位为符号位,压缩时要保持最高位即符号位不变,原数据的后11位要压缩成7位。这7位码由3位段落码和4位段内码组成。具体的压缩变换后的数据根据后11位数据大小决定。具体的编译码表如表2所示。
表2 a律数据压缩表
压缩后数据的最高位(第7位)表示符号,量阶分别为1、1、2、4、8、16、32、64,由压缩后数据的第6位到第4位决定,第3位到第0位是段内码。压缩后的数据有一定的失真。有些数据不能表示出,只能取最接近该数据的压缩值。例如,数据125,压缩后的值为00111111,意义如下。
最终结果为64+4×15=124
也可以使用缓冲串口实现对内部数据的压缩和解压,通过缓冲串口的自发自收功能,可以实现:
(1)将线性数据转换为相应的u律或者a律格式;
(2)将u律或者a律格式的数据转换为线性数据;
(3)通过线性数据的传输以及对这些数据的压缩和解压,评估压缩和解压过程中量化效应对数据的影响;
图4是利用缓冲串口对片内数据进行压缩和解压的两种实现方法,分别由dlb和non-dlb两条路径表示。
图4 dsp内部数据的压缩和解压
(1)dlb路径。缓冲串口设置为数字反馈环路,在rcompand和xcompand位中设定相应的压缩和解压方式。此时dsp仍然可以利用发送(xint)和接收(rint)中断或者是dma的发送(xevt)和接收(revt)同步事件进行数据输入输出的同步控制。在这种方式下,压缩和解压的速度取决于设置的串行波特率。
(2)non-dlb路径。当缓冲串口的发送和接收端均对复位后,drr和dxr只通过压缩和解压模块相连,数据不再经过rbr、xsr、rsr以及dr和dx引脚。数据按照rcompand和xcompand位中设定的方式进行压缩和解压,但此时不能产生dsp所需要的中断信号,也不能产生dma需要的同步事件。但这种方法直接从dxr到drr,压缩和解压的速度非常快。
语音信号的p/a律压缩程序如下:
语音信号的编码方式一般为脉冲调制编码(pcm,pulse code modulation)。采用dsp可以直接对pcm编码后的语音信号进行μ律和a律压缩。
pcm编码即脉冲编码调制,也就是将模拟信号转换数码,然后再转换成二进制数字信号的方法。几种常用的二进制编码格式如表1所示。
表1 几种常用的二进制编码格式
μ/a律压缩解压编码是国际电报电话协会(ccitt,consultative committee forinternational telegraph and telephone)最早推出的g.711语音压缩解压编码的一种格式的主要内容。其中欧洲和中国等国家采用a律压缩解压编码,美国和日本等国家采用μ律压缩解压编码。由于中国采用a律,本实例着重介绍a律压缩解压算法。图1是dsp硬件实现数据压缩解压的简单流程,dsp将传输来的压缩后的数据进行解压成16位或者32位,然后对解压后的数据进行分析、处理,最后将处理后的数据按照要求压缩成8位的数据格式输出到相应设备,供其他设备读取。
图1 数据压缩解压流程
图2是dsp将数据解压的值,dsp将压缩的8位数据解压成16位的dsp通用数据格式,其中高13位为解压后的数据,低3位补0。这是因为6.711的a律压缩只能对13位数据操作。dsp将解压后的数据放在缓冲串口的发送寄存器中,只要运行发送指令,缓冲串口就会将数据发送出去。缓冲串口对接收数据的解压过程和压缩过程完全相反。图3是μ律数据解压的示意图。
图2 a律数据解压
图3 μ律数据解压
dsp内部的缓冲串口(mcbsps)带有硬件实现的μ律/a律压缩解压,用户只需要在相应寄存器中进行设置就可以了。
在进行a律压缩时,采样后的12位数据,默认其最高位为符号位,压缩时要保持最高位即符号位不变,原数据的后11位要压缩成7位。这7位码由3位段落码和4位段内码组成。具体的压缩变换后的数据根据后11位数据大小决定。具体的编译码表如表2所示。
表2 a律数据压缩表
压缩后数据的最高位(第7位)表示符号,量阶分别为1、1、2、4、8、16、32、64,由压缩后数据的第6位到第4位决定,第3位到第0位是段内码。压缩后的数据有一定的失真。有些数据不能表示出,只能取最接近该数据的压缩值。例如,数据125,压缩后的值为00111111,意义如下。
最终结果为64+4×15=124
也可以使用缓冲串口实现对内部数据的压缩和解压,通过缓冲串口的自发自收功能,可以实现:
(1)将线性数据转换为相应的u律或者a律格式;
(2)将u律或者a律格式的数据转换为线性数据;
(3)通过线性数据的传输以及对这些数据的压缩和解压,评估压缩和解压过程中量化效应对数据的影响;
图4是利用缓冲串口对片内数据进行压缩和解压的两种实现方法,分别由dlb和non-dlb两条路径表示。
图4 dsp内部数据的压缩和解压
(1)dlb路径。缓冲串口设置为数字反馈环路,在rcompand和xcompand位中设定相应的压缩和解压方式。此时dsp仍然可以利用发送(xint)和接收(rint)中断或者是dma的发送(xevt)和接收(revt)同步事件进行数据输入输出的同步控制。在这种方式下,压缩和解压的速度取决于设置的串行波特率。
(2)non-dlb路径。当缓冲串口的发送和接收端均对复位后,drr和dxr只通过压缩和解压模块相连,数据不再经过rbr、xsr、rsr以及dr和dx引脚。数据按照rcompand和xcompand位中设定的方式进行压缩和解压,但此时不能产生dsp所需要的中断信号,也不能产生dma需要的同步事件。但这种方法直接从dxr到drr,压缩和解压的速度非常快。
语音信号的p/a律压缩程序如下:
上一篇:语音信号去噪
上一篇:语音信号的采集和播放
热门点击
- D/A转换器的基本原理
- AD转换器的选择
- 语音信号的μ/A律压缩
- 并行A/D转换器AD574
- 语音信号的采集和播放
- 语音信号模数/数模转换
- DFT的属性
- D/A转换器的特性与技术指标
- D/A转换器双极性工作
- 高速数据采集系统的时钟电路设计
推荐技术资料
- DS2202型示波器试用
- 说起数字示波器,普源算是国内的老牌子了,FQP8N60... [详细]