如何级联两个过滤器?

信息处理 matlab 声音的 卷积 有限脉冲响应
2022-02-22 09:43:43

我必须通过两个相等的低通 FIR 滤波器级联来过滤音频信号。处都有一个截止值π/2

然后,我必须将结果信号(通过两个滤波器的级联获得)乘以,其中是一个标量。zqq

首先,我想以这种方式对两个低通滤波器的脉冲响应进行卷积(其中hlp1=hlp2):

hconv=conv(hlp1, hlp2),

然后x以这种方式过滤音频信号(称为):

x_filtered=filter(hconv,1,x)

这是正确的吗?

我希望频率响应hconv处截止的低通滤波器,但该命令显示处有一个截止值,而不是在处。π/4fvtool(hconv)hconvπ/2π/4

这是正确的吗?

此外,如何实现 z^{-q} 的滤波信号x_filteredzq

1个回答

您可以轻松地验证自己以下两种级联两个过滤器的方法是等效的(直到数值不准确):

% 方法 1
y1 = 过滤器(h1,1,x);
y = 过滤器(h2,1,y1);

% 方法 2
h = 转换(h1,h2);
y = 过滤器(h,1,x);

所以当你对两个脉冲响应进行卷积时,你走在了正确的轨道上。请注意,您需要的是线性卷积,而不是循环/循环卷积。

至于与的乘法,我希望是一个整数,您需要了解它不是被相乘的(时域)信号,而是这种乘法是指 Z-信号的变换。在 Z 变换域中,与的乘法对应于个样本的延迟。zqqzqq

最后,关于您期望级联系统的截止频率为,请注意级联系统的频率响应只是两个单独频率响应的乘积,因此截止频率不会改变显着(它可能会根据您的定义方式有所改变)。从通带到阻带的过渡会更陡峭,阻带衰减会增加,但过渡带的起点保持不变。如果两个滤波器相同,您基本上会得到一个具有相同通带和阻带边缘的更好的低通滤波器。π/4