You are on page 1of 8

ESCUELA POLITNICA SUPERIOR.

UNIVERSIDAD DE ALCAL

MSTER EN TECNOLOGAS DE LA INFORMACIN Y LAS TELECOMUNICACIONES

Tcnicas de optimizacin en ingeniera. Programacin no lineal. Prctica

El algoritmo LMS. Ejemplo de aplicacin

M Pilar Jarabo Amores Mayo de 2007

Tcnicas de Optimizacin en Ingeniera. Prctica

Estudio del combinador lineal adaptativo


En primer lugar se propone el estudio del combinador lineal adaptativo. Para ello considere el filtro FIR adaptativo cuyo esquema se presenta a continuacin:
x[k] + n[k]

z-1

W0

W1

d[k]

+ +
y[k]

- +

e[k]

Donde: 2 k x [ k ] = sen N n [ k ] es un ruido aditivo, blanco y gaussiano de media nula y varianza igual a 0,05. 2 k d [ k ] = 2 cos N

Matriz de autocorrelacin de la seal de entrada, Rxx: 2 n 2 [ k ] 0.5 cos 0.5 + E N = 2 n 2 [ k ] 0.5 cos 0.5 + E N

R XX

Matriz de correlacin cruzada entre la entrada y la salida deseada, Rxd: 0 = 2 sen N

R Xd

El objetivo es encontrar el vector de pesos ptimo que minimice el error cuadrtico medio entre la salida del filtro y la salida deseada.

Mster en Tecnologas de la Informacin y las Comunicaciones

Tcnicas de Optimizacin en Ingeniera. Prctica

1.- Para N = 30, realice una representacin grfica de la superficie de error asociada al
problema planteado. La expresin de la superficie de error es la siguiente:
T T T 2 2 = E k = E d + Wk R XX Wk 2R Xd Wk

Sustituyendo los valores indicados:


2 2 2 [ k ] = 0.5 + E n 2 [ k ] ( w0 = E k + w1, k ) + w0 k w1k cos

2 N

2 + 2 w1k sen N

+2

% Representacin de la superficie de error: w0k = -40: 0.5: 60; w1k = -40: 0.5:20; [W0k,W1k] = meshgrid(w0k,w1k);
sup_error = 0.55*((W0k.^2)+(W1k.^2))+ ((W0k.*W1k)*cos(2*pi/N)) + 2*W1k*sin(2*pi/N)+ 2;

figure(1); mesh(w0k,w1k,sup_error); title('Superficie de error');

Puede obtener una representacin en curvas de nivel mediante la funcin contour() de Matlab: figure(2); contour(w0k,w1k,sup_error)

2.- Calcule el vector de pesos ptimo y el error cuadrtico medio mnimo para el problema planteado. Recuerde que:

1 W* = R XX R Xd

2 2 2 cos sen N N 2 2 2 1 + E n [ k ]2 cos N = 2 2 2 1 + 2 E n [ k ] sen N 2 2 2 + cos 2 1 E n k [ ] N

( (

) )

Mster en Tecnologas de la Informacin y las Comunicaciones

Tcnicas de Optimizacin en Ingeniera. Prctica

Y que el error cuadrtico medio mnimo viene dado por:


2 T T T 2 min = min = E dk W * R XX W * 2R Xd W* = E d [ k ] R Xd W *

% Clculo del vector de pesos ptimo. W0_min = (2*cos(2*pi/N)*sin(2*pi/N))/(((1+2*0.05).^2)-(cos(2*pi/N)^2)); W1_min = (-2*(1+2*0.05)*sin(2*pi/N))/(((1+2*0.05).^2)-(cos(2*pi/N)^2)); % Clculo del mnimo de la superficie de error: Rxd_real = [0; -sin(2*pi/N)]; potencia_deseada = 2; % Potencia de la seal deseada: error_minimo = potencia_deseada - (Rxd_real)'*[W0_min; W1_min];

3.- Represente el vector de pesos ptimo en la grfica que obtuvo con la funcin contour().

figure(2); hold on; plot(W0_min, W1_min, '*'); hold off;

Algoritmo LMS
En clases de teora se ha estudiado el mtodo de mxima pendiente cuya regla de actualizacin de los coeficientes del filtro es la siguiente:
Wk +1 = Wk ( Wk ) = Wk ( 2R XX Wk 2R Xd )

En el estudio del mtodo se asumi que se dispona de una medida exacta del vector gradiente en cada iteracin. En la mayora de las aplicaciones no se dispone de una medida exacta y debe utilizarse una estimacin basada en una serie de observaciones. Esta estimacin es ruidosa y puede considerarse como el gradiente real contaminado por un ruido aditivo. El algoritmo LMS emplea una estimacin especial del gradiente que resulta vlida para el filtro FIR adaptativo y se puede extender a filtros IIR adaptativos. Como se ver a continuacin, es un algoritmo muy importante debido a su simplicidad y facilidad de clculo. En cada iteracin, el error se calcula como:
T k = d k XT k Wk = d k Wk X k

Y la regla de actualizacin de los coeficientes viene dada por:


Wk +1 = Wk ( Wk )

Mster en Tecnologas de la Informacin y las Comunicaciones

Tcnicas de Optimizacin en Ingeniera. Prctica

Por tanto, para obtener una estimacin del gradiente es necesario estimar el error cuadrtico medio. Este algoritmo utiliza un mtodo instantneo, de modo que la estimacin del error cuadrtico medio en cada iteracin es exactamente el cuadrado del valor del error medido: =E 2 = 2 k k k El gradiente estimado tendr la forma:
( W ) = k ( Wk ) , k ( Wk ) ,..., k ( Wk ) k k w w w 0 1 L
T T

2 ( Wk ) k2 ( Wk ) k ( Wk ) k ( Wk ) 2 ( Wk ) ( Wk ) = k , ,..., k , ,..., k = 2 k wL w w w w w 0 1 0 1 L

L d k xmk wmk k ( W ) m=0 = x = ik wi wi

( W ) = 2 X i = 0,1,..., L k k k k

Y el algoritmo LMS queda: Wk +1 = Wk + 2 k X k 1.- Escriba una funcin lms.m que desarrolle el algoritmo LMS. Debe recibir los siguientes argumentos de entrada:

la seal aplicada a la entrada del filtro, la seal deseada, el orden del filtro cuyos coeficientes se van a ajustar, el nmero de iteraciones, la constante de ajuste el vector de pesos inicial.

A su salida devolver:

la salida en cada iteracin durante el proceso de ajuste, la curva de aprendizaje los vectores de pesos obtenidos durante el proceso.
Nota: Vea el anexo que se adjunta al final del documento.

Mster en Tecnologas de la Informacin y las Comunicaciones

Tcnicas de Optimizacin en Ingeniera. Prctica

2.- Calcule una cota de la constante de ajuste para asegurar la convergencia del algoritmo.
% Clculo de la cota de la constante de ajuste: % Potencia de la seal: potencia = mean(entrada.^2); orden=1; Cota = 1/((orden + 1)*potencia);

3.- Ejecute el algoritmo utilizando las seales que descritas en la primera parte de la prctica. Utilice tres constantes de ajuste: Cota , Cota/10 y Cota/40. Elija como vector de pesos inicial el [-5,5].
% Generacin de las seales. k = 0:199; N = 30;x = sin((2*pi*k)/N); % Se generan 200 muestras de seal. n = sqrt(0.05)*randn(1,200); entrada = x + n; deseada = 2*cos((2*pi*k)/N); [yk,error,Wk]=Lms(entrada,deseada,orden,200,constante_ajuste,[-5,5]);

4.- Represente en una misma grfica las curvas de nivel de la superficie de error y la evolucin del vector de pesos durante el proceso adaptativo.
% Volvemos a elegir los ejes para realizar una representacin en curvas de nivel. clear w0, clear w1, clear W0, clear W1, clear sup_error; w0 = -5:0.1:8;w1 = -10:0.1:5; [W0,W1] = meshgrid(w0,w1);
sup_error = 0.55*((W0.^2)+(W1.^2))+ ((W0.*W1)*cos(2*pi/N)) + 2*W1*sin(2*pi/N)+ 2;

figure(2); contour(w0,w1,sup_error) hold on; plot(Wk(:,1),Wk(:,2),'c'); plot(W0_min,W1_min,'k*'); title('Evolucin del vector de pesos durante el proceso adaptativo') hold off

5.- Represente en dos grficas diferentes la evolucin de cada uno de los pesos durante el proceso y comprela con el valor ptimo para cada uno de ellos.
numero=200; % Nmero de iteraciones del proceso adaptativo figure(3); subplot(2,1,1);plot(Wk(:,1));hold on;plot(W0_min*ones(1,numero)); hold on; title('Evolucin del primer coeficiente durante el proceso adaptativo'); subplot(2,1,2); plot(Wk(:,2));hold on;plot(W1_min*ones(1,numero)); hold off title('Evolucin del segundo coeficiente durante el proceso adaptativo');

Mster en Tecnologas de la Informacin y las Comunicaciones

Tcnicas de Optimizacin en Ingeniera. Prctica

6.-Represente la curva de aprendizaje.


figure(4); plot(error); hold on; plot(error_minimo*ones(1,length(error)));hold off; title('Curva de aprendizaje');

7.- Comente los resultados obtenidos. 8.- Repita los ejercicios 3, 4, 5 y 6 utilizando segmentos de seales de 600 muestras (600 iteraciones en el algoritmo adaptativo, numero=600) y los valores de la cota que considere ms apropiados. Compare los resultados con los obtenidos al emplear 200 muestras. Nota: Se recomienda que escriba un procedimiento que, pidiendo como parmetros el nmero de muestras (nmero de iteraciones), la potencia de ruido y la constante de ajuste, realice todos los pasos descritos en los ejercicios 3, 4, 5 y 6. 9.- Vuelva a repetir los ejercicios 3-6 empleando, en este caso, 1000 muestras de seal. De este modo, podremos considerar que el proceso adaptativo ha alcanzado el rgimen permanente. En estas condiciones, calcule el valor medio del vector de pesos y el desajuste. Suponiendo que a partir de la iteracin nmero 600 se ha alcanzado el rgimen permanente:
media_W0=mean(Wk(600:length(Wk(:,1)),1))-W0_min; media_W1=mean(Wk(600:length(Wk(:,2)),2))-W1_min; Desajuste = mean(error(600:length(error))-error_minimo)/error_minimo;

10.- Repita los ejercicios 3-6 utilizando segmentos de seales de 2000 muestras, un vector de pesos inicial dado por [-5,5] y una constante de ajuste de valor igual a la cota calculada en el ejercicio 6 dividida por 40 A partir de qu iteracin podemos suponer que el algoritmo ha convergido? Calcule el valor medio del vector de pesos en rgimen permanente y el desajuste. 11.- Realice todos los comentarios que crea oportunos en relacin a los resultados obtenidos.

Mster en Tecnologas de la Informacin y las Comunicaciones

Tcnicas de Optimizacin en Ingeniera. Prctica

ANEXO: Funcin lms.m


function [yk,error,Wk]=lms(senalr,senal,orden,n_iter,mu,Winicial) % Descripcin: Funcin que desarrolla el algoritmo LMS % % [yk,error,Wk]=Lms(senalr,senal,orden,n_iter,mu) % % Entradas: senalr: seal que se utiliza como entrada al filtro % senal: seal deseada. % orden: orden del filtro FIR cuyos coeficientes se van a ajustar. % n_iter: n de iteraciones en el aprendizaje. % mu: constante de ajuste. % Winicial: vector de pesos inicial. % Salidas: yk: salida del filtro durante el proceso de adaptacin. % error: error cuadrtico medio estimado con todas las % muestras disponibles de la seal utilizando el % vector de pesos para la iteracin i-sima. % Wk: matriz que contiene los vectores de pesos que se han ido % generando por el proceso adaptativo final. % % Autor: Mara Pilar Jarabo. % Fecha: Mayo de 1996. % Seal a la entrada del filtro. Xk=[zeros(1,orden+1)]; % Valor inicial de los pesos. Wk(1,:)=Winicial; % Desarrollo del algoritmo. for i=1:n_iter Xk(orden+1)=[]; Xk=[senalr(i) Xk]; yk(i)=Xk*(Wk(i,:))'; err(i)=senal(i)-yk(i); Wk((i+1),:)=Wk(i,:)+(2*mu*err(i)*Xk); % Estimamos el error cuadrtico medio cuando se fija el vector de pesos % calculado en esta iteracin. error(i)=(sum((senal-filter(Wk((i+1),:),1,senalr)).^2))/length(senal); end; % Se supone que la seal deseada y la seal de entrada al filtro % tienen el mismo nmero de muestras.

Mster en Tecnologas de la Informacin y las Comunicaciones