Estas dos figuras se obtuvieron con pequeñas modificaciones del código que aquí se presenta. En el primer caso se realizaron 10,000 iteraciones del mismo filtro. El tiempo que tomo fue considerable y su filtradrado fue bueno. Sin embargo con 1,000 iteracciones el filtrado es malo y el tiempo no se reduce considerablemente, lo cual es lógico pues disminuyo en un factor de 10 las iteraciones, aunque siguen siendo muchas iteraciones 1,000. Estos son sólo ejemplos de cómo aplicar filtros de promedios ponderados hay filtros alternativos que son más rápidos y eficaces en la tarea asignada. El ejercicio sirve para ver las entrañas de estos filtros.
clc
clear
close all
x = 0.0:0.001:3*pi;
yy = sin(0.5*x)+sin(40*x); % la frecuencia a limpiar es la de 40, la cual es relativamente grande
subplot(3,1,1)
plot(x,yy) % primero vemos como es la señal original
% limpiar señal
% y(k) = yy(k-1) + 2*yy(k) + yy(k+1)
final = length(yy);
y = yy;
for m =1:10000 % hacemos muchas iteraciónes pues el filtro es poco eficiente
for k =2:final-1
y(k) = (0.25)*(y(k-1) + 2*y(k) + y(k+1)); % filtro pasa bajas
end
end
subplot(3,1,2)
plot(x,y) % el resultado lo vemos aqui.
subplot(3,1,3)
hold on
plot(sin(0.5*x),y) % el resultado lo vemos aqui.
plot(y,y, '--k') % el resultado lo vemos aqui.
hold off
esta ecuación de filtro de donde la obtienes y(k) = (0.25)*(y(k-1) + 2*y(k) + y(k+1)); % filtro pasa bajas
ResponderEliminar????