Чому надмоделювання адаптивного фільтра AR NLMS фіксує гострі шипи?


10

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

Оскільки фільтр першого порядку недостатньо моделює систему, звичайно, оцінки дивні. Фільтр другого порядку знаходить хороші оцінки, хоча має кілька різких стрибків. Цього можна очікувати від природи фільтрів NLMS.

Мене бентежить фільтри третього та четвертого порядку. Вони ніби усувають різкі стрибки, як видно на малюнку нижче. Я не бачу, що б вони додали, оскільки фільтра другого порядку достатньо для моделювання системи. Зайві параметри все одно наближаються до .0

Чи може хтось якісно пояснити це явище для мене? Що це викликає, і чи бажано це?

Я використав крок розміру , зразка, і модель AR де білий шум з дисперсією 1.10 4 x ( t ) = e ( t ) - 0,9 x ( t - 1 ) - 0,2 x ( t - 2 ) e ( t )μ=0.01104x(t)=e(t)0.9x(t1)0.2x(t2)e(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 )' );

2
Я не зовсім розумію, що ти там задумуєш. Що це за фільтр, який ви моделюєте за допомогою NLMS? - Очевидно, що чим більше у вас параметрів, тим краще ви зможете прилаштувати до довільного фільтра; навіть якщо параметри "наближаються до 0", це не означає, що вони нічого не роблять.
близько

@left: Я моделюю модель AR (2) з постійними параметрами, це означає, що NLMS (2) має змогу повністю описати систему. Очевидно, що додаткові параметри щось роблять, оскільки їм вдається зменшити шипи, але мені цікаво, чому - система перемодельована, що зазвичай просто означає, що довірчий інтервал для оцінюваних параметрів збільшується.
Андреас

@left: Вибачте, я пропустив ваше перше речення. Я будувати оцінені значення параметрів AR адаптивного фільтра NLMS у часі. Тобто з розрахункової моделі для x ( t ) = e ( t ) - a 1 x ( t - 1 ) - a 2 x ( t - 2 ) - . . . - a n x ( t - n ) n { 1 , 2 , 3 , 4 }anx(t)=e(t)a1x(t1)a2x(t2)...anx(tn)n{1,2,3,4}
Андреас

Чи не NLMS є моделлю MA, коли ви намагаєтеся наблизити модель AR?
Пам'ять

1
@Memming: NLMS намагається інвертувати модель AR, тому модель MA - це правильна справа.
Пітер К.

Відповіді:


2

Здається, що, коли ви починаєте надмірно моделювати, сигнал про помилку стає все менш білим.

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

Цей графік показує коефіцієнти відхилення від нуля xcorrдля помилки для порядку = 2 (синій), 3 (червоний) та 4 (зелений). Як бачимо, терміни відставання, близького до, але не нульового значення, збільшуються за масштабами.

Якщо ми подивимось на FFT (спектр) 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.