我正在做一个虚拟低音系统,信号流如下
其中 NLD 表示引入奇偶次谐波的非线性器件,z^-D 是为了补偿 LPF 和 BPF 引起的群延迟。
当低通滤波信号通过 NLD 时,我需要滤除高频分量,因为不需要太高阶的谐波。但是 NLD 还引入了 DC 偏移,因此我需要一个 DC 阻断器。这就是为什么我在 NLD 之后需要一个 BPF。
我的问题是当输入信号通过我的虚拟低音算法时,它通常在一开始就包含几个静音块。这些值为零的样本在 LPF 之后仍然为零,但会被 NLD 转换为 DC 偏移,例如 0.65。现在我有一个步进函数来输入 BPF 但我的 BPF 有一个像这样的阶跃响应
这绝对是听得见的,尽管它只有一小段时间。这是我的 BPF 设计:
Fs = 44100;
f1 = 50;
f2 = 600;
w1 = f1*2/Fs;
w2 = f2*2/Fs;
[b, a] = butter(1, [w1, w2], 'bandpass');
是否有其他类型的 BPF 具有低阶跃响应?请告诉我如何避免它。谢谢!

