Apontamentos de Processamento Adaptativo de Sinais 4. O algoritmo LMS e variantes
Família de algoritmos do gradiente Na prática usam-se estimativas do gradiente, ˆ (n), em vez do verdadeiro gradiente (n), pois não é possível calcular valores médios com base num único instante n sem conhecer a estatística de conjunto. A equação genérica de actualização de coeficientes, que antes era c(n + 1) = c(n) µ (n), passa a ser c(n + 1) = c(n) µˆ (n) Consoante a estimativa do gradiente que se use assim vamos obter uma diferente simplificação do algoritmo. Podemos classificar os diversos algoritmos em dois grupos: O algoritmo LMS e variantes 4-2
O algoritmo LMS A mais popular de todas as estimativas de (n) foi sugerida por Widrow e Hoff em 1959. consiste em substituir os valores médios das variáveis pelos seus valores instantâneos. o algoritmo resultante chama-se algoritmo LMS ("least-mean-squares"). No algoritmo LMS a estimativa do gradiente vem dada por ˆ (n) = e2 (n) c(n) = e 2 (n) c o (n) e 2 (n) c 1 (n) e 2 (n) c N 1 (n) = 2e(n) e(n) c o (n) e(n) c 1 (n) e(n) c N 1 (n) = 2e(n)a(n) ou ainda por ˆ (n) = e2 (n) c(n) = 2 [ a(n)at (n)]c(n) 2d(n)a(n) A equação de actualização de coeficientes é c(n + 1) = c(n) + 2µe(n)a(n) (LMS) O passo de adaptação deve ter um valor na gama 0 <µ< 1 λ max (ou melhor ainda: 0 <µ< 1 tr(r) ) O algoritmo LMS e variantes 4-3
Valores médios da estimativa do gradiente e dos coeficientes Quando o valor médio da estimativa de um parâmetro é igual ao próprio parâmetro diz-se que a estimativa não é tendenciosa ou não é enviesada. A estimativa ˆ (n) é aleatória mas não é enviesada. Porquê? Porque, se c(n) for mantido constante (c(n)=c): E[ ˆ (n)] = 2Rc 2 p = (n) Em média, o vector c(n) converge para o valor óptimo. E[c(n +1)] = (I 2µR)E[c(n)] + 2µp À medida que o índice n se aproxima de infinito os coeficientes atingem os seus valores de regime permanente e a média de E[c(n +1)] é igual à média de E[c(n)] : E[c( )] = (I 2µR)E[c( )]+ 2µp E[c( )] = R 1 p = c opt O algoritmo LMS e variantes 4-4
O efeito da estimativa ruidosa no algoritmo LMS Devido à estimativa ruidosa do gradiente, o vector de coeficientes c(n) não atinge o valor óptimo, apenas flutua em torno dele, se o passo µ for constante. A flutuação é tanto maior quanto maior for µ. O erro quadrático médio final ε ( ) não é igual ao erro quadrático médio mínimo, ε min. Uma medida da qualidade da aproximação é o desajuste, M: M = E [ ε ( ) ] ε min ε min µtr[r] (se µ<< 1 λ max ) (Um valor de M = 10% é razoável) O que fazer para melhorar o desempenho? 1. No início da adaptação o passo µ deve ser grande. Porquê? Para que a convergência seja rápida. 2. Depois, já mais próximo do regime permanente, vai-se reduzindo o passo. Porquê? Para que o erro residual final seja pequeno. O algoritmo LMS e variantes 4-5
Exemplo com LMS Filtro adaptativo com N=2 e N=3 Ruído r(n) d(n)= 3sen ω 1 n + u(n) Filtro adaptativ - + + e(n) a(n)=2 cos ω 1 n+ cos ω 2 n 2π ω1 = rad / s 6 ω2 = 2ω1 2 Variância do ruído branco: σ 1 = 0,0025 S/N = 30dB µ = 0,02 (N = 2) e µ = 0,013 (N = 3) (para que M 10%) Os cálculos conduziriam a: N = 2: 2,5 0, 75 R 0,75 2,5 p = 0 1, 5 c opt = R 1 18 / 91 p = 60 / 91 = 0,1978 0,6593 2 2 ε = 2,5(c 0 + c1 ) 3c1 +1, 5c 0 c 1 +1, 5 (com ε min = 0,511) N = 3: 2,5 0,75 1, 25 R 0, 75 2,5 0, 75 1,25 0,75 2,5 p = 0 1, 5 1, 5 c opt = 0,175 0,375 0,575 ε min = 0,075 com N = 3 o fundo da taça está mais baixo. o passo de adaptação teve de ser menor (para igual M). há uma menor flutuação junto ao fundo da taça (ver fórmula do desajuste). O algoritmo LMS e variantes 4-6
Gráficos do exemplo com LMS O erro quadrático médio foi obtido como a média de conjunto dos erros quadráticos instantâneos obtidos em 100 simulações. Curva de aprendizagem (desajustes aproximadamente iguais) Curva de aprendizagem com algoritmos LMS e gradiente (N=3) O algoritmo LMS e variantes 4-7
Variantes do algoritmo LMS O algoritmo LMS é o mais usado de todos os algoritmos adaptativos. As variantes de LMS surgiram para: 1. simplificar a implementação do algoritmo; 2. acelerar a convergência dos coeficientes em direcção aos seus valores óptimos; 3. reduzir o erro residual dos coeficientes em regime permanente, relativamente aos valores óptimos. Variantes a apresentar em seguida: Passo fixo: LMS normalizado Algoritmo do sinal Passo variável: Algoritmo VS O algoritmo LMS e variantes 4-8
Algoritmo LMS normalizado (NLMS) O passo é normalizado relativamente ao quadrado da norma euclidiana de : a(n) N 1 a(n) 2 = a T (n)a(n) = a 2 (n j) Isto faz-se para que a convergência do algoritmo fique mais independente do sinal de entrada. Este escalar de normalização é a soma dos quadrados dos sinais que em cada momento se encontram em cada andar do filtro transversal adaptativo j=0 O quadrado da norma pode ser calculado recursivamente porque em cada nova iteração n só aparece uma nova amostra de sinal, a(n), à entrada enquanto que a mais antiga é deitada fora e as outras são simplesmente deslocadas: a(n) 2 = a 2 (n) + a(n 1) 2 a 2 (n N) A equação de actualização de coeficientes é 2µ c(n + 1) = c(n) + b + a(n) 2 e(n) a(n) 0 < µ < 1 (para garantir convergência) não depende do sinal de entrada! b > 0 (para evitar divisão por valor muito pequeno ou zero) O algoritmo LMS e variantes 4-9
Algoritmo do sinal Os cálculos do algoritmo LMS podem ser simplificados se se usar uma estimativa ˆ (n) ainda mais simples, como no algoritmo do sinal, onde se toma uma aproximação mais grosseira do gradiente considerando apenas o sinal de e(n): em que ˆ (n) = 2sign[e(n)] a(n) sign(x ) = 1 x < 0 1 x 0 O algoritmo é expresso por A função sign(x) c(n + 1) = c(n) + 2µsign[e(n)]a(n) (Sinal) Para se obter mesmo erro final µ tem de ser mais pequeno ( convergência mais lenta). Se a(n) = ±1 o termo corrector é ±2µ. Outras alternativas: c(n + 1) = c(n) + 2µe(n)sign[a(n)] c(n + 1) = c(n) + 2µsign[e(n)]sign[a(n)] O algoritmo LMS e variantes 4-10
Algoritmo VS ("variable step") Mesma estimativa de gradiente do algoritmo LMS mas o passo de adaptação deixa de ser constante e idêntico para todos os coeficientes: c(n + 1) = c(n) + 2e(n)M(n)a(n) (VS) M(n) é a matriz diagonal dos diferentes passos: µ o (n) 0 0 0 µ 1 (n) 0 M(n) = 0 0 µ N 1 (n) A matriz M(n) melhora o método LMS ao fornecer uma estimativa direccional mais rigorosa do fundo da superfície de erro. Regra de variação de µ: 1. Os passos µ i (n) (i = 0, 1,, N -1) podem ter valores entre µ min e µ max. O valor mínimo deve ser adequado ao desajuste desejado em regime permanente e o valor máximo deve respeitar 0 <µ < 1 max. λ max 2. Os passos µ i (n) são aumentados por um factor constante a (2, por exemplo) se a componente de ordem i de ˆ (n) mantiver o mesmo sinal em m 1 amostras sucessivas, a não ser que µ i ( n) = µ max, e são diminuídos pelo mesmo factor a se ˆ (n) mudar de sinal em m o amostras sucessivas, a não ser que µ ( n) = µ i min. Valores de m o e m 1 : 2 ou 3. O algoritmo VS converge mais rapidamente que LMS. A implementação do algoritmo é um pouco mais complexa. O algoritmo LMS e variantes 4-11
Exemplo comparativo entre LMS, NLMS e Sinal Mesmo esquema do exemplo anterior, com N=3 mas sem ruído c opt = [ 0,175 0,375 0,575] T NLMS: µ b+ a(n) 2 0,013 0,1 + 7,5 = 0,0017 Evolução dos coeficientes do filtro com os algoritmos LMS e NLMS Evolução dos coeficientes do filtro usando o algoritmo do sinal O algoritmo LMS e variantes 4-12
Exemplo comparativo entre LMS, NLMS e Sinal (Cont.) Erro quadrático instantâneo usando LMS normalizado (evolução exponencial decrescente) Erro quadrático médio usando LMS e NLMS (LMS: µ=0,013; NLMS: µ b+ a(n) 2 0,0017 ) O algoritmo LMS e variantes 4-13
Equações de actualização de coeficientes em algoritmos do tipo LMS Sinais e coeficientes reais LMS c(n + 1) = c(n) + 2µe(n)a(n) LMS normalizado c(n + 1) = c(n) + 2µ b + a(n) 2 e(n) a(n) b > 0 0 < µ < 1 Sinal c(n + 1) = c(n) + 2µsign[e(n)]a(n) c(n + 1) = c(n) + 2µe(n)sign[a(n)] c(n + 1) = c(n) + 2µsign[e(n)]sign[a(n)] VS c(n + 1) = c(n) + 2e(n)M(n)a(n) O algoritmo LMS e variantes 4-14
Equações de actualização de coeficientes em algoritmos do tipo LMS Sinais e coeficientes complexos a (n) = a I (n) + ja Q (n) c (n) = c I (n) + jc Q (n) d(n) = d I (n) + jd Q (n) e(n) = e I (n) + je Q (n) R ˆ = a(n) a H (n) y(n) = y I (n) + jy Q (n) = = c H (n)a(n) ˆ p = a(n) d (n) y I (n) = c T I (n)a I (n) c T Q (n)a Q (n) y Q (n) = c T I (n)a Q (n) + c T Q (n)a I (n) e (n) = d(n) y(n) e I (n) = d I (n) y I (n) e Q (n) = d Q (n) y Q (n) LMS c(n + 1) = c(n) + 2µe (n)a(n) c I (n + 1) = c I (n) + 2µ[e I (n)a I (n) e Q (n)a Q (n)] c Q (n +1) = c Q (n) + 2µ[e I (n)a Q (n) + e Q (n)a I (n)] LMS normalizado c(n + 1) = c(n) + b 2µ b + a(n) 2 e (n) a(n) > 0 0 < µ < 1 a(n) 2 = a H (n) a(n) Sinal c(n + 1) = c(n) + 2µsign[e (n)]a(n) c(n + 1) = c(n) + 2µe (n)sign[a(n)] c(n + 1) = c(n) + 2µsign[e (n)]sign[a(n)] O algoritmo LMS e variantes 4-15