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.
Figura 1: Filtragem adaptativa para eliminação de interferências.

Assumindo que o filtro adaptativo tenha \(M=2\) coeficientes, pede-se:

  1. 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)\).
  2. 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 .

  3. 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.
  4. 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.

  5. 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.
  6. 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.