Cvičení 7.0: Přenosovou funkci identifikovaného systému volte
plant_A = [1;0]; plant_B = [-1;-3]
.
Aditivní rušení budeme opět modelovat bílým stacionárním gausovským
procesem s nulovou střední hodnotou. Rozptyl
volte
.
Vstupní signál
modelujte jako bílý stacionární gausovský
proces s nulovou střední hodnotou a rozptylem 1.
Porovnejte průběhy MSE
LMS algoritmu pro volbu
Missadjustmentu
a
.
Pro výpočet MSE atd., je potřeba více realizací. Skripty pro tyto účely jste si již vytvořili ve cvičení 4 (viz. cvičení 4.2). Zde se hodí skripty pro generování více realiací trochu upravit, neboť vždy budeme porovnávat dva typy algoritmů (nebo dvě verze téhož s různým nastavením) proti sobě., rovněž budu pořebovat uchovávat hodnoty vah. Je tedy vhodné vše držet ve dvou sadách (realizace budících signálů, realizace vah, adt.). Uvedu zde příklad skriptu pro generování realizací chybového signálu:
E1 = zeros(N,R); W1 = zeros(M+1,N,R); E2 = zeros(N,R); W2 = zeros(M+1,N,R); for r=1:R x = X1(:,r); d = D1(:,r); MissAdj = 0.03; lms; E1(:,r) = e; W1(:,:,r) = w; x = X2(:,r); d = D2(:,r); MissAdj = 0.2; % volba mu lms; E2(:,r) = e; W2(:,:,r) = w; end; % rskript pro generování dvou sad realizací
Výsledky:
Je zřejmé (viz. Obr. 4.2),
že v ustáleném stavu by mělo na chybový výstup
projít pouze adidivní rušení
, vstupní signál
by se měl
na chybovém výstupu vykompenzovat (při přesném nastavení vah).
Tedy ideálně (žádný gradientní šum) by mělo být MSE na výstupu rovno
rozptylu aditivního rušení
(proto vynáším MSE normovaně
).
Ověřte si, že vztah (7.1) opravdu funguje.
by mělo
odpovídat
atd..
Cvičení 7.1: Porovnejte průběh MSE na čase a trajektorii vah ve váhovém prostoru
(vyneste si rovněž vrstevnice chybového povrchu) pro LMS
při buzení bílým gausovským šumem (stejné buzení jako v předešlém cvičení
7.1)
a barevným šumem (AR 2. řádu s normovaným rozptylem na 1 stejně jako
ve cvičení 4 pouze moduly obou pólů nastavte na ).
Konvergenční konstantu
volte v obou případech stejně a to tak aby
.
Rozptyl aditivního šumu volte v obou případech
.
MSE je vhodné vynášet logaritmicky, pak byste měli u barevného buzení jasně rozlišit dva sklony (dvě časové konstanty). Proč LMS pro barevné buzení konverguje s dvěma časovými konstantami je vidět z chybových povrchů. Co je to chybový povrch a jak se spočítá je uvedeno podrobně v 4.3. Pokud jste se k tomu ještě nedostali doporučuji nyní přečíst.
Jak víte, chybový povrch
je funkcí váhového
vektoru. Můžeme ho napočítat pouze pro konečně monoho hodnot
.
Omezíme se tedy na body v nějakém intervalu. Ten zvolíme
tak, aby pokud možno obsahoval počáteční nastavení
a
hodnoty vah v ustálení
. Například
.
Zde uvádím skript (indexování sady jsem pro přehlednost vynechal)
esN = 100; w1R = linspace(-3,2,esN); w2R = linspace(-4,1,esN); es = zeros(esN,esN); for i1 = 1:esN for i2 = 1:esN w = [w1R(i1);w2R(i2)]; es1(i2,i1) = ... % doplnte end end
Pro výpočet es(i1,i2) (
)
můžete použít rovnici (4.4).
Musíte ale nejprve odhadnout
,
viz. komentář u (4.4).
Do obrázku si pak vyneste vrstevnice chybového povrchu, několik realizací
trajektorií váhového vektotu a rovněž
.
figure(1) % pouze pro 1. sadu contour(w1R,w2R,10*log(es1)); % vrstevnice (nerovnomerne - log) hold on for r = 1:5 % 5 realizaci plot(W1(1,M+1:N-1,r),W1(2,M+1:N-1,r),'b-'); end; Wmean1 = sum(W1,3)/R; % stredni hodnota plot(Wmean1(1,M+1:N-1),Wmean1(2,M+1:N-1),'r-'); hold off axis square % rotacni paraboloid by mel vypadat jako rotacni xlabel('w1'); ylabel('w2'); title('popisek');
Výsledky:
Vysvětlení rozdílné konvergence LMS při buzení bílým a barevným šumem je uvedeno v 4.3. Již poněkud přesnější vysvětlení uvádím v 7.6. Zde již ale vyžaduji jistou znalost z teorie kvadratických forem. Nezbytné minimum naleznete v 7.5.