Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión 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)

Figure contains an axes. The axes contains an object of type contour.

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

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

Figure contains an axes. The axes contains an object of type contour.

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 = (1/9)*ones(3);
Zsmooth1 = conv2(Znoise,K,'same');
contour(Zsmooth1, levels)

Figure contains an axes. The axes contains an object of type contour.

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

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

Figure contains an axes. The axes contains an object of type contour.

Consulte también

| | |

Temas relacionados