Dynamic Range

DRC是一种音频处理技术,用于防止音量过大导致的失真和保护硬件。它包括compressor、limiter、expander和噪声门,通过调整信号动态范围,优化音频质量。compressor通过压缩超过阈值的信号,而expander则提升低于阈值的信号。多带DRC利用Linkwitz-Riley交叉滤波器实现每个频带的独立压缩。
摘要由CSDN通过智能技术生成

DRC

一般而言,DRC是音效处理的最后一个模块,前面的模块虽然完成了音效处理功能,实现了产品想要的效果,但是当声音音量很大的时候,为了避免动态范围过大导致的音频失真,也为了保护硬件,扬声器需要利用DRC进行动态范围控制,以压制大信号,防止出现过载失真。

动态范围控制其实也就是可以自动调节信号的动态范围,即最大值和最小值比值的对数,一般用dB表示。DRC还可以通过噪声门来压制一部分噪声,以避免噪声在增大音量的同时放大,此外还可以优化音频信号使用满幅的动态范围。

一般可以包括三个部分 噪声门,expander和compressor
1.compressor/limiter
当输入信号超过指定的阈值时,对其进行压缩。压缩量由指定的压缩比控制。attack and release times决定了compressor启动或停止压缩的速度; knee width为压缩器增益在阈值附近提供了平滑过渡。最后,可以在compressor的输出端应用补偿增益。这种补偿增益对强峰值和弱峰值的放大程度相等。

compressor的静态压缩特性取决于compression ratio, the threshold and the knee width;
knee分为hard和soft,hard是硬过渡,soft是软过渡。
compressor的attack时间被定义为当信号电平超过阈值时,压缩器的增益从其最终值的10%上升到90%所需的时间(以毫秒为单位)。压缩器的release时间被定义为当信号电平下降到阈值以下时,compressor的增益从其值的90%下降到10%所需的时间(以秒为单位)。以下示例说明了不同attack和release时间的信号包络:
在这里插入图片描述
输入最大电平为0 dB,高于指定的-10 dB阈值。0 dB输入的稳态压缩机输出为-10+10/5=-8 dB。因此,增益为-8 dB。启动时间被定义为当输入电平高于阈值时,或者在这种情况下,从-0.8 dB上升到-7.2 dB时,compressor增益从其最终值的10%上升到90%所需的时间。让我们找到compressor增益分别等于-0.8 dB和-7.2 dB的时间:

 [~,t1] = min(abs(g(1:Fs) + 0.1 * 8));
 [~,t2] = min(abs(g(1:Fs) + 0.9 * 8));
 tAttack = (t2 - t1) / Fs;
 fprintf('Attack time is %d s\n',tAttack)

Attack time is 5.000000e-02 s
然后,输入信号回落到0,在这里没有压缩。释放时间被定义为当输入低于阈值时,增益从其绝对值的90%下降到10%所需的时间,或者在这种情况下,从-7.2dB下降到-0.8dB。让我们找到无压缩级中增益分别等于-7.2dB和-0.8dB的时间:

  [~,t1] = min(abs(g(Fs:end) + 0.9 * 8));
  [~,t2] = min(abs(g(Fs:end) + 0.1 * 8));
  tRelease = (t2 - t1) / Fs;
  fprintf('Release time is %d s\n',tRelease)

Release time is 2.000000e-01 s

其余需要注意的参数Compression ratio:假设hard knee,则ratio是超过操作阈值的信号的输入/输出比。
在这里插入图片描述
对于soft knee,knee width定义如下:
在这里插入图片描述
在这里插入图片描述
Make-up gain 补偿增益补偿压缩过程中的增益损失

系统整体如下:
在这里插入图片描述
算法流程:
在这里插入图片描述
在这里插入图片描述
——matlab Compressor流程
对于limiter 压缩倍数较大的就是limiter,和compressor对matlab而言区别在于如下:
在这里插入图片描述
然后实现的时候正向处理,因此需要lookaheadtime,来留一段缓冲时间<分帧,每帧都需要的>。
对于agc而言可以用反馈式处理,响应更快无时延。
此外,因为limiter主要是处理峰值部分,因此最好可以通过过采样来找到真正的峰值,不然有可能压缩的并不是实际的峰值。
峰值检测也有两种,一种是rms一种是peak
此外,还可能有holdtime参数,保持时间是指当输入电平降至阈值以下时,(负)增益在开始向其稳态值下降之前保持的时间段。
<平缓处理其实也约等于一个滤波器处理。>

2.expander
动态范围扩展,其实就是抬升阈值以上的信号幅度值:
其中各个参数都和compressor相反,即比如attack那就是从0.1-0.9的时间
在这里插入图片描述
knee同理:
在这里插入图片描述
流程略有不同,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如上,注意其中的holdtime部分

3.noisegate
类似compressor,就是压制很低的信号,认为那是噪声,参数都差不多
在这里插入图片描述
在这里插入图片描述
整体流程相对简单

Multiband Dynamic Range Compression

多带drc——Linkwitz-Riley交叉滤波器用于获得整体全通频率响应。然后使用单独的动态范围压缩器对每个频带进行压缩。关键的压缩器特性,compression ratio, the attack and release time, the threshold and the knee width,对于每个频带都是独立可调的。展示了压缩对信号动态范围的影响。
由于Linkwitz-Riley交叉滤波器是由两个巴特沃斯滤波器级联而成的,因此其阶数总是偶数。巴特沃斯滤波器的斜率等于6*N dB/倍频程,其中N是滤波器阶数。当crossoverFilter的CrossoverSlopes属性可被12整除时(即过滤器是偶数顺序的),该对象实现Linkwitz-Riley交叉。否则,该对象实现巴特沃斯交叉,即低通和高通部分分别使用CrossoverSlopes/6阶的单个巴特沃斯滤波器来实现。

——Linkwitz-Riley滤波器是由Siegfried Linkwitz以及Russ Riley两人在1976年设计完成的,主要用于主动式滤波器电路中,例如许多精密的多音路电子分音系统中,当然,音箱的无源分频网络也可以采用。这种滤波器的特点是具有高达四阶的衰减斜率,换句话说,每隔一个八度音阶的频率,声音就会衰减24dB的能量,即衰减斜率为-24dB/Oct(Oct即Octave,一个八度音程的意思)。同时,在整个音频段(20Hz-20kHz),Linkwitz-Riley滤波器具有平坦的相位响应,讯号经过滤波器之后,不会产生严重的相位扭曲。

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值