g729源码分析-2-共振锋感知加权

不同于g723固定系数的共振峰感知加权
g729的共振峰感知加权是自适应的.


perc_var 这个函数来对共振峰感加权进行估值


我们先看itu的文档 3.3节 的式30,
这是一个判断语音频谱是否平坦的一个条件.
因为人类语音的频谱有个特点,越高频的共振峰的能量会越弱.
而共振峰感知加权要注意这个现象,如果频谱倾斜了(高频共振峰能量弱),要加强加权系数


根据莱文森德宾递推公式:
k1=-R(1)/R(0)
k2 = (1-R(2)/R(0)) / (1-k1^2)


从itu的文档看出,对数面积比,实际上是反k1 与 k2扩展到 负无穷到正无穷上了


也就是对数面积比趋向于负无穷的时候,此时对应的 R(1)/R(0)是接近于 1的, 正无穷时 R(1)/R(0)是-1
即对数面积比系数越小,可以估计出高频分量越低, 对数面积比系数越大,高频分量就越高.


当条件1满足时,我们其实可以计算出 k1差不多为 -55/56 即 R(1)/R(0) = 55/56 即高频分量低
R(2)/R(0)其实对应着次高频分量,再来看k2,R(2)/R(0)大概可以由k2的取值推断出 R(2)/R(0)也是一个非常接近1的值,
即,次高频分量还是低的.(此时k2大约为3/5,由于分母极小,所以分子也不可能太大,推断于R(2)/R(0)是接近于1的值)


结合前一帧是平的,由于高频分量都低了,就可以推断出当前帧应该是倾斜了


同理可以推断于条件2是一个相反的过程,由倾斜,而高频分量高了,认为当前帧的频谱是平坦的
注:人类语音能量集中在前两个共振峰,后面的共振峰能量会依次降低,共振峰对听觉心理的影响最大,
所以感知加权要加强共振峰的强度与带宽
引入的感知加权.
我们可以因式分解成:


          1
 -----------------------------------------------------------------------
 (z^-1 + r*cos(b1) + i*r*sin(b1)) ... (z^-1 + r*cos(b10) + i*r*sin(b10))
我们将 z=(z/a)  0<a<1代入,看其中的一个因子
             1
  ------------------------------------
  ((z/a)^-1 + r*cos(b1) + i*r*sin(b1))
  
可化为
            1/a
 ------------------------------------------
   (z^-1 + (r/a)*cos(b1) + i*(r/a)*sin(b1))
将 z = e^jw代入,则整个分式的绝对值(对应频域的振幅)
             1/a
 ----------------------------
  1+(r/a)^2+ 2*(r/a)cos(w+b1)
我们画一下这个函数的图,观察a变化,引起的幅度变化,自然能得出a越小,共振峰带宽扩展,共振峰加强的结论,b1则表示共振峰的位置
对比723,729引入了感知加权自适应机制,即,两个共振峰的位置如果太接近了,带宽扩展有可能导致两个共振峰出现重合了
也就是最近的两个共振峰越接近,则带宽扩展的加权越低(即a越大)


以上就是分析出来的共振峰加权系数取值的一些推导依据,代码就相应简单了,基本上照本宣科
最终求得两个共振峰感知加权系数


得到加权系数后,对信号进行滤波,比较简单,不详述了
//lsc 处理两个子帧,分别对它们进行感知加权滤波
  Weight_Az(&A_t[0], gamma1[0], M, Ap1);
  Weight_Az(&A_t[0], gamma2[0], M, Ap2);
  Residu(Ap1, &speech[0], &wsp[0], L_SUBFR);//lsc 对应加权滤波器分子的滤波
  Syn_filt(Ap2, &wsp[0], &wsp[0], L_SUBFR, mem_w, 1);//对应加权滤波器分母的滤波


  Weight_Az(&A_t[MP1], gamma1[1], M, Ap1);
  Weight_Az(&A_t[MP1], gamma2[1], M, Ap2);
  Residu(Ap1, &speech[L_SUBFR], &wsp[L_SUBFR], L_SUBFR);//lsc 对应分子的

  Syn_filt(Ap2, &wsp[L_SUBFR], &wsp[L_SUBFR], L_SUBFR, mem_w, 1);//lsc 对应分子的


                                                                                林绍川

                                                                               2012.4.11于杭州




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值