我想总结一个由带通巴特沃斯滤波器组成的滤波器组来重建音频信号。给定下图中显示的每个通道的群延迟。. .
我将如何设计互补的全通滤波器以使其在某种程度上变平?它不必完全平坦,只需比实际平坦一点即可。目前还不能对脉冲响应进行采样以制作线性相位滤波器。
用于生成它的 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]')