动态范围控制(DRC)简介

动态范围控制(DRC)在音频信号处理中用于压缩和放大信号,常见于助听器和音频设备。DRC包括动态范围压缩器、限幅器和扩展器等,用于匹配音频电平、保护硬件、优化信息和抑制噪声。DRC的实现涉及增益计算、平滑及应用。增益平滑通过攻击时间、释放时间和保持时间控制增益信号的过渡。

参考自:https://blog.youkuaiyun.com/cyz_2014/article/details/84718528

1、DRC功能介绍

Dynamic Range Control(DRC)动态范围控制提供压缩和放大能力,可以使声音听起来更柔和或更大声,即一种信号幅度调节方式。

DRC广泛应用于音频信号处理领域,例如助听器中最常见的宽动态范围压缩方法(Wide Dynamic Range Compression,WDRC)、音频信号处理中最常用的自动增益控制(Automatic Gain Control,AGC)方法等。动态范围控制,顾名思义,是将输入音频信号的动态范围映射到指定的动态范围。通常映射后的动态范围小于映射前的动态范围,因此称之为动态范围压缩。音频信号可以进行整体的动态范围控制;也可以划分为若干子带分别进行动态范围控制。

一般这里提及的都是数字信号处理里面的概念,对应相类似的模拟信号处理的有ALC(比如SSM2167)或者AGC。当然都是增益调整的模块,就笔者感觉而言,DRC(或者DRP)侧重于从数字域上对增益进行有选择、有目的地调整,以保证最大信号有合适的headroom,中间信号得到合适的amplify,小信号或者底噪被cutoff掉

1.1 动态范围控制可以做的事情

  • 根据环境匹配音频信号电平:也就是杜比volume leveler的作用;
  • 保护ADC使其不会过载:在广播信号发送时,发送器有峰值限制,超过这个峰值会使得发送器过载。动态范围控制可以压缩原始信号的动态,使发送信号的动态范围满足发送器的要求。在音频领域,将数字音频信号送到DAC之前,音频智能功放算法中的DRC可以实现扬声器振幅保护;
  • 优化信息:也就是使音频信号使用到满幅的动态范围;
  • 压制低电平的噪声:DRC的噪声门有一定的降噪效果;

1.2 动态范围控制的类型

  • 动态范围压缩器(Dynamic range compressor):减弱超过给定阈值的大声信号的音量;可以保护硬件,增加整体响度;
  • 动态范围限幅器(Dynamic range limiter):是压缩器的一种,可以限制超过给定阈值的信号;
  • 动态范围扩展器(Dynamic range expander):减弱低于给定阈值的小声信号的音量;可以使得小信号听起来更加小声
  • 噪声门(Noise gate):是扩展器的一种,可以限制低于给定阈值的信号。

2、DRC功能实现

下面是matlab官网给出的DRC block图:
在这里插入图片描述
在这里插入图片描述

  • 将原始信号从线性值转换为dB值: x->xdB,所有的DRC系统使用的增益信号都是用dB值进行处理。xdB = 20*log10(x)
  • 增益计算: 通过将dB信号传递到静态特征方程(DRC静态曲线),获取差值gc=xsc-xdB
  • 增益平滑: gc->gs;使用attack time、release time以及hold time作为系数对信号进行平滑。也就是对于台阶信号,增益信号并不是台阶的,使用指数或者对数函数进行平滑过渡。Attack time和release time为对应增益信号从最终值的10%到90%所花费的时间。Hold time是在增益被施加之前的延时周期。为什么会有hold time?因为即使使用很短的attack time,limiter仍然会出现超调量,这可以在增益平滑中使用一个很短的时延来解决,例如300微秒。增益平滑使用的是一阶递归滤波器:gs(n) = (1 − k) · gs(n − 1) + k · gc(n), k=AttackTime,ReleaseTime;
  • 添加make-up gain(对于压缩器和限幅器): gs->gm
  • dB值到线性值的转换: gm->glin
  • 在原始音频信号中应用计算出来的增益信号: y=glin * x

https://cn.mathworks.com/help/audio/examples/multiband-dynamic-range-compression.html
https://cn.mathworks.com/help/audio/ug/dynamic-range-control.html

名词解释:
增益信号:在DRC中要确定对离散信号的每一个样本使用多少增益,也就是给每一个样本值分别乘以一个系数,这个系数就是增益,这个增益序列就是增益信号;增益信号也叫做DRC的控制信号。
RMS:root mean square 均方根。

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

  • 底噪:Cutoff,attenuation
  • 中等幅度信号:Expander
  • 幅度较大,防止削顶的:Limiter

从教科书的用意来讲,它的概念还是很复杂的,下面这幅图详细描述了 Static curve的不同的Gate:
在这里插入图片描述
上图用到的几个阈值做下说明:

  • LT:Limiter threshold
  • CT:Compressor threshold
  • ET:Expander threshold
  • NT:Noise Gate

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

经过上面的描述,一个DRC应该初具规模了。不过,实际上DRC作用时除了幅度变化方面外,还得考虑时间问题呢。

attack和release时间就是专门做这个的,一般来说,作用一个很大的Gain,是需要时间慢慢加上去的,作用一个较小的G(衰减),也是需要慢慢减下去的,这样能保证平稳过度。

Attack / Release:

代表效果器开始作用的起始时间和停止作用的释放时间。关于这两个概念,
在这里插入图片描述
图1
在这里插入图片描述
图2

图 1 和图 2 分别显示的是音频被压缩前和被压缩后的图示画面。在图2 中,我们发现,音频并不是一开始就被压缩的,而是有一个明显的弧度。这个弧度所用的时间就是 Attack(起始时间)。同理,在音频结束压缩之后,也不是马上就恢复到原有的音量的,也有一个弧度。这个弧度所用的时间就是 Release(释放时间)。通过这两个时间的设定,我们可以控制效果器作用的缓冲时间,如果没有这段时间,声音就会听上去不自然。在效果器中,Attack 和 Release 这两个选项的单位通常都是毫秒。

增益平滑举例:

Examine a trivial case of dynamic range compression for a two-step input signal. In this example, the compressor has a threshold of -10 dB, a compression ratio of 5, and a hard knee.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态范围压缩(Dynamic Range Compression, DRC)是音频信号处理中的一种关键技术,其核心目标是减少音频信号的动态范围,即压缩音频中最响亮部分和最安静部分之间的差异。该技术广泛应用于广播、音乐制作、语音通信、助听设备等多个领域,以提升音频的可听性、一致性和传输效率。 ### 技术原理 动态范围压缩的基本原理是通过检测音频信号的瞬时幅度,并根据设定的阈值(Threshold)对超过该阈值的信号进行衰减。压缩过程通常涉及以下几个关键参数: - **阈值(Threshold)**:设定一个电平值,只有当输入信号超过该值时,压缩器才开始工作。 - **压缩比(Ratio)**:表示输入信号超过阈值时输出信号增长的比率。例如,压缩比为4:1意味着输入增加4 dB,输出只增加1 dB。 - **启动时间(Attack Time)**:压缩器开始对信号进行压缩所需的时间,通常以毫秒为单位。 - **释放时间(Release Time)**:当信号低于阈值后,压缩器恢复到未压缩状态所需的时间。 - **增益补偿(Make-up Gain)**:在压缩后提升整体音量以保持感知响度。 动态范围压缩本质上是一种非线性增益控制过程,其数学表达可表示为: ```math y(t) = G(x(t)) \cdot x(t) ``` 其中 $ x(t) $ 是输入信号,$ y(t) $ 是输出信号,$ G(x(t)) $ 是根据输入信号幅度动态调整的增益函数。 ### 应用场景 动态范围压缩技术在多个音频相关领域中具有广泛应用: 1. **音乐制作与混音**:用于平衡不同乐器或人声之间的音量差异,增强整体响度并提升音乐的紧凑感[^1]。 2. **广播与电视音频**:确保听众在不同节目内容下获得一致的听感体验,避免因音量突变造成不适。 3. **语音通信系统**:如 VoIP、手机通话等,DRC有助于提高语音清晰度,特别是在背景噪声较大的环境中。 4. **助听器设备**:帮助听力受损者更好地感知声音细节,自动调整不同频率的增益以适应个体听力曲线。 5. **数字音频编码**:如在 MP3、AAC 等压缩编码中,DRC 可用于控制比特率分配,提升听觉感知质量。 ### 实现方法 动态范围压缩可以在模拟电路和数字信号处理系统中实现。现代音频系统中主要采用数字实现方式,具有更高的灵活性和可控性。 #### 模拟实现 早期的动态范围压缩通过模拟电路实现,例如使用电压控制放大器(VCA)或光学压缩器(Optical Compressor)。这些方法依赖于硬件组件的特性,调整参数较为复杂,且灵活性较低。 #### 数字实现 数字实现通常基于软件算法,使用浮点或定点运算处理音频信号。常见的实现步骤包括: 1. **包络检测**:提取音频信号的瞬时幅度或 RMS 值,用于判断是否超过阈值。 2. **增益计算**:根据压缩比、阈值等参数计算当前所需的增益衰减。 3. **增益平滑**:通过滤波器对增益进行时间上的平滑处理,避免突变造成的“泵浦效应”(Pumping)。 4. **应用增益**:将计算出的增益乘以原始信号,得到压缩后的输出。 以下是一个简单的数字压缩器的伪代码示例: ```python def apply_compression(signal, threshold, ratio, attack_time, release_time): envelope = compute_envelope(signal) # 提取信号包络 gain = calculate_gain(envelope, threshold, ratio) # 根据阈值和压缩比计算增益 smoothed_gain = smooth_gain(gain, attack_time, release_time) # 平滑增益 compressed_signal = signal * smoothed_gain # 应用增益 return compressed_signal ``` 在实际应用中,还需考虑多段压缩(Multiband Compression),即对不同频率范围分别进行压缩,以实现更精细的控制
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值