Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Suavizar datos con convolución

Puede utilizar la convolución para suavizar los datos 2D que contienen componentes de alta frecuencia.

Cree datos 2D utilizando la función peaks y represente los datos en varios niveles de contorno.

Z = peaks(100);
levels = -7:1:10;
contour(Z,levels)

Inyecte ruido aleatorio en los datos y represente los contornos ruidosos.

Znoise = Z + rand(100) - 0.5;
contour(Znoise,levels)

La función conv2 de MATLAB® convoluciona los datos 2D con un kernel especificado cuyos elementos definen cómo eliminar o mejorar las características de los datos originales. Los kernels no tienen que tener el mismo tamaño que los datos de entrada. Los kernels de tamaño pequeño pueden ser suficientes para suavizar los datos que tan solo contienen unos pocos componentes de frecuencia. Los kernels de mayor tamaño pueden proporcionar más precisión para ajustar la respuesta de frecuencia, lo que da como resultado una salida más suave.

Defina un kernel de 3 por 3 K y utilice conv2 para suavizar los datos ruidosos de Znoise. Represente los contornos suavizados. La opción 'same' de conv2 hace que la salida tenga el mismo tamaño que la entrada.

K = 0.125*ones(3);
Zsmooth1 = conv2(Znoise,K,'same');
contour(Zsmooth1, levels)

Suavice los datos ruidosos con un kernel de 5 por 5 y represente los nuevos contornos.

K = 0.045*ones(5);
Zsmooth2 = conv2(Znoise,K,'same');
contour(Zsmooth2,levels)

Consulte también

| | |

Temas relacionados