From: DOA estimation based on data level Multistage Nested Wiener Filter
Initialization | |
\( \begin{array}{c}\hfill {\mathbf{t}}_{B(1)}={\left({e}^{j{\phi}_k}{r}_k\right)}^{*}{\mathbf{y}}_B(n)/{\left\Vert {\left({e}^{j{\phi}_k}{r}_k\right)}^{*}{\mathbf{y}}_B(n)\right\Vert}_2,\kern0.24em \hfill \\ {}\hfill \kern1.44em n=1,\cdots, \kern0.1em L-1\hfill \end{array} \) | |
Forward recursion for i = 2, ⋯, D | |
\( {\mathbf{t}}_{B(i)}={\displaystyle {\sum}_{i=1}^{L-1}{d}_{B\left(i-1\right)}^{*}{\mathbf{x}}_{B\left(i-1\right)}(n)/}{\displaystyle {\sum}_{i=1}^{L-1}{\left\Vert {d}_{B\left(i-1\right)}^{*}{\mathbf{x}}_{B\left(i-1\right)}(n)\right\Vert}_2} \) | |
t B(i) = t B(i)/‖t B(i)‖2 | |
\( {d}_{B(i)}(n)={\mathbf{t}}_{B(i)}^{\mathrm{H}}{\mathbf{x}}_{B\left(i-1\right)}(n),\kern0.24em n=1,\cdots, L-1 \) | |
x B(i)(n) = x B(i− 1)(n) − d B(i)(n)t B(i), n = 1, ⋯, L − 1 | |
ε B(D)(n) = d B(D)(n), n = 1, ⋯, L − 1 | |
Backward recursion for i = D − 1, ⋯, 2 | |
\( {\omega}_{B\left(i+1\right)}={\displaystyle {\sum}_{i=1}^{L-1}{d}_{B(i)}(n){\varepsilon}_{B\left(i+1\right)}^{*}(n)/}{\displaystyle {\sum}_{i=1}^{L-1}{\left|{\varepsilon}_{B\left(i+1\right)}(n)\right|}^2} \) | |
ε B(i)(n) = d B(i)(n) ‐ ω B(i+ 1) ε B(i+ 1)(n), n = 1, ⋯, L − 1 | |
Calculate the Wiener filter coefficient | |
\( {\mathbf{w}}_k^{B(D)}={\displaystyle {\sum}_{i=1}^D{\left(-1\right)}^{i+1}\left\{{\displaystyle {\prod}_{l=1}^i}\left(-{\omega}_{B(l)}\right)\right\}\times {\mathbf{t}}_{B(i)}} \) |