组合两个过滤器(音频处理)

信息处理 matlab 过滤器 声音的
2022-02-19 07:14:53

我正在尝试将两个过滤器组合成一个过滤器命令来解决家庭作业问题并寻求建议。只要有人能指出我正确的方向,我不一定需要明确的答案。

在下面的代码中,假设 'y' 是一个已预加载 (10kHz) 的声音文件。此外,hlpf 和 hnotch 滤波器分别协同工作,以产生去除噪音和哔哔声的音频信号。但是,当我尝试将两者组合成一个过滤器时,我没有达到这个结果。这是我的代码:

Fs = 10000;
f0 = 1000;                %#notch frequency
fn = Fs/2;              %#Nyquist frequency
freqRatio = f0/fn;      %#ratio of notch freq. to Nyquist freq.
notchWidth = 0.1;       %#width of the notch

%Compute zeros
zeros = [exp( sqrt(-1)*pi*freqRatio ), exp( -sqrt(-1)*pi*freqRatio )];

%Compute poles
poles = (1-notchWidth) * zeros;
b = poly( zeros ); %# Get moving average filter coefficients
a = poly( poles ); %# Get autoregressive filter coefficients

hnotch = [poly(poles)];
alpha = 0.42;
hlpf = fir1(100, alpha);
hcombo = conv(hlpf,hnotch);
s2 = filter(hcombo,1,y);
soundsc(s2,Fs)

任何帮助将不胜感激。

2个回答

为了组合两个滤波器,您需要对它们的脉冲响应进行卷积,在这种情况下您还没有这样做。

事实上,根据这段代码片段,陷波滤波器的构建是错误的。

我敢肯定,一旦您查看它,您就会发现自己的错误。祝你好运!

提示:首先分别构建、测试和验证两个过滤器。如果一切顺利,请查看代码并找出过滤器和过滤器操作之间的相同之处和不同之处。