0

我想在 numpy 数组中创建复合音频测试信号。我需要将值四舍五入为最接近的整数。其次,我想添加随机噪声或抖动。

您可以在下面看到我当前使用的代码。这应该包含 24 位整数(如果我做对了),即使它存储在 32 位整数字中(以匹配通常以这种方式存储的 pcm 音频样本)。

在此示例中,第一个正弦波音调在半峰值 (-6dBfs) 处为 1000.2Hz。这里还有两个正弦波分量,但实际上它可以包含任意数量的它们。我现在想添加一些抖动。这将被计算为数组中每个纵坐标的随机值。它将向每个数组元素(每个音频样本)添加一个小的随机生成的值,例如 + 和 - 0.5 之间的峰值。

x = np.linspace(0, 48000, 48000, False, dtype = "int32")

pcm_array:np.dtype(np.int32) = 
    (1073741824 * np.sin(((x + 0) * 1000.2 / 48000) * 2 * np.pi)) + 
    (10737418.24 * np.sin(((x + 0) * 1049.7 / 48000) * 2 * np.pi)) + 
    (1.073741824 * np.sin(((x + 0) * 1200.5 / 48000) * 2 * np.pi))

我的代码似乎工作正常,但不包含随机“抖动”组件。有人可以让我知道如何做到这一点 - 并让我放心,我最终会得到 24 位分辨率整数。

4

0 回答 0