全通滤波器以弥补群延迟

信息处理 过滤器 带通 过滤器组 全部通过
2022-02-03 17:28:38

我想总结一个由带通巴特沃斯滤波器组成的滤波器组来重建音频信号。给定下图中显示的每个通道的群延迟。. .

在此处输入图像描述

我将如何设计互补的全通滤波器以使其在某种程度上变平?它不必完全平坦,只需比实际平坦一点即可。目前还不能对脉冲响应进行采样以制作线性相位滤波器。

用于生成它的 Matlab 代码如下所示。注意:当信号通过银行两次时,我将群延迟乘以 2。

sr = 22050;

%Make octave wide filters
cfs = [125 250 500 1000 2000 4000];
bw = 1; %octaves

nBins = 2^12;
gd = zeros(nBins,numel(cfs));

for nn = 1:numel(cfs)
    cf = cfs(nn);
    loEdge = cf*(2^-bw/2);
    hiEdge = cf*(2^+bw/2);
    [b, a] = butter(2, [loEdge hiEdge]/(sr/2), 'bandpass');
    [gd(:,nn),f] = grpdelay(b,a,nBins,sr);
end

figure; semilogx(f,2*gd); xlim([10 8000])
legend(num2str(cfs')); xlabel ('F [Hz]'); ylabel('Group delay [samples]')
3个回答

也许您最好使用 Bessel-Thompson 过滤器。也许人们可以找到一个近似校正巴特沃斯滤波器的全通滤波器,但它看起来相当困难。

您可以使用半阶滤波器并双向过滤,这在全球范围内会产生线性相位。即使在实时处理重叠的情况下,也可以使用添加块处理近似值。

我通过以下方式管理这个(以非常完美的方式):

我假设您有一组低通和高通滤波器,其中 LPx 和 HPx 处于相同频率以便进行拆分。LP0 是最低的交叉频率,LP2 是最高的。

我生成这样的信号:

----- LP0 ----- LP1 ----- LP2 --- lowest frequency subband
  |
  --- HP0 ----- LP1 ----- LP2 ---
            |
            --- HP1 ----- LP2 --- 
                      |
                      --- HP2 --- highest frequency subband

使用这个滤波器网络,所有信号都具有相同的延迟,并且可以以非常完美的方式重新加在一起。

它对我来说就像一个魅力。如果您喜欢,请投票或接受我的回答:-)

谢谢,-迦勒