更新
- 这个问题纯粹是理论上的,不应考虑任何心理声学效应或实际实施。
- 也许这个问题应该改写为“在单个精度系统中应用最平滑的淡入淡出需要多长时间”?
在 32 位浮点系统中生成正弦波,采样率为 44.1 kHz。手头的任务是在不使用抖动的情况下以尽可能少的数字失真(这是“正确”的含义)淡出这个正弦。下面的数学解析为大约 6 分 20 秒。它是否正确?
公理
- 32 位浮点系统中的数字音频用值 -1.0 到 1.0 表示
- 此范围内的所有值均已归一化
- 正弦波在 1.0 和 -1.0 处达到峰值
- 音频分辨率为,由 23 位尾数 + 1 个隐含(标准化)位 + 1 个符号位组成。
- 可能的增益系数为,值范围在 0.0 到 1.0 之间
淡出
由于增益值的量化,任何衰减都会产生失真。
例如,如果在两个连续样本之间发生从单位增益 (1.0) 到静音 (0.0) 的衰减,则类似于减少 1 位(这将产生与正弦相位相关的高频和低频失真)。如果淡入淡出超过 4 个样本,将有 4 个增益步骤;8 个样本意味着 8 个增益步骤;等等。
因此,最平滑的衰减可能是每个样本之间的增益变化最小可能量,即。这给出了增益步骤。
这意味着淡入淡出需要 16,777,216 个样本。如果系统采样率为 44,100 Hz:
秒。
这大约等于 6 分 20 秒。
这似乎不合理。那么计算错误在哪里呢?
只是为了进一步证明我在说什么失真。
原正弦及其频率分析:

长褪色:

中等渐变(50 个样本):

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