我正在尝试在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));