我正在寻找有效压缩音频波形以限制峰值的公式。这不是一个“自动音量控制”应用程序,在该应用程序中,可以控制放大器增益以保持音量水平,而是要限制(“软”截断)各个峰值。(我知道这会引入谐波,但我正在尝试分析数据,而不是听数据。)
到目前为止,我的(非常粗糙的)公式是:
factor = (10 * average / level) + exp(-sqrt(0.1 * level / average))
其中level是瞬时声级,平均值是历史平均声级,factor是用于产生“已调整”声级(因数乘以level)的乘数。
此外,仅当乘法器计算得出的值小于1时,才会应用此乘数。否则,将不调整级别。
目的是将调整后的水平限制为历史平均值的某个倍数(此公式约为15倍)。这个公式有点像我需要的,但是随着数字变大,表现出“下降”的趋势。也就是说,调整后的水平(即因子乘以水平)会增加到未调整水平增加的程度,但随后开始逐渐变小而不是渐近。(实际上,添加第一个因素主要是为了防止公式以极高的值变为零。)
(想要以这种方式限制值的原因主要是为了使瞬态噪声不会严重破坏声音水平的运行平均值。但是,当您分析打sn声时,“瞬态噪声”非常重要,因此我可以简单地对其进行静噪)
那么,有人可以提出更好的建议吗?(似乎渐进行为在您不想要时很容易产生,但在您想要时就很难产生。)
有多种方法可以调整膝盖的清晰度。
—
罗伯特·布里斯托