Exercício - Filtro Adaptativo LMS
$$
Considere o diagrama da Figura 1, para o qual valem as seguintes definições:
- \(s(n)\) é o sinal que se deseja medir, após eliminada a interferência. Assuma que \(s(n)\) é um ruído branco, Gaussiano, de média nula e variância \(\sigma_s^2=0,\hspace{-0.15ex}01\);
- a interferência que se deseja eliminar é dada por \(v(n)={\rm sen}(2\pi n/10+\pi/6+\phi_v)\), sendo \(\phi_v\) uma variável aleatória distribuída uniformemente entre 0 e \(2\pi\);
- \(x(n)\) é um sinal correlacionado com a interferência, dado por \(x(n)=5{\rm sen}(2\pi n/10+\phi_x)\) com \(\phi_x=\phi_v\);
- \(d(n)=s(n)+v(n)\) é a resposta desejada para o filtro adaptativo;
- \(e(n)=d(n)-y(n)\) é o erro de estimação.

Assumindo que o filtro adaptativo tenha \(M=2\) coeficientes, pede-se:
Utilize a identidade \({\rm sen}(a){\rm sen}(b)=\frac{1}{2}\cos(a-b)-\frac{1}{2}\cos(a+b)\) para obter a matriz \(\mathbf{R}={\rm E}\{{\mathbf x}(n){\mathbf x}^{\scriptscriptstyle T}(n)\}\) de autocorrelação da entrada e o vetor \(\mathbf{p}={\rm E}\{{\mathbf x}(n)d(n)\}\) de correlação cruzada entre a entrada e o sinal desejado. Calcule:
- o vetor de coeficientes ótimos \({\mathbf w}_{\rm o}=\mathbf{R}^{-1}\mathbf{p}\);
- o erro quadrático médio mínimo \(J_{\min}=\sigma_d^2-\mathbf{p}^{\scriptscriptstyle T}{\mathbf w}_{\rm o}\), justificando a relação entre \(J_{\min}\) e \(\sigma_s^2\); e
- a resposta em frequência do filtro ótimo na frequência da interferência e compare com \(v(n)\) e \(x(n)\).
Com a matriz \(\mathbf{R}\) e a função
numpy.linalg.eig
, calcule a faixa de valores do passo de adaptação \(\eta\) que garante a convergência do algoritmo .Aplique o algoritmo LMS com \(\eta=0,\hspace{-0.15ex}03\) e \(N=500\) iterações. Neste caso, pede-se:
- observe inicialmente os sinais de entrada \(x(n)\), de erro \(e(n)\) e \(s(n)\) em gráficos na mesma escala;
- compare os coeficientes do filtro adaptativo com os coeficientes ótimos calculados no item a, fazendo um gráfico dos coeficientes ao longo das iterações;
- trace as curvas de nível da superfície de erro e sobre elas, a trajetória dos coeficientes;
- trace a curva do erro quadrático \(e^2(n)\) em dB.
Determine experimentalmente o valor máximo de \(\eta\) para convergência do algoritmo LMS e compare-o com o valor calculado no item b para o algoritmo Steepest Descent.
Obtenha uma aproximação para \(J(n)={\rm E}\{e^2(n)\}\) considerando uma média de 500 realizações de \(e^2(n)\). Note que em cada realização, um novo valor de \(\phi\) e um novo \(s(n)\) devem ser considerados. Pede-se:
- obtenha graficamente o valor do MSE em regime;
- a partir do valor do MSE experimental e do \(J_{\min}\) calculado no item a, estime os valores experimentais do EMSE e do desajuste;
- calcule os valores teóricos do desajuste e do EMSE e compare com os valores experimentais.
Repita o item e para \(\eta=0,\hspace{-0.15ex}01\) e \(\eta=0,\hspace{-0.15ex}05\). Trace num mesmo gráfico as curvas de \(J(n)\) em dB para \(\eta=0,\hspace{-0.15ex}01\), \(\eta=0,\hspace{-0.15ex}03\) e \(\eta=0,\hspace{-0.15ex}05\) e verifique o compromisso entre velocidade de convergência e erro quadrático médio.