4
Dimel Arturo Contreras Martínez FILTRO ADAPTATIVO Es un dispositivo que intenta modelar la relación entre señales en tiempo real de forma iterativa. Se diferencia de los filtros digitales comunes tipo IIR o FIR, en que éstos tienen coeficientes invariantes en el tiempo, mientras que un adaptativo puede cambiar su forma de comportarse, es decir pueden cambiar sus coeficientes de acuerdo con un algoritmo adaptativo. De hecho no se saben los coeficientes del filtro cuando se diseña, éstos coeficientes son calculados cuando el filtro se implementa y se reajustan automáticamente en cada iteración mientras dura su fase de aprendizaje. El hecho de que estos filtros no sean invariantes temporales y que tampoco sean lineales hace que su estudio sea más complejo que el de un filtro digital, ya que no se pueden aplicar, salvo en un par de excepciones, las transformaciones en frecuencia, dominio Z, etc. CODIGO MATLAB PARA IMPLEMENTAR UN FILTRO ADAPTATIVO clc; clear; close all nm=500 % Iteraciones %x = randn(1,nm); % Entrada del filtro x=cos(2*pi*1*(0:1/1000:3)); %entrada del filtro b = fir1(3,0.5); % Sistema FIR a identificar %n = 0.1*randn(1,nm); % Se?de ruido en la observaci? %d = filter(b,1,x)+n; % Se?deseada d=cos(2*pi*1*(0:1/1000:3)); mu = 0.08; % Paso del algoritmo LMS h = adaptfilt.lms(3,mu); [y,e] = filter(h,x,d); subplot(2,1,1); plot(1:length(d),[d;y;e]); title('Identificacion de un sistema FIR'); legend('Deseado','Salidat','Error'); xlabel('Tiempo'); ylabel('Valor de la se'); subplot(2,1,2); stem(h.Coefficients); legend('Actual','Estimado'); xlabel('Coeficiente #'); ylabel('Valor Coeficiente'); grid on; figure

193702365 Filtro Adaptativo Matlab

Embed Size (px)

DESCRIPTION

filtor, adaptivo

Citation preview

  • Dimel Arturo Contreras Martnez

    FILTRO ADAPTATIVO

    Es un dispositivo que intenta modelar la relacin entre seales en tiempo real de forma

    iterativa.

    Se diferencia de los filtros digitales comunes tipo IIR o FIR, en que stos tienen

    coeficientes invariantes en el tiempo, mientras que un adaptativo puede cambiar su forma

    de comportarse, es decir pueden cambiar sus coeficientes de acuerdo con un algoritmo

    adaptativo. De hecho no se saben los coeficientes del filtro cuando se disea, stos

    coeficientes son calculados cuando el filtro se implementa y se reajustan automticamente

    en cada iteracin mientras dura su fase de aprendizaje.

    El hecho de que estos filtros no sean invariantes temporales y que tampoco sean lineales

    hace que su estudio sea ms complejo que el de un filtro digital, ya que no se pueden

    aplicar, salvo en un par de excepciones, las transformaciones en frecuencia, dominio Z, etc.

    CODIGO MATLAB PARA IMPLEMENTAR UN FILTRO ADAPTATIVO

    clc; clear; close all nm=500 % Iteraciones %x = randn(1,nm); % Entrada del filtro x=cos(2*pi*1*(0:1/1000:3)); %entrada del filtro b = fir1(3,0.5); % Sistema FIR a identificar %n = 0.1*randn(1,nm); % Se?de ruido en la observaci? %d = filter(b,1,x)+n; % Se?deseada d=cos(2*pi*1*(0:1/1000:3)); mu = 0.08; % Paso del algoritmo LMS h = adaptfilt.lms(3,mu); [y,e] = filter(h,x,d); subplot(2,1,1); plot(1:length(d),[d;y;e]); title('Identificacion de un sistema FIR'); legend('Deseado','Salidat','Error'); xlabel('Tiempo'); ylabel('Valor de la se'); subplot(2,1,2); stem(h.Coefficients); legend('Actual','Estimado'); xlabel('Coeficiente #'); ylabel('Valor Coeficiente'); grid on;

    figure

  • Dimel Arturo Contreras Martnez subplot 211 plot(x); subplot 212 plot(d);

    0 500 1000 1500 2000 2500 3000 3500-2

    -1

    0

    1

    2Identificacion de un sistema FIR

    Tiempo

    Valo

    r de la s

    e

    Deseado

    Salidat

    Error

    1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 30

    0.2

    0.4

    0.6

    0.8

    Coeficiente #

    Valo

    r C

    oeficie

    nte

    Actual

  • Dimel Arturo Contreras Martnez

    Filtro de Wiener

    En procesamiento de seales, el filtro de Wiener es un filtro propuesto por Norbert Wiener

    en la dcada de 1940 y publicado en 1949. Su propsito es, utilizando mtodos estadsticos,

    reducir el ruido presente en la seal de entrada de tal modo que la seal de salida del filtro

    se aproxime lo ms posible (en el sentido cuadrtico medio) a una seal deseada (sin ruido).

    El equivalente en tiempo discreto del trabajo de Wiener fue derivado independientemente

    por Kolmogorov y publicado en 1941. Por esto, la teora es a veces referida como teora de

    filtrado de Wiener-Kolmogorov.

    PROGRAMA PARA IMPLEMENTAR UN FILTRO DE WIENER

    function [e,y,h]=ale(d,mu,P,D); % % d ... seal deseada % mu .. paso de adaptacin % P ... Orden del filtro de wiener % D ... retardo del ALE % % Salidas % % e ... seal error % y ... estimacin seal deseada % h ... filtro de wiener % c=zeros(D+1,1); c(D+1)=1; x=filter(c,1,d); h=zeros(P,1);

    0 500 1000 1500 2000 2500 3000 3500-1

    -0.5

    0

    0.5

    1

    0 500 1000 1500 2000 2500 3000 3500-1

    -0.5

    0

    0.5

    1

  • Dimel Arturo Contreras Martnez %LMS

    x=[zeros(P-1,1);x]; M=length(x); N=P; e=zeros(M-N+1,1); y=zeros(M-N+1,1); X=flipud(x(1:P)); y(1)=h'*X; e(1) = d(1) - y(1); h= h + mu*conj(e(1))*X; if M>1 for k=2:M-N+1; X=flipud(x(k:k+P-1)); y(k)=h'*X; e(k) = d(k) - y(k); h = h + mu*conj(e(k))*X; end; end;