打印

采用DSP芯片的MELP声码器的算法设计方案

[复制链接]
2092|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
teet|  楼主 | 2011-10-10 12:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1996年3月,美国政府数字语音处理协会(DDVPC)选择了2.4kbps混合激励线性预测(MELP)语音编码器作为窄带保密语音编码的产品以及各种应用的新标准由于MELP具有良好的音质、极低的码率,以及良好的抗误码特性,可以应用在IP PHONE、移动通信、卫星通信等领域,尤其在需要大量存储话音的场合和保密通信等方面,具有很好的发展前景。  编码算法有硬件实现和软件实现两种方式,软件实现灵活性强,但处理速度较慢,一般不能满足实时处理的要求。硬件实现分为专用法和通用法两种。通用法是基于通用数字信号处理器芯片实现编码算法的,它具有体积小、功耗低、运算速度快等优点,其灵活性主要表现在软件易于更改以及对各种算法的处理和复杂算法的实现上,非常适用于语音信号、视频信号等压缩处理。
 MELP算法复杂度较高,因此实时实现必须借助于高性能的数字信号处理芯片。目前国内还没有用于研究声码器算法的专用芯片。因此,从功耗和性能多方面考虑,本文采用通用法实现MELP声码器算法,选择TI公司的TMS320VC5416 DSP芯片作为主处理器,完成声码器的主要功能。
  2 MELP编解码算法
  2.1 编码部分
  编码器基于线性预测分析合成技术,采样率为8kHz,以180采样值(22.5ms)为一帧进行编码,总体框图见图1。
  输入的原始语音信号经过隔直滤波(即高通滤波),得到目标信号S(n)。再对目标信号作以下处理:①低通滤波后用归一化互相关法进行基音粗估,然后根据 [0Hz,500Hz]子带信号围绕粗估基音估算分数基音;②带通分析,在5个子带计算话音强度,以决定各子带的清/浊音判决,其中 [0Hz,500Hz]子带强度用于确定非周期标志位;③计算LPC和尖峰值,用L-D算法提取10个LP系数,然后乘以带宽扩展系数,使用得到的系数计算残差信号,对残差信号的160个抽样计算尖峰值;④使用截止频率为1kHz的6阶巴特沃兹滤波器低通滤波残差信号,结合上一子帧的基音和当前子帧的分数基因,搜索出最终基音周期;⑤使用一个基音自适应窗采用一帧两次的方法对增益进行量化;⑥LPC分析,并转换成线谱对LSP参数量化;⑦将量化后的LSP 参数转换为LPC参数并进行逆滤波操作,残差信号补0至512点,对其进行512点FFT,利用频谱峰点检测算法找到前10次谐波对应的傅立叶系数输出。
图1 MELP编码器编码原理图
  2.2 解码部分
  解码器从信道接收到的数据中恢复出每帧的所有参数,经判断如果此帧是比较安静的语音帧,则增加对接触的两个子帧增益进行噪声衰减处理,同时改变噪声估计的值。所有合成的参数对其做基音同步内插处理,这些内插的参数包括基音周期、增益、LSF系数、颤动强度、量化的傅立叶幅度、用于产生混合激励信号的周期信号滤波器的系数和噪声滤波器系数、自适应增强滤波器的谱斜度系数。内插完成后,使用被子带滤波器滤波后的周期信号和噪声激励信号相加来产生混合激励信号。然后两个激励信号被分别滤波,并相加得到激励信号。合成混合激励信号后,信号经自适应谱增强滤波器处理,以改善共振峰的形状。随后,激励信号进行LPC合成得到合成语音。LPC合成用了一个直接形式的滤波器,其系数由插值后的LSP参数得到,合成的语音信号经增益调整和脉冲散布滤波后输出。总体框图见图 2。
图2  MELP编码器解码原理图

相关帖子

沙发
blacksword| | 2011-10-11 09:08 | 只看该作者
实现了吗,有参考代码给兄弟们看吗?

使用特权

评论回复
板凳
sqcumt123| | 2011-10-11 15:12 | 只看该作者
认真学习一下,帮楼主顶顶,大家关注

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

828

帖子

1

粉丝