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 = (1/9)*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 = (1/25)*ones(5);
Zsmooth2 = conv2(Znoise,K,'same');
contour(Zsmooth2,levels)
Consulte también
conv2
| conv
| filter
| smoothdata