Lo que he aprendido: filtro de Wiener

Esta vez me he adentrado en el loco mundo de las señales y he descubierto el mágico filtro de Wiener. No me preguntéis que hace la movida por dentro porque no tengo la más remota idea, pero sé que vale para quitarle a una señal un ruido conocido (es para lo que yo lo he usado). Funciona según el siguiente diagrama y puede ser adaptativo o no, a gusto del consumidor:

Hasta donde yo llego, intenta minimizar el error, es decir, hacer que la salida del filtro y la señal sean lo más parecidas posibles. Para el caso de querer quitarle un ruido conocido a una señal, será el ruido y la señal con ruido. Entonces, el error será la parte de la señal de que no se parezca al ruido, osea, la señal sin ruido. Esto se puede implementar por ejemplo en Matlab:


function f = filtroWeiner(x,d,P)

% Filtro Wiener para quitarle a una señal ruido conocido
% Adaptado de: http://www.oocities.org/inigoku/tds0405-5.htm
%
% x = ruido, vector columna
% d = señal medida (señal + ruido), vector columna
% P = orden del filtro
%
% Nota: d y x deben detener la misma longitud

N = length(x);

% Wiener-Hopf (R·w=p)

r = xcorr(x);
R = toeplitz(r(N:N+P-1));

ptemp = xcorr(x,d);
p = ptemp(N:N+P-1);

w = R\p; % coeficientes que mejor filtran el ruido de la señal

% Filtro 

xrec = filter(w,1,x); % señal filtrada

f = d - xrec; % en este caso la señal sin ruido es el error

En la página web que aparece en el código podéis ver dibujillos que explican lo que hace el filtro pero lo mejor es probar uno mismo 🙂

Hasta aquí mi aportación al conocimiento universal, cuidadín con lo que hacéis con ello, que Wiener os está vigilando:

 Nota: todo esto lo aprendí gracias al señor que lleva este blog

Anuncios

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s