Рекурзивни алгоритам најмањих квадрата

Извор: testwiki
Пређи на навигацију Пређи на претрагу

Рекурзивни алгоритам најмањих квадрата (RLS) је адаптивни филтер који рекурзивно утврђује коефицијенте који смањују пондерисани линеарни најмањи квадрат функција трошкова у вези улазних сигнала. Ово је за разлика у односу на друге алгоритме као што је алгоритам најмањих средњих квадрата (LMS) чији је циљ да смањи средње квадратне грешке. У извођење рекурзивног алгоритма најмањих квадрата, улазни сигнал се сматра детерминистичким, док се алгоритам најмањих средњих квадрата и слични алгоритми сматрају стохастичком. У поређењу са већином својих конкурената, експонати рекурзивног алгоритма најмањих квадрат изузетно брзо конвергирају. Међутим, ова корист долази по цену високог рачунарске комплексности.

Мотивација

RLS је открио Карл Фридрих Гаус али остаје неискоришћен или игнорисан до 1950. године, када Плацкет открива оригинални рад Гауса од 1821. У принципу, RLS алгоритми могу да се користе за решавање сваког проблема који могу да реше адаптивни филтери, На пример, претпоставимо да је сигнал d(n) који се преноси преко еха, бучни канал који узрокује да буде примљен као

x(n)=k=0qbn(k)d(nk)+v(n)

где v(n) представља додатну буку. Ми ћемо покушати да опоравимо жељени сигнал d(n) употребом p+1-tap импулса коначних одзива, 𝐰:

d^(n)=k=0pwn(k)x(nk)=𝐰n𝑇𝐱n

где 𝐱n=[x(n)x(n1)x(np)]T је вектор који садржи p+1 Најновији узорци x(n). Наш циљ је да се процени параметре филтера 𝐰, и у сваком тренутку n мислимо на нове најмањих квадрата процена 𝐰n. Како време пролази, желимо да се у потпуности избегну преправке алгоритма најмањих квадрата и да пронађу нову процену за 𝐰n+1, у смислу 𝐰n.

Корист од RLS алгоритма је да нема потребе обрнути матрицу, чиме се штеди рачунарска снага. Још једна предност је у томе што даје интуицију иза таквих резултата као Калман филтер.

Дискусија

Идеја РЛС филтера је да минимизира функцију трошкова C и адекватно одабира филтер коефицијенти 𝐰n, ажурирање филтера кад стигну нови подаци. Сигнал грешке e(n) и жељени сигнал d(n) су дефинисани у дијаграму негативне повратне спреге :

Грешка имплицитно зависи од коефицијента филтера путем процене. d^(n):

e(n)=d(n)d^(n)

Најмања функција квадрата грешка C— желимо да се цена функција минимизира-као функција e(n) стога такође зависи од коефицијента филтера: C(𝐰n)=i=0nλnie2(i) где је 0<λ1 " фактор заборављања " који даје експоненцијално мању тежину старијим узорцима грешака.

Функција трошкова је сведена на минимум узимањем парцијалног извода за све ставке k коефицијента вектора 𝐰n и постављање резултата на нулу:C(𝐰n)wn(k)=i=0n2λnie(i)e(i)wn(k)=i=0n2λnie(i)x(ik)=0k=0,1,,p Даље, замени e(n) са дефиницијом сигнала грешке

i=0nλni[d(i)l=0pwn(l)x(il)]x(ik)=0k=0,1,,p

Преуређивање једначине приноса

l=0pwn(l)[i=0nλnix(il)x(ik)]=i=0nλnid(i)x(ik)k=0,1,,p

Овај облик може да се изрази у смислу матрице

𝐑x(n)𝐰n=𝐫dx(n)

where 𝐑x(n) је измерен узорак коваријанси матрица за x(n), и 𝐫dx(n) је еквивалентна процена за попречну-коваријансу од d(n) и x(n) На основу овог израза налазимо коефицијенте који минимизирају трошкове функције као::𝐰n=𝐑x1(n)𝐫dx(n) Ово је главни резултат дискусије.

Избор λ

Мањи λ је, мали допринос претходним узорцима. То чини филтер више осетљивим на недавне узорке, што значи више флуктуације у филтеру коефицијента. За λ=1 случај се узима као пример растућег РЛС алгоритма. У пракси, λ се обично бира између 0,98 и 1.[1]

Рекурзивни алгоритам

Расправа је резултирала у једној једначини да се одреди коефицијент вектор који минимизира функцију трошкова. У овом одељку желимо да изведемо рекурзивно решење у облику

𝐰n=𝐰n1+Δ𝐰n1

где Δ𝐰n1 је корективни фактор у времену n1. Истражујемо порекло рекурзивног алгоритма изражавајући унакрсно коваријансу𝐫dx(n) поводом 𝐫dx(n1)

𝐫dx(n) =i=0nλnid(i)𝐱(i)
=i=0n1λnid(i)𝐱(i)+λ0d(n)𝐱(n)
=λ𝐫dx(n1)+d(n)𝐱(n)

где је𝐱(i)p+1димензионални вектор података:𝐱(i)=[x(i),x(i1),,x(ip)]T Слично изражавамо 𝐑x(n) У погледу 𝐑x(n1) од

𝐑x(n) =i=0nλni𝐱(i)𝐱T(i)
=λ𝐑x(n1)+𝐱(n)𝐱T(n)

Да би генерисали коефицијент вектора ми смо заинтересовани за супротност од детерминистичке матрице. Из тог задатка идентитет матрица долази у комбинацији. Са

A =λ𝐑x(n1) is (p+1)-by-(p+1)
U =𝐱(n) is (p+1)-by-1
V =𝐱T(n) is 1-by-(p+1)
C =𝐈1 is the 1-by-1

Следи идентитет матрица

𝐑x1(n) = [λ𝐑x(n1)+𝐱(n)𝐱T(n)]1
= λ1𝐑x1(n1)
λ1𝐑x1(n1)𝐱(n)
{1+𝐱T(n)λ1𝐑x1(n1)𝐱(n)}1𝐱T(n)λ1𝐑x1(n1)

У складу са стандардном литературом, дефинишемо

𝐏(n) =𝐑x1(n)
=λ1𝐏(n1)𝐠(n)𝐱T(n)λ1𝐏(n1)

где је "добијен вектор"g(n)

𝐠(n) =λ1𝐏(n1)𝐱(n){1+𝐱T(n)λ1𝐏(n1)𝐱(n)}1
=𝐏(n1)𝐱(n){λ+𝐱T(n)𝐏(n1)𝐱(n)}1

Пре него што кренемо даље, неопходно је да се донесе 𝐠(n) у другом облику

𝐠(n){1+𝐱T(n)λ1𝐏(n1)𝐱(n)} =λ1𝐏(n1)𝐱(n)
𝐠(n)+𝐠(n)𝐱T(n)λ1𝐏(n1)𝐱(n) =λ1𝐏(n1)𝐱(n)

Одузимањем другог мандата на левој страни приноса

𝐠(n) =λ1𝐏(n1)𝐱(n)𝐠(n)𝐱T(n)λ1𝐏(n1)𝐱(n)
=λ1[𝐏(n1)𝐠(n)𝐱T(n)𝐏(n1)]𝐱(n)

Са рекурзивном дефиницијом 𝐏(n) жељена форма прати

𝐠(n)=𝐏(n)𝐱(n)

Сада смо спремни да завршимо рекурзију. Као што је наведено

𝐰n =𝐏(n)𝐫dx(n)
=λ𝐏(n)𝐫dx(n1)+d(n)𝐏(n)𝐱(n)

Други корак произлази из рекурзивне дефиниције𝐫dx(n). Затим смо уградили рекурзивно дефиниције 𝐏(n) заједно са алтернативним обликом 𝐠(n) и добијамо

𝐰n =λ[λ1𝐏(n1)𝐠(n)𝐱T(n)λ1𝐏(n1)]𝐫dx(n1)+d(n)𝐠(n)
=𝐏(n1)𝐫dx(n1)𝐠(n)𝐱T(n)𝐏(n1)𝐫dx(n1)+d(n)𝐠(n)
=𝐏(n1)𝐫dx(n1)+𝐠(n)[d(n)𝐱T(n)𝐏(n1)𝐫dx(n1)]

Са𝐰n1=𝐏(n1)𝐫dx(n1) долазимо до једначине за ажурирање

𝐰n =𝐰n1+𝐠(n)[d(n)𝐱T(n)𝐰n1]
=𝐰n1+𝐠(n)α(n)

Где је α(n)=d(n)𝐱T(n)𝐰n1Грешка израчунавања "после" филтера се ажурира::e(n)=d(n)𝐱T(n)𝐰n То значи да смо нашли фактор корекције:Δ𝐰n1=𝐠(n)α(n)

Овај интуитивно задовољавајући резултат указује да је корективни фактор директно пропорционалан грешкама и појачањима вектора, и да контролише колика осетљивост се жели.

RLS алгоритам резиме

RLS алгоритам за pсе помоћу RLS филтера може сумирати на:

Параметри: p= поредак филтера
λ= фактор заборављања
δ= вредност да се покрене 𝐏(0)
Иницијализација: 𝐰(n)=0,
x(k)=0,k=p,,1,
d(k)=0,k=p,,1
𝐏(0)=δ1I где је I матрица идентитета ранга p+1
Обрачун: За n=1,2,

𝐱(n)=[x(n)x(n1)x(np)]

α(n)=d(n)𝐱T(n)𝐰(n1)
𝐠(n)=𝐏(n1)𝐱*(n){λ+𝐱T(n)𝐏(n1)𝐱*(n)}1
𝐏(n)=λ1𝐏(n1)𝐠(n)𝐱T(n)λ1𝐏(n1)
𝐰(n)=𝐰(n1)+α(n)𝐠(n).

Имајте на уму да рекурзија за P следи алгебарска Рикатијева једначина и тако повлачи паралеле до Калман филтера.[2]

Рекурзивне решетке најмањих квадрата филтера (LRLS)

Рекурзивне решетке најмањих квадрата филтера се односи на стандардни RLS, осим да је потребно мање аритметичких операција . Она нуди додатне предности у односу на конвенционалне LMS алгоритме као што су брже стопе конвергенције, модуларне структуре, и неосетљивост на варијацијама у ширења улазне корелационе матрице.LRLS алгоритам заснован је на грешкама и укључује нормализовани облик. Извођење је слична стандардном RLS алгоритму и заснива се на дефиницији d(k). У предикционом случају, имамо d(k)=x(k) са улазним сигналом x(k1) као највиши узорак. Предвиђање заосталих случајева d(k)=x(ki1), где индекс узорка у прошлости желимо да предвидимо, а улазни сигнал x(k) је најновији узорак.[3]

Преглед параметара

κf(k,i) је напредни коефицијент рефлексије
κb(k,i) је назадан коефицијент рефлексије
ef(k,i) представља тренутно апостериори напредно предвиђање о грешци
eb(k,i) представља тренутно апостериори назадно предвиђање о грешци
ξbmind(k,i) је минимум најмањих квадрата назадно предвиђање грешака
ξfmind(k,i)је минимум најмањих квадрата напредно предвиђање грешака
γ(k,i) је фактор конверзије између априори и апостериори, грешке
vi(k) су вишеструки коефицијенти.
ϵ је мала позитивна константа која може бити 0.01

LRLS преглед алгоритма

Алгоритам за LRLS филтер се може сажети у

Иницијализација:
For i = 0,1,...,N
Шаблон:Padδ(1,i)=δD(1,i)=0 (if x(k) = 0 for k < 0)
Шаблон:Padξbmind(1,i)=ξfmind(1,i)=ϵ
Шаблон:Padγ(1,i)=1
Шаблон:Padeb(1,i)=0
End
Израчунавање:
For k ≥ 0
Шаблон:Padγ(k,0)=1
Шаблон:Padeb(k,0)=ef(k,0)=x(k)
Шаблон:Padξbmind(k,0)=ξfmind(k,0)=x2(k)+λξfmind(k1,0)
Шаблон:Pade(k,0)=d(k)
Шаблон:PadFor i = 0,1,...,N
Шаблон:Padδ(k,i)=λδ(k1,i)+eb(k1,i)ef(k,i)γ(k1,i)
Шаблон:Padγ(k,i+1)=γ(k,i)eb2(k,i)ξbmind(k,i)
Шаблон:Padκb(k,i)=δ(k,i)ξfmind(k,i)
Шаблон:Padκf(k,i)=δ(k,i)ξbmind(k1,i)
Шаблон:Padeb(k,i+1)=eb(k1,i)κb(k,i)ef(k,i)
Шаблон:Padef(k,i+1)=ef(k,i)κf(k,i)eb(k1,i)
Шаблон:Padξbmind(k,i+1)=ξbmind(k1,i)δ(k,i)κb(k,i)
Шаблон:Padξfmind(k,i+1)=ξfmind(k,i)δ(k,i)κf(k,i)
Шаблон:Pad
Шаблон:PadδD(k,i)=λδD(k1,i)+e(k,i)eb(k,i)γ(k,i)
Шаблон:Padvi(k)=δD(k,i)ξbmind(k,i)
Шаблон:Pade(k,i+1)=e(k,i)vi(k)eb(k,i)
Шаблон:PadEnd
End

Нормализован рекурзиван филтер најмањих квадрата (NLRLS)

Нормализована форма LRLS има мање рекурзије и променљивих. Може се израчунати применом нормализације интерних варијабли алгоритма који ће задржати своју величину. Ово се углавном не користи у реалном времену апликације због броја одељења и квадратног корена операција која долази са високим рачунарским оптерећењем.

NLRLS преглед алгоритма

Алгоритам за NLRLS филтер се може сажети у

Иницијализација:
For i = 0,1,...,N
Шаблон:Padδ(1,i)=0 (if x(k) = d(k) = 0 for k < 0)
Шаблон:PadδD(1,i)=0
Шаблон:Padeb(1,i)=0
End
Шаблон:Padσx2(1)=λσd2(1)=ϵ
Израчунавање:
For k ≥ 0
Шаблон:Padσx2(k)=λσx2(k1)+x2(k) (улазни сигнал снаге)
Шаблон:Padσd2(k)=λσd2(k1)+d2(k) (референтни сигнал снаге)
Шаблон:Padeb(k,0)=ef(k,0)=x(k)σx(k)
Шаблон:Pade(k,0)=d(k)σd(k)
Шаблон:Pad For i = 0,1,...,N
Шаблон:Padδ(k,i)=δ(k1,i)(1eb2(k1,i))(1ef2(k,i))+eb(k1,i)ef(k,i)
Шаблон:Padeb(k,i+1)=eb(k1,i)δ(k,i)ef(k,i)(1δ2(k,i))(1ef2(k,i))
Шаблон:Padef(k,i+1)=ef(k,i)δ(k,i)eb(k1,i)(1δ2(k,i))(1eb2(k1,i))
Шаблон:Pad
Шаблон:PadδD(k,i)=δD(k1,i)(1eb2(k,i))(1e2(k,i))+e(k,i)eb(k,i)
Шаблон:Pade(k,i+1)=1(1eb2(k,i))(1δD2(k,i))[e(k,i)δD(k,i)eb(k,i)]
Шаблон:PadEnd
End

Референце

Шаблон:Reflist

Литература

Шаблон:Нормативна контрола

  1. Emannual C. Ifeacor, Barrie W. Jervis. Digital signal processing: a practical approach, second edition. Indianapolis: Pearson Education Limited. (2002). стр. 718.
  2. Welch, Greg and Bishop, Gary "An Introduction to the Kalman Filter", Department of Computer Science, University of North Carolina at Chapel Hill, September 17, 1997, accessed July 19, 2011.
  3. Albu, Kadlec, Softley, Matousek, Hermanek, Coleman, Fagan "Implementation of (Normalised) RLS Lattice on Virtex" Шаблон:Wayback, Digital Signal Processing, 2001, accessed December 24, 2011.