用于噪声消除的RLS自适应滤波器

时间:2018-11-18 10:03:27

标签: matlab noise-reduction

我正在尝试在MATLAB中实现RLS算法。我已经使用了Matlab的dsp工具箱中的可用设计。但是运行此过滤器后,它几乎不能减少原始音频文件中的噪音。

有什么方法可以使滤波器的降噪效果更好?

clear;
[signal,fs] = audioread('../data/2/strong/noise2_strong1.wav');
L = length(signal);
noise = rand(L,1);

lp = dsp.FIRFilter('Numerator',fir1(31,0.5));

M      = 32;                 % Filter order
delta  = 0.1;                % Initial input covariance estimate
P0     = (1/delta)*eye(M,M); % Initial setting for the P matrix
rlsfilt = dsp.RLSFilter(M,'InitialInverseCovariance',P0);

d = lp(noise) + signal;
[y,e]  = rlsfilt(noise,d);

plot(0:L-1,signal(1:L),0:L-1,e(1:L));

0 个答案:

没有答案