提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、Dynamic Range Control
  • 二、静态曲线Static curve
    • 1.静态曲线如下图
    • 2.matlab的DRC系统如下图所示:
    • 3. 静态曲线方程
      • 3.1 NT拐点计算
      • 3.2 ET 计算
      • 3.3 CT 计算
      • 3.4 LT计算
    • 4 增益计算
    • 5 Xsc(dB)的计算:
      • 1.Threshold-阈值
      • 2. Ratio 压缩比
      • 3. KneeWidth -拐点宽度
    • 6. Gain Smoothing-增益平滑
      • Gain Smoothing 的attack time, release time如下图所示
  • 三、参考文献

一、Dynamic Range Control

参见matlab:https://ww2.mathworks.cn/help/audio/ug/dynamic-range-control.html
Dynamic range control is the adaptive adjustment of the dynamic range of a signal. The dynamic range of a signal is the logarithmic ratio of maximum to minimum signal amplitude specified in dB.
You can use dynamic range control to:

  • Match an audio signal level to its environment
  • Protect AD converters from overload
  • Optimize information
  • Suppress low-level noise

Types of dynamic range control include:

  • Dynamic range compressor –– Attenuates the volume of loud sounds that
    cross a given threshold. They are often used in recording systems to
    protect hardware and to increase overall loudness.
  • Dynamic range limiter –– A type of compressor that brickwalls sound
    above a given threshold.
  • Dynamic range expander –– Attenuates the volume of quiet sounds below
    a given threshold. They are often used to make quiet sounds even
    quieter.
  • Noise gate –– A type of expander that brickwalls sound below a given
    threshold.
    动态范围控制可以自动调整信号的动态范围;(信号的动态范围是信号的最大幅值与最小幅值比值的对数,使用dB作为单位) 动态范围控制功能:
    a.根据环境匹配音频信号电平;也就是杜比volume leveler的作用;
    b.保护ADC使其不会过载;在广播信号发送时,发送器有峰值限制,超过这个峰值会使得发送器过载。动态范围控制可以压缩原始信号的动态,使发送信号的动态范围满足发送器的要求。在音频领域,将数字音频信号送到DAC之前,音频智能功放算法中的DRC可以实现扬声器振幅保护;
    c.优化信息;也就是使音频信号使用到满幅的动态范围;
    d.压制低电平的噪声;DRC的噪声门有一定的降噪效果;
    动态范围控制的类型
    a.动态范围压缩器(Dynamic range compressor)–减弱超过给定阈值的大声信号的音量;可以保护硬件,增加整体响度;
    b.动态范围限幅器(Dynamic range limiter)–是压缩器的一种,可以限制超过给定阈值的信号;
    c.动态范围扩展器(Dynamic range expander)–减弱低于给定阈值的小声信号的音量;可以使得小信号听起来更加小声;
    d.噪声门(Noise gate)–是扩展器的一种,可以限制低于给定阈值的信号。

二、静态曲线Static curve

1.静态曲线如下图

参见《Digital Audio Signal Processing》第七章:

2.matlab的DRC系统如下图所示:

This tutorial shows how to implement dynamic range control systems using the compressor, expander, limiter, and noiseGate System objects from Audio System Toolbox™. The tutorial also provides an illustrated example of dynamic range limiting at various stages of a dynamic range limiting system.
The diagram depicts a general dynamic range control system.

计算步骤如下:

  • 线性到dB转换:x→Xd B
 xdB=20log10(x).
  • 将dB信号通过静态特性方程式,然后求出差值来进行增益计算: gc=xsc−xdB
  • 随时间推移进行平滑处理:gc→gs
  • 补充增益(仅适用 compressors 和 limiters): gs→gm
  • dB到线性转换:gm→glin
  • 将计算出的增益信号于原始音频信号相乘:y=glin × x

3. 静态曲线方程

3.1 NT拐点计算

NT = -70
NT没有softknee,有holdtime

3.2 ET 计算

expander
Threshold: -10
Ratio: 5
KneeWidth: 0
AttackTime: 0.0500
ReleaseTime: 0.2000
HoldTime: 0.0500
SampleRate: 44100
ET = -45
有softknee,有holdtime

3.3 CT 计算

compressor 具有属性:

     Threshold: -10Ratio: 5KneeWidth: 0AttackTime: 0.0500ReleaseTime: 0.2000
MakeUpGainMode: 'Property'MakeUpGain: 0SampleRate: 44100

CT = -25
有softknee,有MakeUpGain

3.4 LT计算

Threshold (dB) — Operation threshold
–10 (default) | scalar in the range –50 to 0
Knee width (dB) — Transition area in the limiter characteristic
0 (default) | scalar in the range 0 to 20
View static characteristic — Open static characteristic plot of the dynamic range limiter
button
Attack time (s) — Time it takes applied gain to ramp up
0 (default) | scalar in the range 0 to 4
Release time (s) — Time it takes applied gain to ramp down
0.2 (default) | scalar in the range 0 to 4
Make-up gain mode — Make-up gain mode
Property (default) | Auto
Make-up gain (dB) — Applied make-up gain
0 (default) | scalar in the range –10 to 24
Inherit sample rate from input — Specify source of input sample rate
on (default) | off
Input sample rate (Hz) — Specify input sample rate
44100 (default) | positive scalar

L T= -10,
有softknee ,有MakeUpGain

4 增益计算

增益计算单元进行增益信号的初步预估,增益计算单元的核心模块是静态特征,每一种类型的DRC有不同的静态特征,包括了可调的属性参数:
a.阈值threshold–所有的静态特性都有一个阈值,在阈值的一边,输入信号没有被修改,在阈值的另一边,输入信号被压缩、扩展以及限幅;
b.压缩比率Ratio–扩展器和压缩器的静态特征模块在计算增益时依赖用户提供的输入/输出的压缩比;
c.kneewidth-- 扩展器Expanders、压缩器compressors以及限幅器limiters的静态特征模块可以调整拐点的宽度;拐点宽度包含在阈值中,拐点宽度越大,阈值附近的过渡越平滑。如果拐点没有提供过度,则是硬拐点;如果拐点附近有大于0的拐点宽度值,则是软拐点。noiseGate只有硬拐点;
d.在计算信号增益要进行电平检测,电平检测使用递归一阶滤波器获取原始信号的电平;有基于Peak和基于RMS两种方法;Peak是生成信号电平的峰值包络,RMS是计算前N个样本的RMS值作为当前样本的电平。电平检测的作用是对于一个在原点波动的信号,DRC关心的是信号的峰值或者RMS值,而不关心信号的振荡情况;
e.Hold time 是应用增益之前的延迟时间;
f.电平检测一阶递归滤波器,使用Attack time或者release time作为滤波器的系数进行Gain Smoothing-增益平滑控制。

5 Xsc(dB)的计算:

1.Threshold-阈值

Expanders, compressors, limiters,noiseGate都有阈值

2. Ratio 压缩比

3. KneeWidth -拐点宽度


Expanders, compressors, 和 limiters可以调整静态特征的拐点宽度,当soft knee width 为0就变成硬拐点(Hard Knee)
noiseGate只有硬拐点(Hard Knee)

6. Gain Smoothing-增益平滑

所有动态范围控制器都提供随时间变化的增益平滑。增益平滑会减少所施加增益的急剧跳变,这可能会导致伪影和不自然的声音。您可以将增益平滑概念化为在增益信号中增加阻抗。

expander 和 noiseGate使用有相同的平滑方程,因为noise gate是 expander.的一个类型。
limiter和compressor使用有相同的平滑方程,因为 limiter是 compressor.的一个类型。

增益平滑的类型由attack time, release time和 hold time的组合指定。attack time, release time对应于增益信号从其最终值的10%变为90%所花费的时间。Hold time 是应用增益之前的延迟时间
具体增益平滑方程如下:
expander and noiseGate平滑方程:

其中αA 和 αR 有下式得到::

  • k 是指定的hold time的换算的采样点数
  • CA , CR 是 attack , release的采样点数

compressor and limiter平滑方程:

αA 和 αR 参见expander and noiseGate获取方程

Gain Smoothing 的attack time, release time如下图所示

三、参考文献

https://ww2.mathworks.cn/help/audio/ug/dynamic-range-control.html
(2008.2nd_edition)Digital Audio Signal Processing - Zolzer.pdf
参考网址:
https://blog.csdn.net/houxiaoni01/article/details/112790209
https://blog.csdn.net/book_bbyuan/article/details/72458688
https://www.woaifaming.net/doc/68750.html
https://blog.csdn.net/cyz_2014/article/details/84718528

浅议-动态范围控制(DRC)相关推荐

  1. 原创 | 浅议个人数据开发利用新范式

    在所有数据资产类型中,个人数据的开发利用潜在价值巨大.个人数据在过去几十年里,已经得到前所未有的开发和利用,推动了经济增长和社会发展.但与此同时,也逐渐引发越来越凸出的经济.社会和伦理道德问题. Ap ...

  2. 合理运用计算机技术学校,浅议在学校管理中计算机技术合理应用

    浅议在学校管理中计算机技术合理应用 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 浅议在学校管理中计算机技术合理应用[摘 要]目前,随 ...

  3. 网购使用的计算机网络技术,浅议计算机网络技术的应用与发展

    于卓鑫 摘要:在社会日益进步的背景下,计算机发展迅速,而当前计算机领域的核心技术是计算机网络技术,具备共享资源的优势,逐渐普及到人们的生活以及工作中.伴随着人们生活质量的日益提升,其对计算机有更多的要 ...

  4. 计算机在生活中的应用论文2000字,浅议计算机在生活中的应用论文(2)

    浅议计算机在生活中的应用论文篇二 <浅谈计算机网络在生活中的应用> 摘要:进入21世纪科技高速发展,特别是计算机网络的进一步发展,计算机的应用更为普遍,计算机网络的应用已经渗透到社会的各个 ...

  5. 计算机在临床专业中的应用,浅议计算机在医学中的应用

    浅议计算机在医学中的应用 2014/6/19 11:56:16   浏览469次 作者:王玉华 摘 要:计算机在现代社会得到了快速的发展,而如今我们不仅用计算机来进行复杂的计算,它已经渗透到我们的日常 ...

  6. 浅议.NET遗留应用改造

    浅议.NET遗留应用改造 TLDR:本文介绍了遗留应用改造中的一些常见问题,并对改造所能开展的目标.原则.策略进行了概述. 一.背景概述 1.概述 或许仅"遗留应用"这个标题就比较 ...

  7. 原创 | 浅议数据资产市场

    培育和发展数据要素市场已经成为当前和今后一段时期的重要课题.针对数据资产确权.定价以及数据市场规则.制度以及新型数据市场基础设施的研究也非常活跃. 本文拟从微观的视角,就数据资产如何形成.交易以及数据 ...

  8. 浅议DAS、NAS、SAN三种存储架构

    浅议DAS.NAS.SAN三种存储架构 目前磁盘存储市场上,存储分类(如下表一)根据服务器类型分为:封闭系统的存储和开放系统的存储,封闭系统主要指大型机,AS400等服务器,开放系统指基于包括Wind ...

  9. [CS101] 转载:浅议Fibonacci(斐波纳契)数列求解

    原文转载自林健随笔的"浅议Fibonacci(斐波纳契)数列求解" Fibonacci 数列 描述了动物繁殖数量.植物花序变化等自然规律.作为一个经典的数学问题,Fibonacci ...

  10. 浅议C#客户端和服务端通信的几种方法:Rest和GRPC和其他

    本文来自:https://michaelscodingspot.com/rest-vs-grpc-for-asp-net/ 浅议C#客户端和服务端通信的几种方法:Rest和GRPC 在C#客户端和C# ...

最新文章

  1. Golang用body来get或post数据
  2. 2011年使用天正建筑8.0注册版(附注册机)
  3. python算法很难吗_python 机器学习难吗?
  4. CardView的那点事儿
  5. python中的loop啥意思_python怎么进行loop
  6. python3连接mysql使用mysqldb_Python3 连接Mysql数据库
  7. java邮箱地址正则表达式_Java 中用正则表达式修改 Email 地址
  8. 第二阶段团队冲刺(十)
  9. 清空本地_PyQt5播放实时视频流或本地视频文件
  10. python 接口测试 如何写配置文件_python接口自动化之ConfigParser配置文件的使用详解...
  11. eclipse生成ant build.xml打war包
  12. 极客大学架构师训练营--食堂就餐系统架构设计⽂档 -- 第一次作业
  13. VC2013 ArcGIS Engine 10.0开发环境搭建
  14. 计算机与网络时间同步,电脑时间同步,小编教你怎么让电脑时间和网络时间同步...
  15. PHP 编写“九九乘法表”
  16. CVE: 2014-6271 Bash Specially-crafted Environment Variables Code Injection Vulnerability Analysis
  17. 计算机一个字节是几位,电脑的一个字节等于多少位??
  18. 远离喧嚣,拥抱自然,洗尽铅华
  19. 基于SpringBOOT的订餐系统
  20. django - html模板

热门文章

  1. 词典GoldenDict
  2. C/C++快速读写磁盘数据的方法
  3. 《东周列国志》第二十九回 晋惠公大诛群臣 管夷吾病榻论相
  4. app开发都有哪些基本的开发语言选择?
  5. web安全:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧
  6. springboot无法打开 jsp 页面变成下载解决办法
  7. Excel:删除一列中的重复值
  8. 不仅会编程还要会英语(博主英语小笔记)1.1名词
  9. 学生表mysql查询语句
  10. java中if条件函数怎么用_if函数,多个条件怎么使用