浅谈语音增强中的自动增益控制-AGC

1,730 阅读5分钟

浅谈语音增强中的自动增益控制-AGC

自动增益控制(Automatic Gain Control, AGC)是一种用于语音信号处理和通信系统中的技术,其目的是保持信号的输出电平在一个恒定的范围内,尽管输入信号的强度可能会有所变化。AGC在许多应用中非常重要,例如无线电通信、电话系统和音频处理。下面我们详细介绍AGC的原理,并给出相关的数学公式。

AGC的基本原理

70e2bbd96b74b315e55fe0b199edba0.jpg

  • 红色代表经 AGC 调整后的电平曲线,蓝色代表未经 AGC 调整的源信号电平曲线。

  • 当源输入信号电平大于最小电平阈值但小于参考电平时, AGC 启动并对源信号自动提高增益至目标电平。

  • 当源信号电平小于最小电平阈值, AGC 关闭,从而防止 AGC 将噪声电平放大输出。

  • 当源信号电平大于最小电平阈值,并大于参考电平时, AGC 启动并自动衰减输入信号增益至参考电平。

通过上述方案实现对输入信号的自动增益控制,并且在输出端维持一个相对恒定的音量。

AGC系统的基本原理是通过自动调整放大器的增益,使得输出信号的平均电平保持恒定。其基本组成包括:

  1. 放大器:用于放大输入信号。
  2. 检测器:用于检测信号的平均电平或峰值电平。
  3. 控制电路:根据检测器的输出调整放大器的增益。

AGC系统的工作流程

  1. 输入信号 x(t)x(t) 被送入放大器。

  2. 放大器 根据当前的增益 G(t)G(t) 对信号进行放大,输出信号为 y(t)=G(t)x(t)y(t) = G(t) \cdot x(t)

  3. 检测器 对输出信号 y(t)y(t) 进行检测,得到信号的电平 L(t)L(t)

  4. 控制电路 比较检测到的电平 L(t)L(t) 与预设的参考电平 LrefL_{\text{ref}},生成一个误差信号

    e(t)=LrefL(t)e(t) = L_{\text{ref}} - L(t)

  5. 控制电路 根据误差信号 e(t)e(t) 调整放大器的增益 G(t)G(t),以使 L(t)L(t) 接近 LrefL_{\text{ref}}

增益控制方程

首先,放大器的输出信号 y(t)y(t) 可以表示为输入信号 x(t)x(t) 与当前增益 G(t)G(t) 的乘积:

y(t)=G(t)x(t)y(t) = G(t) \cdot x(t)

输出信号的电平 L(t)L(t) 通常可以表示为y(t)y(t) 的某种函数,例如均方根值(RMS)或峰值:

L(t)=f(y(t))L(t) = f(y(t))

误差信号 e(t)e(t)是参考电平 LrefL_{\text{ref}} 与当前电平 L(t)L(t) 之间的差值:

e(t)=LrefL(t)e(t) = L_{\text{ref}} - L(t)

控制电路的增益调整

控制电路根据误差信号 e(t)e(t) 来调整增益 G(t)G(t)。一种常见的控制策略是使用比例积分(PI)控制器,增益调整公式如下:

G(t)=G(t1)+Kpe(t)+Kie(t)dtG(t)=G(t−1)+Kp​⋅e(t)+Ki​∫e(t)dt

其中:

  • KpK_p:比例增益
  • KiK_i:积分增益

WebRTC中的AGC策略

在WebRTC(Web Real-Time Communication)中,增益控制是一个重要的技术,用于调节音频信号的强度。WebRTC主要使用以下三种增益控制策略:

  1. 固定数字增益策略
  2. 自适应模拟增益策略
  3. 自适应数字增益策略

1. 固定数字增益策略

固定数字增益策略是最简单的一种增益控制方法。在这种策略中,增益值是固定的,并且在整个通信过程中保持不变。

原理

  • 固定增益:在音频信号传输前,应用一个固定的增益值。这个增益值通常在系统初始化时设定,并且在整个会话过程中不会改变。

    如果输入信号为 x(n)x(n),固定增益值为 GG,则输出信号 y(n)y(n) 为: y(n)=Gx(n)y(n) = G \cdot x(n)

  • 优点:实现简单,计算负担小。

  • 缺点:不能动态适应输入信号的变化,可能在输入信号变化较大时导致音量过大或过小。

2. 自适应模拟增益策略

自适应模拟增益策略是一种动态调整增益的策略,通过调节模拟信号的增益来适应输入信号的变化。

原理

  • 模拟增益调节:使用模拟电路(例如运算放大器)来调整输入信号的增益。增益值根据输入信号的强度动态调整,以保持输出信号的电平在一个期望的范围内。

  • 反馈控制:系统监测输出信号的电平,并根据反馈来调节增益。

    假设输入信号为 x(t)x(t),当前增益为 G(t)G(t),输出信号为 y(t)y(t)。反馈控制方程可以表示为:

    y(t)=G(t)x(t)y(t) = G(t) \cdot x(t)

    增益 G(t)G(t) 的调整根据输出信号的电平 L(t)L(t) 和参考电平 LrefL_{\text{ref}}的差值:

    G(t+1)=G(t)+K(LrefL(t))G(t+1) = G(t) + K \cdot (L_{\text{ref}} - L(t)) 其中,KK 是一个调整系数。

  • 优点:能够快速响应输入信号的变化,保持输出信号电平稳定。

  • 缺点:依赖于硬件实现,复杂度较高,且在某些情况下可能会引入噪声。

3. 自适应数字增益策略

自适应数字增益策略通过数字信号处理(DSP)技术来动态调整增益。这种方法在软件中实现,利用算法对信号进行处理和调整。

原理

  • 数字增益调节:在数字信号处理阶段,通过软件算法对音频信号进行增益调整。
  • 动态适应:算法根据输入信号的变化实时调整增益,以保持输出信号的电平稳定。
  • 优点:实现灵活,易于在不同系统中移植,能够精确控制增益。
  • 缺点:可能需要较高的计算资源,延迟略高于模拟增益调节。

数学表示

输入信号 x[n]x[n],当前增益 G[n]G[n],输出信号 y[n]y[n]。增益控制算法基于输入信号和输出信号的电平调整增益:

y[n]=G[n]x[n]y[n] = G[n] \cdot x[n]

增益 G[n]G[n] 的调整根据输出信号的电平 L[n]L[n] 和参考电平 LrefL_{\text{ref}} 的差值:

G[n+1]=G[n]+Kp(LrefL[n])+Kik=0n(LrefL[k])G[n+1] = G[n] + K_p \cdot (L_{\text{ref}} - L[n]) + K_i \sum_{k=0}^{n} (L_{\text{ref}} - L[k])

其中,KpK_p 是比例增益,KiK_i 是积分增益。