消除将 Delta-Sigma 调制 (DSM) 信号转换为脉冲编码调制 (PCM) 信号时引入的噪声?

信息处理 声音的 下采样 重采样 pcm delta-sigma
2022-02-09 11:04:40

我正在编写一个将 dsdiff 音频文件 (dsd64) 转换为 flac 音频文件 (DSM -> PCM) 的工具。该项目既是编程练习,也是信号处理练习;我从中学到了很多。

目前,我正在执行以下操作来计算 PCM 流中的样本

  1. 选择与低通 (FIR) 滤波器窗口大小相对应的 DSM 序列窗口。
  2. 将 DSM 窗口中的所有 0 替换为 -1
  3. 将 DSM 窗口中的元素与 (FIR) 滤波器的系数进行卷积(乘 + 和),并将结果重新缩放为所选比特率(24 位)。
  4. 将窗口移动downsampling factor许多元素(在我的情况下为 16 个)并应用重复此过程。

我使用几个(任意选择的)dsdiff 文件(深紫色乐队的歌曲)测试了转换。转换再现了信号(良好),但引入了噪声(不良),具有以下配置文件(在轨道开始时测量,原始文件中有一点静音):

附加噪声的频谱

我一直在试图弄清楚这是如何引入的,以及我需要做些什么来删除它。通过在线阅读随机源,我了解到这是通过集成 DSM 信号引入的,该信号放大了本底噪声并将其映射到类似于我在图中看到的频谱。

我是否正确识别了问题?我能做些什么来验证这一点并最终解决它?

非常感谢任何帮助。

编辑:

添加了显示滤波器频率响应的图 在此处输入图像描述

添加了 DSM 流第一秒的周期图

DSM 流第一秒的周期图

1个回答

频谱似乎是与 Delta-Sigma 调制相关的噪声整形。具体来说,我们看到噪声增加遵循 20 dB/decade 的斜率,表示一阶 delta-sigma 调制器。

噪声的高端滚降与所应用滤波器的高频滚降一致。

下面是一些图表,我解释了一阶 Delta-Sigma 调制器以及这种噪声整形是如何发生的,这里特别是 Delta-Sigma 数模转换器(但它很容易成为一个相同的 1 位数字输出)。

Delta Sigma DAC

等效地,下面显示了 Delta Sigma 模数转换器图,该图将用于开发一个简单的环路模型,以了解噪声整形是如何发生的。

三角积分 ADC

下面是一个定性环路模型,如果您了解简单控制环路模型中的滤波,则可以直观地理解噪声整形。具体来说,它将 1 位 A/D 转换器显示为添加了量化噪声的增益(这是一个高度非线性的过程,因此该模型是定性预测与定量预测)。

Delta Sigma 循环模型

从量化噪声输入 ( ) 到输出的循环路径遵循高通函数,如下所示。对于传统的数据转换器,量化噪声通常是白噪声(在所有频率上均一),而使用 Delta Sigma 调制的实现,我们得到这种噪声整形,从而在过滤高频噪声后在给定采样率下显着提高精度出去。Nq

Delta Sigma 噪声整形

通常使用更高阶的实现,例如下面显示的 2 阶 Delta Sigma(并且通常实现更高阶,例如 5 阶)。这提供了更陡峭的噪声整形(滤波后感兴趣的频带中的噪声更少)并且还用于显着降低在频谱中表现为杂散的模式噪声。

二阶 Delta Sigma

具有高阶实现的 Delta Sigma 噪声整形