Почему чрезмерное моделирование адаптивного фильтра AR NLMS устраняет резкие пики?

10

Я просто смоделировал авторегрессивную модель второго порядка на основе белого шума и оценил параметры с помощью нормализованных фильтров наименьших квадратов порядка 1-4.

Поскольку фильтр первого порядка недооценивает систему, оценки, конечно, странные. Фильтр второго порядка находит хорошие оценки, хотя имеет несколько резких скачков. Этого следует ожидать от природы фильтров NLMS.

Что меня смущает, так это фильтры третьего и четвертого порядка. Похоже, они устраняют резкие скачки, как видно на рисунке ниже. Я не вижу, что они добавят, поскольку фильтра второго порядка достаточно для моделирования системы. В любом случае избыточные параметры колеблются около .0

Может ли кто-нибудь качественно объяснить мне это явление? Чем это вызвано и желательно ли?

Я использовал размер шага , выборок, и модель AR где - белый шум с дисперсией 1.μзнак равно0,01104Икс(T)знак равное(T)-0.9Икс(T-1)-0.2Икс(T-2)е(T)

введите описание изображения здесь

Код MATLAB, для справки:

% ar_nlms.m
function th=ar_nlms(y,order,mu)
N=length(y);
th=zeros(order,N); % estimated parameters
for t=na+1:N
    phi = -y( t-1:-1:t-na, : );
    residue = phi*( y(t)-phi'*th(:,t-1) );
    th(:,t) = th(:,t-1) + (mu/(phi'*phi+eps)) * residue;
end

% main.m
y = filter( [1], [1 0.9 0.2], randn(1,10000) )';
plot( ar_nlms( y, 2, 0.01 )' );
Andreas
источник
2
Я не совсем понимаю, что ты там замышляешь. Какой тип фильтра вы имитируете с NLMS? - Очевидно, что чем больше у вас параметров, тем лучше вы сможете приспособиться к произвольному фильтру; даже если параметры «колеблются около 0», это не значит, что они ничего не делают.
оставил около
@left: Я моделирую модель AR (2) с постоянными параметрами, что означает, что NLMS (2) должна быть в состоянии полностью описать систему. Очевидно, что дополнительные параметры что-то делают, поскольку им удается уменьшить пики, но мне интересно, почему - система перемоделирована, что обычно просто означает, что доверительный интервал для оцениваемых параметров увеличивается.
Андреас
aNИкс(T)знак равное(T)-a1Икс(T-1)-a2Икс(T-2)-,,,-aNИкс(T-N)N{1,2,3,4}
Разве NLMS не является моделью MA, когда вы пытаетесь приблизить модель AR?
Memming
1
@Memming: NLMS пытается инвертировать модель AR, поэтому модель MA является правильным решением .
Питер К.

Ответы:

2

Похоже, что происходит, когда вы начинаете избыточное моделирование, сигнал ошибки становится все менее и менее белым.

Я изменил ваш код, чтобы вернуть сигнал об ошибке (часть residueтермина).

На этом графике показаны коэффициенты отклонения от нуля xcorrдля ошибки для порядка = 2 (синий), 3 (красный) и 4 (зеленый). Как вы можете видеть, слагаемые, близкие к нулю, но не к нулю, становятся больше по величине.

Если мы посмотрим на БПФ (спектр) xcorrошибки, то увидим, что низкочастотные члены (которые вызывают большие смещения) становятся меньше (ошибка содержит более высокие частоты).

Таким образом, похоже, что эффект избыточного моделирования в этом случае заключается в фильтрации верхних частот ошибки, что (для этого примера) является полезным.

введите описание изображения здесь

введите описание изображения здесь

function [th,err]=ar_nlms(y,order,mu)
eps = 0.000000001;
N=length(y);
th=zeros(order,N); // estimated parameters
err = zeros(1,N);
for t=order+1:N
    phi = -y( t-1:-1:t-order, : );
    err(t) = y(t)-phi'*th(:,t-1);
    residue = phi*( err(t) );
    th(:,t) = th(:,t-1) + (mu/(phi'*phi+eps)) * residue;
    size(residue)
end
Питер К.
источник