正确淡出单个精度音频信号真的需要 6 分 20 秒吗?

信息处理 声音的 浮点
2022-02-01 10:26:22

更新

  • 这个问题纯粹是理论上的,不应考虑任何心理声学效应或实际实施。
  • 也许这个问题应该改写为“在单个精度系统中应用最平滑的淡入淡出需要多长时间”?

在 32 位浮点系统中生成正弦波,采样率为 44.1 kHz。手头的任务是在不使用抖动的情况下以尽可能少的数字失真(这是“正确”的含义)淡出这个正弦。下面的数学解析为大约 6 分 20 秒。它是否正确?

公理

  • 32 位浮点系统中的数字音频用值 -1.0 到 1.0 表示
  • 此范围内的所有值均已归一化
  • 正弦波在 1.0 和 -1.0 处达到峰值
  • 音频分辨率为,由 23 位尾数 + 1 个隐含(标准化)位 + 1 个符号位组成。225
  • 可能的增益系数为,值范围在 0.0 到 1.0 之间224

淡出

由于增益值的量化,任何衰减都会产生失真。

例如,如果在两个连续样本之间发生从单位增益 (1.0) 到静音 (0.0) 的衰减,则类似于减少 1 位(这将产生与正弦相位相关的高频和低频失真)。如果淡入淡出超过 4 个样本,将有 4 个增益步骤;8 个样本意味着 8 个增益步骤;等等。

因此,最平滑的衰减可能是每个样本之间的增益变化最小可能量,即这给出了增益步骤。1/224224

224=16,777,216

这意味着淡入淡出需要 16,777,216 个样本。如果系统采样率为 44,100 Hz:

16,777,216/44,100= 380.4秒。

这大约等于 6 分 20 秒。

这似乎不合理。那么计算错误在哪里呢?


只是为了进一步证明我在说什么失真。

原正弦及其频率分析:

在此处输入图像描述

长褪色:

在此处输入图像描述

中等渐变(50 个样本):

在此处输入图像描述

并使用 1 个样本淡入淡出:

在此处输入图像描述

2个回答

你从错误的假设开始,所以你的结果是荒谬的。

  1. 您对好与坏的定义应该基于对失真和伪影实际上是可听和/或令人反感的类型的心理声学理解
  2. 24 位尾数参数(如果它完全有效)将只保存一个定点数。在浮点中,您几乎可以应用您想要的任何增益。最小的非零增益实际上是 1.1755e-38。

设计渐变有多种不同的方法:线性、准对数、“半窗”函数、各种连续导数函数等。它们听起来都略有不同,最佳选择实际上取决于您的应用:音乐渐变、交叉- 两个信号之间的淡入淡出,需要快速的紧急淡出等。

好的,让我们根据编辑再试一次:为了确定

“失真最小的信号”

您必须首先精确定义失真度量。根据定义,衰落正弦波不再是正弦波,并且具有与衰落函数(形状和长度)相关的某些光谱特性。这完全独立于量化并且无论精度如何都会发生。“不失真的褪色正弦波”应该是什么样子?