g729源码分析-7-增益量化

现在来分析g729的增益量化,
这里包含两个增益,一个是自适应码本的增益gp,一个是固定码本的增益gc


由于自适应码本与固定码本已经被搜索出来了,
就可以根据这两级码本,与反量化的Az系数进行卷积,得到解码的语音信号(包含未知变量gc与gp)
利用这个解码的语音信号与目标语音信号方差最小为准则,
在增益码本里做搜索,搜索出最佳增益


即itu文档中的3.9节,公式63.
笔者把这个公式简略推导列在下面(实际上这个公式太简单了,根本不需要推导,读者即可看出端倪)


首先我们把目标语音信号记作x[n]
反量化Az系统的冲激响应已经之前的代码中得到了,记作h[n]---h[n]的计算过程,笔者在这个系列的第五章节分析过了
自适应码本与h[n]的卷积记作y1[n]
固定码本与h[n]的卷码记作y2[n]


自然,我们可以这么表示解压的语音信号与目标语音信号的方差(是方差吧?笔者的统计学不过关,呵呵)


E = Σ (x[n] - gp*y1[n] - gc*y2[n])^2    --- 笔者注:^2表示平方
展开
E = Σ (x[n]^2 + (gp*y1[n])^2 + (gc*y2[n])^2 - 2gp*x[n]*y1[n] - 2gc*x[n]*y2[n] + 2gp*gc*y1[n]*y2[n])
这就是itu文档里的式63,只不过itu是用矩阵乘法来表达的


Corr_xy2:
这个函数会计算出式63中相应的已经系数如 (y1[n])^2, -2x[n]*y[n]等 其中x[n]^2是不需要计算的,
因为在搜索过程,对于当前子帧,这个项相当于常数项


也就是我们只需要将码本里的增益gp gc代入,计算出最小的E即可


这里itu实际有做一些预估搜索,即通过一个估值手段,来缩小码本的搜索范围为原来的1/4.
笔者将在下一章节分析这一块内容
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值