Algorisme LMS

De Viquipèdia
Dreceres ràpides: navegació, cerca

L'algorisme LMS (de l'anglès, Least-Mean-Square algorithm) s'usa en filtres adaptatius per trobar els coeficients del filtre que permeten obtenir el valor esperat mínim del quadrat del senyal d'error, definit com la diferència entre el senyal desitjat i el senyal produït a la sortida del filtre.

Pertany a la família dels algorismes de gradient estocàstic, és a dir, el filtre s'adapta sobre la base del error en l'instant actual únicament. Va ser inventat en 1960 pel professor de la Universitat de Stanford Bernard Widrow i el seu primer estudiant de doctorat, Ted Hoff.

La seva importància és que és un algorisme molt simple. No requereix mesures de les funcions de correlació, ni tampoc inversió de la matriu de correlació.

Un filtre és un procés mitjançant el qual a un senyal qualsevol se li modifica el seu contingut espectral. L'algorisme LMS és un algorisme de filtratge lineal adaptatiu que, en general, consisteix de dos processos bàsics:

  • Un procés de filtratge, que involucra:
    • El còmput de la sortida d'un filtre lineal en resposta a un senyal d'entrada, i
    • La generació d'una estimació de l'error mitjançant la comparació d'aquesta sortida amb el senyal desitjat.
  • Un procés adaptatiu, que involucra l'ajust automàtic dels paràmetres del filtre d'acord a l'error estimat.

Quan es parla de filtres adaptatius, està implícit que els paràmetres que caracteritzen el filtre, com ara el amplada de banda i freqüències dels zeros, entre altres, canvien amb el temps, és a dir, els coeficients dels filtres adaptatius canvien amb el temps, en contraposició als coeficients dels filtres fixos que són, teòricament, invariants amb el temps.

Resum de l'algorisme LMS[modifica | modifica el codi]

L'algorisme LMS, per a un filtre d'ordre  M , es pot resumir de la següent manera:

Paràmetres:  M = ordre del filtre
 \Mu = mida del pas
Inicialització: Si es disposa d'informació sobre el vector de coeficients del filtre  \hat{\mathbf{w}}(n) , usar per triar un valor vàlid de  \hat{\mathbf{w}}(0) . En cas contrari, fer servir  \hat{\mathbf{w}}(0) = \mathbf{0}
Dades:
Donats :  \mathbf{o}(n) = \left [u (n), o (n-1), \dots, o (n-M+1) \right]^T : senyal d'entrada a l'instant  n
 D (n) : senyal desitjat a la sortida del filtre
A calcular :  \hat{\mathbf{w}}(n+1) = \left [\hat{w}_0 (n+1), \hat{w}_1 (n+1), \dots, \hat{w}_{M-1}(n+1) \right]^T : estimació del vector de coeficients del filtre en l'instant  n+1
Còmput: Per  n = 0, 1, 2, \dots , calcular:
 e (n) = d (n) - \hat{\mathbf{w}}^{H}(n) \cdot \mathbf{o}(n) : senyal d'error
 \hat{\mathbf{w}}(n+1) = \hat{\mathbf{w}}(n)+\mu \, e^{*}( n) \mathbf{o}(n) : adaptació dels coeficients del filtre

El superíndex  T denota transposició, el superíndex  H denota transposada conjugada, l'asterisc denota conjugació i  \hat{\mathbf{w}}^{H}(n) \cdot \mathbf{o}(n) és la sortida del filtre, que es calcula com el producte intern entre el vector de coeficients del filtre  \hat{\mathbf{w}}(n) , els components solen anomenar pesos o weighs , i el vector de dades d'entrada al filtre  \mathbf{o}(n) .

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]