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

在分析解码后置滤波器时
重找了一些感知加权的资料

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

先来看感知加权滤波器的系统函数(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于是出现了开头对信号的预处理,以此来加强共振峰





你可能感兴趣的:(源码)