Webrtc AGC 算法原理介绍(六)

本文深入探讨WebRTC的自动增益控制(AGC)算法,重点解析`WebRtcAgc_ProcessDigital`函数。内容包括计算近端VAD参数、衰减计算、包络检测、增益计算、门限处理和信号限制等关键步骤,旨在全面理解AGC在不同场景下的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Webrtc AGC 算法原理介绍(六)


零、前言

本系列介绍Webrtc的agc算法。webrtc的agc算法对各种情况作了较为详尽的考虑,而且使用了的定点数的方法来实现,因此内容比较多。尽量在这几篇文章中描述清楚。

一、WebRtcAgc_ProcessDigital

ProcessDigital是AGC的核心函数,无论什么模式都要调用到。现在来解释一下。
该函数8khz的时候处理80个点的数据,16k处理160个点的数据,32k处理低频160个点的数据。每个处理都是10ms。
WebRtcAgc_ProcessDigital流程图1
1、首先计算了近端信号的VAD参数。并且当远端信号超过10帧(100ms)后,使用远端的VAD参数修正近端VAD,具体方法是:
L = 3 4 L n e a r − 1 4 L f a r L=\frac{3}{4}L_{near}-\frac{1}{4}L_{far} L=43Lnear41Lfar
2、接着使用似然比 L L L计算出衰减decay。
D d e c a y = { − 65 , i f L > 1 0 , i f L < 0 − 65 L , e l s e D_{decay}=\left\{\begin{matrix}-65,if L>1\\ 0, if L<0\\ -65L,else\end{matrix}\right. Ddecay=65,ifL>10,ifL<065L,else
如果是adaptive(无论,Analog或者Digital)中,对声音小的情况,对decay修正。这个参数在计算慢包络的时候使用。??
WebRtcAgc_ProcessDigital流程图2
3、计算每1ms的最大能量作为包络env。
4、通过快、慢包络和增益表计算出增益数组gain
这个部分,首先计算了快慢包络。
C f a s t = { − 1000 C f a s t + C f a s t , e v n [ k ] < C f a

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值