动态范围规划(调整)Dynamic Range Control的一些心得(二)


上次基本上提到的动态范围调整的一些基本概念,模块图等,这次继续说它的原理。

如果简单的说一个DRC,应该很快就可以说完,但随着分析的深入,如果考虑 soft knee,attack time,release time,RMS peak detect

这些细节问题,DRC就变得一个较为复杂的事情了.....

不过相对于音频算法的其他模块,AEC,NR来讲,这个算是最简单模块了,因为至少它处理的还只是 线性


接着上次也提到了,DRC的增益调整基本上是三段:对底噪,中等幅度信号,幅度较大的信号的三段不同的处理,比如:

底噪~Cutoff,attenuation

中等幅度信号:Expander

幅度较大,防止削顶的:Limiter


从教科书的用意来讲,它的概念还是很复杂的,下面这种图详细描述了 Static curve的不同的 Gate

左图: OutPut level vs Input level ,右图:Weighting level vs input level ,X轴Y轴的dB可以简单的理解为 dBFs


上图用到的几个阈值做下说明

LT~ Limiter threshold

CT~Compressor threshold

ET~ Expander threshold

NT~Noise Gate


如果从实际使用角度出发,所以我觉得一个合适的DRC三段就可以了,不能太复杂,用于语音信号的典型的一个DRC如下:



稍微复杂的DRC要求拐点部分能平滑过渡。。。所以上面描述的只能称之为 Hard Knee 硬拐点

matlab (https://cn.mathworks.com/help/audio/ug/dynamic-range-control.html) 官网给出这个可以参考


估计大家看到这也就明白了,用一个二次曲线去连接两端的直线。连接是有要求的,

1、连接两个线段需要光滑链接

2、需要连接点处导数也一致


显然对于noise gate那端的曲线链接方式,自己都可以推导出来是:


按照这两个公式可以写出对应的代码,我们将soft和hard knee的两个图叠在一起: 下图是W=6的情况



Soft和hard knee的问题解决下,下一次再讨论一下 attack 和 release的问题。


这里面补充几个主流音频分析软件的DRC,GUI让大家感受下:

AuditionDRC


AudacityDRC.png


GoldWaveDRC.png




你可能感兴趣的:(动态范围规划(调整)Dynamic Range Control的一些心得(二))