![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 基于DSP Builder的ADPCM算法实现 | |||||
作者:61IC 文章来源:本站原创 点击数: 更新时间:2006-9-5 ![]() |
|||||
|
作者:曹晓东 苗长云 李鸿强 石博雅 来源:微计算机信息 摘要:本文对ADPCM编解码原理进行了分析,并针对语音记录系统的特点,对标准ADPCM编解码系统进行了简化。提出了一种适合语音记录系统的16kbps的ADPCM语音编解码方案,并利用DSP Builder实现了该编解码方案。 数字技术的出现与应用给人类带来了深远的影响,但数字信号也有其自身的缺点,如对存储器存储容量需求的增大及传输时对信道容量要求的增高。为了节省资源、降低成本,需对数字语音信号进行压缩编码。自1937年A.H.Reeves提出脉冲编码调制以来,语音压缩编码技术已有60余年的发展历史,在保证语音质量的前提下语音数据的速率也由最初的64kbps降低到了现在的4kbps甚至更低。CCITT于1984年通过了32kbps ADPCM语音编码G.721建议,它不仅可以达到PCM相同的语音质量而且具有更优良的抗误码性能,广泛的应用于卫星以及可变速率编码器中。G.726标准(ADPCM)包含CCITT的G.721和G.723建议。本系统所采用的设计软件有quartusII4.1、DSP Builder2.2和Modelsim6.0。 通过对CCITT G.726中的16kbps ADPCM 编解码原理的分析,提出了一种适合于语音记录系统的简化的ADPCM编解码方案,并利用DSP Builder实现了该编解码方案。 2 ADPCM编解码原理 G.726标准(ADPCM)包含CCITT的G.721和G.723建议,是一种适合于各种波形、图形以及调制数据的波形编码技术。ADPCM系统不是原始信号的编码系统,而是一个利用样本与样本之间的高度相关性来实现数据压缩的代码转换器,它的编码值代表了实际值和预测值的差。按照标准ADPCM算法,ADPCM系统由自适应量化器模块,逆自适应量化器模块,自适应预测器模块,信号重建模块,同步码调整模块,量化标度因子自适应模块,自适应速度控制模块等模块组成。其中自适应预测器是一种滤波器,它的系数由梯度算法来修改。量化标度因子根据差分信号的幅度进行调节,使量化阶的大小适应信噪比的要求。在对量化标度因子y(k)进行自适应更新的过程中,为了使自适应量化器能对语音信号(非平稳信号)和非语音信号(平稳信号)都可以获得最佳自适应特性,在标准ADPCM算法中设置有自适应速度控制模块。 量化标度因子的计算公式为:
其中 yu(k)为上一帧的快速变化(语音)信号对应的量化标度因子分量,即快速量化标度因子。 yl(k)为上一帧的慢速变化(非语音)信号对应的量化标度因子分量,即慢速量化标度因子。 a(k)为速度控制系数。 出现在解码器模块末端的同步码调整模块对输出PCM字Spcm进行再编码,并把得到的新码子ID与原始的ADPCM字I 比较得到最终的解码结果。 如果ID>I,说明Spcm被估高了,则选择Spcm-1作为Spcm的新值。 如果ID<I,说明Spcm被估低了,则选择Spcm+1作为Spcm的新值。 否则,说明Spcm被正确估计,则保持Spcm的值不变。 ADPCM算法的一个重要特点是解码器中的解码算法已嵌入在编码器中,故在设计中可以只设计编码器,而解码器可以直接有编码器中的模块组合得到。 标准ADPCM编码框图如图1所示:
3 针对语音记录系统对标准ADPCM算法的简化 (1)对于速度控制因子a(k),当输入为平稳信号(如单音信号,DTMF信号)时,其值介于0到1之间,而当输入信号为非平稳信号(如语音信号)时,其值是趋于1的。因此在输入只有语音时,可以将a(k)的值近似为1,从而可以取消对自适应速度控制系数a(k)及慢速标度因子yl(k)的计算,而直接把计算得到的快速量化标度因子yu(k)作为新的量化器标度因子y(k),从而可以在保证合成语音质量的前提下极大的降低算法的复杂程度。 (2)标准ADPCM算法中的PCM扩张和压缩接口,是为了在对30(32)路的PCM方式数字通信的一次群信道中进行60路的ADPCM方式数字通信时实现与原设备的兼容而设计的。而在本设计中ADPCM编码模块的输入信号已经是线性的PCM信号,故无须再对其进行PCM压扩运算。因此在本方案中取消了PCM压缩和扩张接口,这不仅可以极大的降低算法的复杂程度,更重要的是避免了在压扩PCM码过程中由于量化而导致的信息量的丢失,从而降低了语音的失真,提高了语音的质量。 (3)ASCII字符经ADPCM编码后进行传输时,可能会产生严重误码,因此在标准的ADPCM编解码系统中设计了单音/过渡音检测单元来实施补偿。在单纯的语音记录系统中,不存在ASCII字符的传输问题,因此在本方案中取消了单音/过渡音检测模块。 (4)由于在语音记录系统中无需对语音信号进行异地传输,故本方案取消了解码器中为实现通信同步而设的同步码调整模块,从而在对输出合成语音的质量没有任何的影响的前提下,降低了算法的复杂程度。 经过对ADPCM中各个模块作用的分析,针对语音记录系统的特点,去掉了一些不必要的模块,从而得到了一种简化的ADPCM语音编解码方案,其编码系统和解码系统的框图分别如图2和图3所示:
4 ADPCM编解码算法的DSP Builder实现 4.1自适应量化模块和自适应逆量化模块 根据CCITT G.726的16kbps ADPCM建议,自适应量化可以用下表来实现在记录系统的输入端对差值信号的量化和在记录系统的输出端对量化信号的逆量化。 表1 CCITT G.726建议16kbps下的ADPCM算法的量化器标准化输入/输出特性
4.3自适应预测模块和信号重建模块 该两阶极点预测器的两个系数可以通过一个简单的梯度算法来计算得到,计算方法如式7,式8所示:
------
7结束语 |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 基于DSP Builder的DDS设计及… ADPCM压缩算法源码 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|