g723源码详细分析-6-谐波噪声整形

时间:2021-03-20 09:52:21

6 Comp_Pw 谐波噪声成形

过滤讯号中之杂讯的类周期性 --- 这段代码的作用,摘自可能是一位*网友的技术博客

我们来看一下系统函数
P(z) = 1 - b * z^(-L)

其b是一个跟自相关与能量比值有关的系数, L取值大约是基音周期
我们可以大致画出这个系统函数的幅度,取 z=e^(jw)
P(e^(jw)) = 1- b(cos(Lw) - j*sin(Lw))
它的幅度平方为
 ( 1 - b*cos(Lw) )^2 + sin(Lw) ^ 2
= 1 + b^2 - 2b*cos(Lw)
大概会是这样的一个曲线

  |
  |   _____     ______
  |   |    |    |     |
  |---     -----      ----
  |
  -----------------------
 呵呵,没法画真的曲线,大概是这样余弦函数图,周期是 2 * pi / L,读者也可以自行画一画,
我们看到,在基音频率以及倍频处是波谷,像一个梳状滤波器,抑制基音倍频处的能量
可以计算出谷值 (1-b)^2 峰值 (1+b)^2

现在的问题就是如何求 b 与 L
L:
L取值是在基音周期附近进行搜索
(Lp - 3) <= L <= (Lp + 3)  Lp为基音周期
在这个范围内,当 自相关与能量的比值( 我们记它为C )最大时,即是L的取值
为?
采样信号可以认为是纯净语音信号与噪声的叠加
s[n] = s0[n] + N[n]   s0表示纯净的语音信号 N为噪声
做自相关时,因为s0的周期性, s0[n]与 s0[n-L]是强相关的 s0[n]与N[n] 以及 N[n]与N[n-L]是弱相关的
这里还可以理解为自相关成份中,实际还包含了谐波噪声,即s0[n]实际上是纯净的语音加谐波噪声,
宽带的噪声是必然被衰减了
自相关时,必然导致弱相关的项全部被极大的衰减,只保留了强相关的成分,也就是 s0[n]*s0[n-L]
此时的L值就是更准确的基音周期(Lp因为是按120样点算出的基音周期,此时求的是60个样点的)

b:
b的取值是纯净语音信号(即延迟为L的那个自相关)与能量的比值,再乘以0.3125

什么情况下要做谐波噪声去除:
当语音信号的强度与宽带噪之比大于某个阀值时,根据itu标准,
为 (延迟L自相关平方)/(E0 * E[L]) > 0.27
延迟L自相关,可以认为是周期为L的信号成份
也就是说,信号周期关联性大于某个阀值时,就需要做去除谐波噪声操作

7 Filt_Pw
对四个子帧做谐波噪声整形,即用 1-b*z(^-L)进行滤波

 

                                                                         林绍川

                                                                         2011-6-1 于杭州