Dynamic range compression (RMS Limit)

2023-10-09 10:10

本文主要是介绍Dynamic range compression (RMS Limit),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Dynamic range compression (RMS Limit)

    • Overview
    • Limiting
    • Algorithm
    • Program

Overview

  • 背景 : 人类的听感动态范围[能承受的最大响度和能感受的最安静声音响度的范围可达100万:1(即106倍)] 达120dB。扩声系统声音重放的动态范围由于受电子设备的限制,远比人耳的动态范围小很多。最低声音的响度受系统中不相关噪声的限制,使小的声音信号淹没在噪声中而无法听到;最大声音的响度受信号削波失真,而且信号削波后产生大量谐波,损坏扬声器单元(尤其是高音扬声器)。为此,在控制信号动态范围中,音量动态平衡器得到了广泛的应用。简单地说,它是一种限制音频信号动态范围的电子装置,把安静的小信号变得更响,把高幅度的尖峰信号变得更小些,并且不产生信号削波,保护扬声器和功放免受冲击和损坏
  • 动态范围压缩特点:(1) 限制了音乐信号中极大的峰值信号,保护扬声器系统和功放系统免受损坏;(2) 可获得更大的声音增益,因为压低了信号峰值,可使节目信号中的其他幅度较小的信号得到充分的提升;(3) 使音频中的小信号不会落到调音台的噪声中去,提高了节目信号的信噪比;(4) 如果这些装置中的四个基本参数(门槛电平、压缩比、动作时间和释放时间) 调整得不适当时,会出现“泵浦声”、“呼吸声”或根本没法对信号的动态范围进行控制。

Limiting

  • 不同的参数压缩的理论效果图如下
    Limit Figure
  • 实际调试的效果图如下
    RMS_effect
    在这里插入图片描述

Algorithm

  • 一阶滞后滤波算法公式:S(n) = αS(n-1) + (1 - α)G;

  • 压缩时间根据α的大小变化,α最小可以设置成1,这样压缩时间为0;

  • 原理图示如下:

  • 坐标图在这里插入图片描述

  • Root Mean Square R M S = 1 n x 1 2 + x 2 2 + . . . x n 2 2 RMS=\sqrt[2]{{\frac1n}{x_1^2+x_2^2+...x_n^2}} RMS=2n1x12+x22+...xn2
    This caculation is used to get a mean value over a buffer of 512 frames. A frame is
    defined as one float per channel of sound. That can later be used to get a smoother
    compression.

  • Gain X d B = 20 ⋅ log ⁡ 10 ( R M S ) X_{dB} = 20 · \log_{10}(RMS) XdB=20log10(RMS)
    Using the RMS result, it can be converted to the logarithmic plane,it have soft knee.
    X s c = { X d B X d B < ( T − W 2 ) X d B + ( 1 R − 1 ) ( X d B − T + W 2 ) 2 2 W ( T − W 2 ) ≤ X d B < ( T + W 2 ) T + X d B − T R X d B > ( T + W 2 ) X_{sc}=\left\{ \begin{array}{rcl} X_{dB} & & {X_{dB} < (T - \frac W2)}\\ X_{dB} +\frac{(\frac1R-1)(X_{dB}-T+\frac W2)^2}{2W} & & {(T - \frac W2) \leq X_{dB} < (T + \frac W2)}\\ T +\frac{X_{dB}-T}{R} & & {X_{dB} >(T + \frac W2)} \end{array} \right. Xsc=XdBXdB

这篇关于Dynamic range compression (RMS Limit)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/172115

相关文章

RMSE 和 RMS 介绍

RMSE(Root Mean Square Error)和 RMS(Root Mean Square)都是衡量误差或数据变动的统计量。它们在数据分析、机器学习和统计中应用广泛。以下是它们的详细介绍: 1. RMSE(均方根误差) 定义: RMSE 是衡量预测值与实际值之间误差的标准统计量。它是预测误差的平方的均值的平方根。 计算公式: 用途: 评估模型精度:用于衡量回归模型或预测模

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes 优势 1、构建了一个用于监督原始视频去噪的基准数据集。为了多次捕捉瞬间,我们手动为对象s创建运动。在高ISO模式下捕获每一时刻的噪声帧,并通过对多个噪声帧进行平均得到相应的干净帧。 2、有效的原始视频去噪网络(RViDeNet),通过探

RMS调度详解

1.RMS调度简介 任务按单调速率优先级分配(RMPA)的调度算法,称为单调速率调度(RMS)。RMPA是指任务的优先级按任务周期T来分配。它根据任务的执行周期的长短来决定调度优先级,那些具有小的执行周期的任务具有较高的优先级,周期长的任务优先级低。 2.RMS调度实现介绍 SylixOS目前关于RMS调度分为创建、删除、调度三个部分组成。创建和删除就不予介绍。重点关注下调度算法的实现。调度

MySql 1264 - Out of range value for column 异常

前段时间操作数据库,本是一个很简单的修改语句,却报了  1264 - Out of range value for column字段类型官网  当时一看懵逼了,网上很多都说是配置的问题,需要修改my.ini文件,这个方式我没有试过,我想肯定还有其它方法,经过慢慢排 查发现表里的字段为 decimal(10,3) ,这说明小数点前只有7位,保留了3位小数点,而值在小数点前却有8位,这就导致了错误

【matlab 求极限】limit函数求极限

syms x;y1=(4*x^3-2*x^2+x)/(3*x^2+2*x);limit(y1,x,0) >> syms x;y1=(4*x^3-2*x^2+x)/(3*x^2+2*x);limit(y1,x,0)ans =1/2>>

报错:Reached the max session limit(DM8 达梦数据库)

报错:Reached the max session limit - - DM8 达梦数据库 1 环境介绍2 数据库启动SYSTEM IS READY后面日志3 数据库刚启动日志4 达梦数据库学习使用列表 1 环境介绍 某项目无法连接数据库,报错:超过最大会话数限制 , 检查 dmdba ulimit -a openfiles 已改检查 dm.ini 其中 MAX_SESSION

【硬刚ES】ES基础(十三)Dynamic Template和Index Template

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的ES部分补充。

ON_COMMAND_RANGE 和 ON_UPDATE_COMMAND_UI_RANGE

 ON_COMMAND_RANGE 和 ON_UPDATE_COMMAND_UI_RANGE 可以影射ID连续的Toolbar/Menu ID。 ON_COMMAND_RANGE影射的消息响应函数需要一个参数UINT表明是哪一个消息, afx_msg void OnZoom(UINT nID); 而ON_UPDATE_COMMAND_UI_RANGE的消息响应函数则无此ID,与ON

on command range

 ON_COMMAND_RANGEON_COMMAND_RANGE( id1, id2, memberFxn )参数: id1一个连续范围的命令ID的起始值。id2一个连续范围的命令ID的结束值。memberFxn该命令被映射到的消息处理函数的名字。 说明:使用这个宏把一个连续范围的命令ID映射到单个命令处理函数。ID的范围从id1开始,到id2结束。用ON_COMMAND_RAN

ON_COMMAND_RANGE的用法

 今天主要介绍一下ON_COMMAND_RANGE的用法 第一次用这个方法还是刚毕业那会,那时写过一个控制程序,界面上有很多电器的控制按钮,这些按钮的响应函数基本一致,只是相应的ID值不一样,要是一一写响应函数那不累死人,于是就东找西找,找到ON_COMMAND_RANGE。 最近一个偶然机会也要用到它,三下五除二,CODE写完了, 1.在要添加的工程上添加函数afx_msg vo