Velkou nevýhodou LMS ekvalizátoru, o které jste se přesvědčili v poslední úloze je neschopnost zotavení při skokové změně přenosové funkce linky. Jediné řešení je přepnutí do trénovací fáze. Tuto nevýhodu odstraňuje CMA (Constant Modulus Algorithm).
Všiměte si, že datový signál má konstantní modul
, CMA se jednoduše snaží tuto vlastnost obnovit
i na výstupu adaptivního filtru
.
Tomu pak odpovídá definice chybového signálu , jehož
kvadrát se CMA snaží minimalizovat. Chybový signál je jednoduše
definován jako rozdíl kvadrátů modulů odhadu
a čistého datového signálu
(Kvadrátů proto,
že se jednodušeji derivují narozdíl od pouhých modulů)
CMA lze použít i pro obecnější signály než zde popsaný.
Napříkad komplexní fázově modulovaný signál.
Zde jsem však uvedl pouze rovnice pro případ reálných signálů.
Dále upozorněme, že jelikož zde minimalizovaná účelová funkce
není kvadratickou formou ve
může být horní mez
pro volbu konvergenční konstanty
odlišná od té, která byla
pro LMS uváděna na přednáškách nebo zde na cvičení
viz. cvičení 6.1.
Cvičení 6.2: Upravte stávající skript pro LMS ekvalizátor (nebo napište nový), tak aby umožňoval použití CMA.
Vyzkoušejte si použití CMA na stejném zadání jako v předchozím cvičení 6.1.
Výsledky:
![]() |
Cvičení 6.3: Rozptyl aditivního šumu volte
.
Pokusíme se o reálnější model přenosové linky.
Linku modelujte FIR filtrem řádu 4 s konstantním skupinovým zpožděním
jako dolnofrekvenční propust.
Vyzkoušejte obě uvedené metody: LMS ekvalizátor
(s použitím i bez použití trénovací fáze) a CMA.
Budete muset zvýšit řád adaptivního filtru (například ) i
zpoždění v trénovací fázi (například
).
K získání koeficientů polynomu čitatele přenosové funkce přenosové linky můžete použít funkci remez (zadejte help remez pro popis parametrů):
link_A = [ 1; zeros(4,1)]; % FIR lin faze link_B = remez(4,[0,1/3,1/3+0.1,1],[1,1,0.4,0.4])';Zkuste nejprve uvedené nastavení a pak zkuste snížit zesílení v nepropustném pásmu.
Výsledky:
![]() |
![]() |