webrtc ns 降噪之粉红噪声参数推导

webrtc中降噪中,前50帧需要进行简单噪声估计,使用白噪声和粉红噪声模型估算。

首先我们 复习 有色噪声(包含白噪声)的一般模型:

  • S(f) 是频率 f 处的功率谱密度。
  • f是频率。
  • α 是一个频谱指数,通常在1左右。

写成一般形式是 log(S) = - alpha* log (f) + log(C)

这两个参数是我们需要估算的, alpha 是零的时候退化成白噪声

再看下面的webrtc 源代码 ns_core.c

源代码中的 parametricNoise = parametric_num / i ^ parametric_exp

其实就是 S = C / f ^alpha , 其中f 和i 有个比率关系 f = i * fs/N , 常数比例,你可以认为,估算的时候全部塞到 C里面了

下面我们开始估算 self->pinkNoiseNumerator 和 self->pinkNoiseExp

需要用到的有:sum_log_i 和 sum_log_magn 这几个表达式比较难看,我们还是用x和y来表示

x = log(i) , y = log(magn)

现在得到了一组 y 和 x 的关系 上面说到了 log(magn) 和 log(i) 是线性关系

也就是 y = k * x + b, 要估算 k(斜率) 和 b(截距)

立刻用 GPT 调出来 一元线性回归的 方程 参数估计:

现在计算beta0,也就是截距:把beta1带入到上面,得到

原来的分母是n,

好了现在总结如下:

斜率:

截距:

现在带着你,手拉手的和代码对齐!

这个用在分母上,所有有个相反数

一句话总结:原来使用了线性回归(最小二乘)来拟合参数啊!

粉红噪声的意义更大,因为笔者认为,大多数场合下,不会刚好满足白噪声的条件

所以大多数是按照下面那个分支来的, 更通用,(包含白噪声的情况)

另外,再补充一下:一般有色噪声的介绍:

2.5: Noise Modeling - White, Pink, and Brown Noise, Pops and Crackles - Engineering LibreTexts

白噪声本模型能搞定,OK

粉红:

恰好是 1/f 的,(狭义or严格的粉红是正比 1/f 系数是1)

褐噪

看到了么?beta=2 是 褐噪,也是可以handle的

下面是蓝噪

蓝色噪声,beta 是负数,其实我们也可以满足,对吗?

下面是紫噪

紫色噪声,也是可以满足的,对吗?

哇,我们分析了几乎所有的color noise,模型都是可以满足的,那么其实 webrtc种的pinknoise 参数估计应该叫color noise 估计,对吗? 评论区留下你的观点。

红,粉红,白,褐色,蓝色,紫色

2 1 0 2 -1 -2

相关推荐
kkk_皮蛋1 小时前
WebRTC 是什么?能做什么?(概览篇)
webrtc
kkk_皮蛋1 天前
WebRTC 中的临界锁实现:从 CritScope 到 RAII 机制的深度解析
webrtc·策略模式
嘻哈baby1 天前
WebRTC实时通信原理与P2P连接实战
网络协议·webrtc·p2p
好游科技1 天前
使用WebRTC开发直播系统与音视频语聊房实践指南
音视频·webrtc·im即时通讯·社交软件·私有化部署im即时通讯·社交app
好游科技2 天前
语音语聊系统开发深度解析:WebRTC与AI降噪技术如何重塑
人工智能·webrtc·交友·im即时通讯·社交软件·社交语音视频软件
福大大架构师每日一题2 天前
pion/webrtc v4.1.7 版本更新详解
webrtc
kkk_皮蛋2 天前
深入理解 WebRTC 视频质量降级机制
网络·音视频·webrtc
kkk_皮蛋2 天前
深入理解 WebRTC 临界锁实现与 C++ RAII 机制
开发语言·c++·webrtc
好游科技3 天前
使用WebRTC开发直播系统源码与音视频语聊房实践指南
音视频·webrtc·im即时通讯·社交软件·社交语音视频软件
kkk_皮蛋3 天前
WebRTC 视频编码核心技术解析:从 GOP 结构到时间戳管理
音视频·webrtc