next up previous
Next: About this document ... Up: 12. Cvičení 12: Směrový Previous: 12.1 Formulace úlohy, LMS

Subsections

12.2 Formulace bez okrajových podmínek - GSC (Global Sidelobe Canceler)

V této části budu vynechávat označení $ n$ u váhového vektoru, bude to přehlednější. Podíváme se nyní na jiné řešení uvedeného problému. Pokusíme se celý prostor vah otočit tak (viz. Obr. 12.3), aby lineární podprostor $ \mathbf{C}^T\mathbf{w} = \mathbf{o}$ po transformaci odpovídal lineárnímu obalu $ JK-J$ 12.1vektorů standardní báze. Jinými slovy, aby část souřadnic transformovaného váhového vektoru $ \mathbf{w}'$ byla přímo určena okrajovými podmínkami, a naopak aby na zbývající souřadnice nebyly uvaleny žádné okrajové podmínky. To má výhodu v tom, že souřadnice $ \mathbf{w}'$ bez okrajových podmínek lze upravovat pomocí LMS bez okrajových podmínek, čímž se zamezí výše zmíněným chybám (zbytek souřadnic je daný okrajovými podmínkami a nemusí se tedy upravovat vůbec - je fixní).

Figure 12.3: K transformaci (otočení) váhového prostoru
\begin{figure}\begin{center}
\pstexfig{a12tr}\hfill\pstexfig{a12trb}
\end{center}
\end{figure}

Pokusíme se transformaci uvedených vlastností nalézt. Nejprve ale nalezneme ortonormální bázi k lineárnímu obalu sloupců matice $ \mathbf{C}$ (lineární obal sloupců matice budu dále značit $ <\mathbf{C}>$) a jeho ortogonálnímu doplňku. Tedy takovou ortonormální bázi $ \mathcal{R}^{JK}$ (vektory báze seřadím do ortonormální matice $ \mathbf{Q}$)

\begin{displaymath}\begin{gathered}\mathbf{Q}^T\mathbf{Q} = \mathbf{E}, \\ \mathbf{Q} = [\mathbf{Q}_n\vert \mathbf{Q}_c] , \end{gathered}\end{displaymath} (12.7)

aby

$\displaystyle <\mathbf{Q}_n> = <\mathbf{C}>$ (12.8)

(sloupce $ \mathbf{Q}_n$ tvoří ortonormální bázi $ <\mathbf{C}>$ a $ \mathbf{Q}_c$ z ortogonality $ \mathbf{Q}$ bázi ortogonálního doplňku). Nalezení matice $ \mathbf{Q}$ uvedených vlastností lze provést pomocí QR-rozkladu matice $ \mathbf{C}$, což ukáži později. Nyní předpokládejme, že máme již $ \mathbf{Q}$ k dispozici.

Transformace $ \mathbf{Q}\cdot$ transformuje standardní bázi (sloupce $ \mathbf{E}$) na bázi složenou z sloupcových vektorů $ \mathbf{Q}$

$\displaystyle \mathbf{Q}\mathbf{E} = \mathbf{Q}.
$

My chceme nalézt opak. Hledaná transformace je tedy $ \mathbf{Q}^{-1} = \mathbf{Q}^T$. Transformovaný vektor rozdělíme na dvě části

$\displaystyle \mathbf{w}' = \mathbf{Q}^T \mathbf{w} = \left[\begin{array}{c} \m...
...w} = \left[\begin{array}{c} \mathbf{w}_n' \\ \mathbf{w}_c' \end{array}\right] .$ (12.9)

Uvedu ještě inverzní vztah

$\displaystyle \mathbf{w} = \mathbf{Q} \mathbf{w}' = [\mathbf{Q}_n\vert \mathbf{...
...c' \end{array}\right] = \mathbf{Q}_n\mathbf{w}_n' + \mathbf{Q}_c\mathbf{w}_c' .$ (12.10)

Dosadíme $ \mathbf{w}$ z (12.10) do okrajové podmínky (12.6) a dostaneme

$\displaystyle \mathbf{f} = \mathbf{C}^T\mathbf{w} = (\mathbf{C}^T \mathbf{Q}_n)...
...bf{w}_n' + \mathbf{O}\mathbf{w}_c' = (\mathbf{C}^T \mathbf{Q}_n)\mathbf{w}_n' ,$ (12.11)

kde jsme použili ortogonalitu sloupců $ \mathbf{C}$ k sloupcům $ \mathbf{Q}_c$ (součin $ \mathbf{C}^T\mathbf{Q}_c = \mathbf{O}$ vyjde tedy jako nulová matice - sloupce obou matic náleží do navzájem ortogonálních podprostorů). Z (12.11) plyne, že $ \mathbf{w}_c'$ není okrajovými pomínkami nijak omezeno. Naopak z regularity součinu $ (\mathbf{C}^T \mathbf{Q}_n)$ (lze dokázat) plyne, že $ \mathbf{w}_n'$ je okrajovými podmínkami určeno jednoznačně

$\displaystyle \mathbf{w}_n' = (\mathbf{C}^T \mathbf{Q}_n)^{-1}\mathbf{f} .$ (12.12)

12.2.1 struktrura GSC, LMS algoritmus

Abychom mohli zakreslit novou strukturu s transformovanými vahami dosadíme z (12.10) do rovnice filtrace (12.2). Nyní již opět začnu vyznačovat u vah závislost na diskrétním čase $ n$. Jak jsme již uvedli, u transformovaného váhového vektoru lze měnit pouze část $ \mathbf{w}_c'[n]$, část $ \mathbf{w}_n'$ je jednoznačně určena okrajovými podmínkami a je tedy konstantní proto zde závislost na čase nevyznačuji.

\begin{equation*}\begin{aligned}e[n] &= \mathbf{w}^T[n] \mathbf{x}[n] = (\mathbf...
... \\ \mathbf{x}'[n] &= \mathbf{Q}_c^T \mathbf{x}[n]. \end{aligned}\end{equation*}

Rovnici (12.13) odpovídá struktura na Obr. 12.4.

Figure 12.4: Struktura GSC
\begin{figure}\begin{center}
\pstexfig{a12gsc}
\end{center}
\end{figure}

Váhy $ \mathbf{w}_c'[n]$ nejsou okrajovými podmínkami nijak omezeny proto na jejich úpravu mohu použít obyčejné LMS bez okrajových podmínek. Z (12.13) určíme gradient

$\displaystyle \frac{\partial e^2[n]}{\partial \mathbf{w}_c'[n]} = 2 e[n] \frac{\partial e[n]}{\partial \mathbf{w}_c'[n]} = 2 e[n] \mathbf{x}'[n]$ (12.14)

a sestavíme rovnici pro úpravu vah

$\displaystyle \mathbf{w}_c'[n+1] = \mathbf{w}_c'[n] - \mu e[n] \mathbf{x}'[n] .$ (12.15)

Celý LMS algoritmus pro GSC je shrnut v následující tabulce:


Table 12.1: LMS algoritmus pro GSC (Global Sidelobe Canceler)
\begin{table}\noindent\framebox[16cm]{\vbox{%
\begin{tabbing}%
\hspace*{1cm}\=\h...
...] = \mathbf{w}_c'[n] - \mu e[n] \mathbf{x}'[n]$
\\
\end{tabbing}}}\end{table}



Cvičení 12.0: Napište skript v Matlabu implementující strukturu GSC viz. Obr. 12.4 váhy nastavujte pomocí LMS viz. tabulka 12.1 konvergenční konstantu volte mu = 0.1/((J*K-J)*rxx0). Senzorové pole se skládá z $ K=4$ senzorů umístěných rovnoměrně v řadě (Uniform Linear Array - ULA). Vzdálenost mezi sousedními senzory odpovídá jednomu vzorku. K dispozici jsou následující signály sejmuté na senzorech (signály se šíří s rovinnou vlnoplochou):
signál zpoždění mezi sousedními senzory úhel dopadu
řeč 0 vzorků $ 0^{\circ}$
bílý šum $ 0.5$ vzorků $ 30^{\circ }$

Konfigurace je znázorněna na následujícím obrázku 12.5.

Figure 12.5: Konfigurace
\begin{figure}\pstexfig{a12konfig}\end{figure}

1. Vygenerujte směs řeč ($ 0^{\circ}$) + bílý šum ( $ 30^{\circ }$). Proveďte filtraci této směsi. Jako impulsovou odezvu ve směru pohledu volte Dirakův impuls. Délku filtru za senzory volte $ J=7$ a $ J=21$. Porovnejte spektrogramy použité řeči, bílého šumu, směsi na senzorech, a výstupu filtru.
2. Pokuste se vylepšit předchozí výsledek volbou vhodnější impulové odezvy ve směru pohledu.
3. Místo směrového bílého šumu, použijte bílý šum nezávislý mezi senzory.


Uvádím skript na generování matice $ \mathbf{C}$ a vektoru $ \mathbf{f}$, dále výpočet matic $ \mathbf{Q}_c$ a $ \mathbf{Q}_n$ pomocí QR-rozkladu matice $ \mathbf{C}$:

C = zeros(J*K,J);
for c=1:J
    C((c-1)*K+1:c*K,c) = ones(K,1);
end;
f = [ zeros(1,floor(J/2)) 1 zeros(1,floor(J/2)) ]';

[ Q R ] = qr(C);
Qn = Q(:,1:J);
Qc = Q(:,J+1:J*K);
wn = inv(C'*Qn)*f;
wp = (wn'*Qn')';

12.2.1.0.1 Výsledky:

Figure 12.6: Spektrugramy pro $ J=7$ (zleva doprava): rušivého signálu $ r[n]$ (bílý šum z $ 30^{\circ }$), užitečného signálu $ s[n]$, směsi na senzorech $ x[n]$, výstupu $ e[n]$
\includegraphics[width=10cm]{ada12/obrmat/fig1.ps}


next up previous
Next: About this document ... Up: 12. Cvičení 12: Směrový Previous: 12.1 Formulace úlohy, LMS
Mirek 2006-12-12