Я пытаюсь реализовать алгоритм RLS в MATLAB. Я использовал дизайны, доступные в наборе инструментов Matlab's 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));