• Domingo 22 de Diciembre de 2024, 07:53

Autor Tema:  Algoritmo Lms  (Leído 6862 veces)

Niad

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Algoritmo Lms
« en: Domingo 18 de Junio de 2006, 04:24 »
0
Hola a todos!, es la primera vez que escribo aquí, y bueno mi duda es la siguiente:
Estoy haciendo un programa sobre reducción de eco, utilizando el algoritmo LMS para realizar la reducción, el código que llevo hasta ahorita es el que dejo a continuación, mi duda es en la parte donde se realiza la convolución de los pesos del filtro con la señal con eco, por lo que he leido de teoría, no necesamiente deben de ser de la misma longitud, mi duda es entonces porque no realiza esa operación? De antemano agradezco a los que contesten y se tomen unos momentos para leerlo.

Gracias  :hola:


%%Codigo%%%
 
fo=3e2;
wo=2*pi*fo;
ws=(2*pi*fo)/(8*fo);

n=0:0.1:9;
S=sin(ws*n);

alfa=[0.9 0.7];
ret=[10 20];
m=length(ret);
he=zeros(1,ret(m));
he(1)=1;
for i=1:m
    he(ret(i)+1)=alfa(i);
end

eco=conv(S,he);


N=7;
Wi=[zeros(1,(N*2))]';
Wi(1)=1;
for i=1:length(eco);
    for j=1:length(eco);
        Fi(i,j)=eco(i)*eco(j);
    end;
end;


for n=1:200;
    D=sin(ws*n);
    A=eig(Fi);mu=1/(50*max(A));
    Yjp(n)=Wi(n)'*eco(n); Ej=D-Yjp;
    Wj=Wi(n)+(2*mu*Ej*eco(n));
    Wi=Wj;
end

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Algoritmo Lms
« Respuesta #1 en: Lunes 19 de Junio de 2006, 17:31 »
0
mira, no me dio mucho tiempo de analizar tu codigo, B)

 pero las lineas que te  marco tienen algo raro, <_<

 parecciera que Wj tambien deberia depender de n, pero  como lo tienes solo generas un solo valor,  :blink:
y en la siguiente linea lo asignas a Wi, por lo que Wi lo cambias de un vector de 1*n en uno de 1*1 es decir  un solo valor  :unsure:


for n=1:200;
D=sin(ws*n);
A=eig(Fi);mu=1/(50*max(A));
Yjp(n)=Wi(n)'*eco(n); Ej=D-Yjp;
Wj=Wi(n)+(2*mu*Ej*eco(n));     <---------
Wi=Wj;                                      <----------
end


revisalo para ver si esto es lo que esta mal :hola:

cleo

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Algoritmo Lms
« Respuesta #2 en: Martes 20 de Junio de 2006, 12:18 »
0
Hola, yo tabién estoy utilizando el algoritmo lms para cancelacion de ecos en mi proyecto fin de carrera. Yo he utilizado otra función más corta, pero la realizo en el dominio del tiempo y la tuya me ha parecido que es en la frecuencia, si estás interesado indicamelo en este foro y te paso el código.

¿Sabes de otro algoritmo que sirva para la cancelación de ecos que no sea el lms y se pueda implementar en matlab? Me sería de gran ayuda porque llevo semanas buscando y no encuentro nada concreto. Gracias

Niad

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Algoritmo Lms
« Respuesta #3 en: Miércoles 21 de Junio de 2006, 01:30 »
0
Hola, muchas gracias por responder.

allisap voy a checar lo que me indicas, la razón por la que Wj lo asigno a Wi es para que vayan cambiando los coeficientes del filtro adaptativo, pero si tienes razón Wj en todo caso también debe de depender de n.

cleo, si me interesa lo que estas realizando, te agradecería mucho si puedes pasarme el código. El código con el que estoy trabajando es en el dominio del tiempo. En cuanto a los algoritmos para cancelación de eco los que conozco son: LMS, NLMS (LMS Normalizado), APA (Affine Projection Algorithm) y RLS (Recursive Least Square) la verdad no he intentado de implementar los demás, sólo he trabajado con el LMS.

Nuevamente muchas gracias!  :hola:

cleo

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Algoritmo Lms
« Respuesta #4 en: Viernes 23 de Junio de 2006, 13:14 »
0
Te paso un archivo que encontré en internet en el que viene todo muy bien explicado y el código para matlab.

Los algoritmos que me has nombrado también los había encontrado, pero me tengo que centrar en los FIR (el APA me ha dicho mi tutor que me olvide). El RLS no me sirve porque es igual que el LMS, pero recursivo. Tengo otras variantes del LMS (FIR-SD-LMS, FIR-SE-LMS y el que tú me has nombrado NMLS), pero no encuentro nada en internet que me aclare de qué tratan y cómo se implementan. Si te enteras de algo... Tendré que enchufarme algún libro en inglés, me temo.

Espero que te sirva lo que te envio, yo lo he probado y va a las mil maravillas. :rolleyes:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Niad

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Algoritmo Lms
« Respuesta #5 en: Viernes 30 de Junio de 2006, 01:32 »
0
Hola Cleo, muchas gracias por el archivo esta muy bien y sobre todo manejan un algoritmo muy sencillo.

Sobre los otros algoritmos no he encontrado algo, pero por lo que he leído el LMS es el más sencillo de todos además de que es un método bastante bueno. También he leído que se puede realizar la cancelación en el dominio de la frecuencia utilizando Fourier, esa sería otra opción, aunque la verdad no tengo información de como implementarlo.

Saludos!  :)

 :hola:

martinto

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Algoritmo Lms
« Respuesta #6 en: Martes 22 de Agosto de 2006, 02:54 »
0
Hola yo tambien estoy haciendo un eliminador de ecos
ahora estoy traando de eliminar ecos de una señal, y posteriormente ver la posibilidad de hacerlo en tiempo real, para ello voy a grabar una señal en la que hayan ecos y moverme mientras grabe, luego tendre que usar filtros adaptivos

el pdf que mando cleo no lo entiendo bien, si alguien lo ha aplicado podria enviar el .m con las señales originales y grabadas porfavor,
gracias

niad podrias darme tu mail, el mio es martinolio@hotmail.com

jaimico_215

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Algoritmo Lms
« Respuesta #7 en: Sábado 8 de Diciembre de 2007, 00:29 »
0
Cita de: "cleo"
Hola, yo tabién estoy utilizando el algoritmo lms para cancelacion de ecos en mi proyecto fin de carrera. Yo he utilizado otra función más corta, pero la realizo en el dominio del tiempo y la tuya me ha parecido que es en la frecuencia, si estás interesado indicamelo en este foro y te paso el código.

¿Sabes de otro algoritmo que sirva para la cancelación de ecos que no sea el lms y se pueda implementar en matlab? Me sería de gran ayuda porque llevo semanas buscando y no encuentro nada concreto. Gracias
que tal amigo yo estoy interesado en un algoritmo corto para cancelar el eco xfa necesito de urgencia


te agradeceria mucho que me pasaras el codigo ya sea x mail o x este foro...

nota: lo necesito hasta el domingo 7 de Dic xfa xfa estoy desesperado.....