g723源码详细分析-14-感知加权滤波器补充

时间:2022-03-25 09:52:16
在分析解码后置滤波器时
重找了一些感知加权的资料

补充一些对共振峰感知加权的理解

先来看感知加权滤波器的系统函数(itu 723文档中的式11)
        
             10
         1 -  Σ  a[j] * (z * γ1)^(-j)
             j=1
 W(z) = ------------------------------        
              10
         1 -  Σ  a[j] * (z * γ2)^(-j)
             j=1
             
这个形式可能让人迷惑,笔者做一个改造
         A(z/γ1)
W(z)= -----------
         A(z/γ2)

               10
其中 A(z)= 1 -  Σ  a[j] * (z)^(-j)
               j=1

输入是y[n] 残差x[n] 冲激响应h[n]
对应的z变换 y(z)  x(z)  h(z)
           1
h(z) = --------
         A(z)
         
可以看出,h(e^jw)也就是h(z)在单位圆上的取值,会出现10个峰起,也就是共振峰(峰起点实际就是h(z)=0时的根)
这里涉及到人的听觉心理,即人对声音信号的感知,共振峰处的能量贡献较大.
为了增强语音效果,自然希望增强共振峰频域附近的声音能量.

把A(z)改造成多因式乘积的形式
A(z) = (a1*(z^-1)+b1)(a2*(z^-1)+b2)...(a10*(z^-1)+b10)

                            1
h(z) = ---------------------------------------------------
         (a1*(z^-1)+b1)(a2*(z^-1)+b2)...(a10*(z^-1)+b10)

将A(z/γ2)代入
                               1
h(z/γ2) = -------------------------------------------------------
            (γ2a1*(z^-1)+b1)(γ2a2*(z^-1)+b2)...(γ2a10*(z^-1)+b10)
      
我们来看第一项 (γ2a1*(z^-1)+b1),它在单位圆上的取值特点,会是这样

| y轴    _
|       | |
|      /   \
|______|   |_____________
|____________________________x轴

即,大多数情况下,值很小,然后会有一个峰起,是h(z)共振峰中的第一个
显然,此γ2就起到了加强共振峰的作用,对非共振峰频域,加强的效果就很小,
对其它因子(如(γ2a2*(z^-1)+b2))的加强,也很小,但影响还是有的,所以会有后置滤波这一说.

而分子γ1,则是对γ2的一个调节.
我们先假设γ1=1,

        y(z)      1
h(z) = ------ = -------
        x(z)      A(z)

y(z) * W(z) = y(z) * A(z) * A(z/γ2)
而y(z) * A(z) = x(z)

x(z)* A(z/γ2) 相当于,用残差去激励了一个共振峰加强的声道系统,就会起到增加音质的作用

那么γ1不等于1的情况,则是起调节γ2作用,简单地说,看下式

γ1 * x + 1
-----------  
γ2 * x + 1

γ1自然能调试γ2的影响

g723于是出现了开头对信号的预处理,以此来加强共振峰



                                                                                    林绍川 于杭州