This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Smooth Data with Convolution

You can use convolution to smooth 2-D data that contains high-frequency components.

Create 2-D data using the peaks function, and plot the data at various contour levels.

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

Inject random noise into the data and plot the noisy contours.

Znoise = Z + rand(100) - 0.5;

The conv2 function in MATLAB® convolves 2-D data with a specified kernel whose elements define how to remove or enhance features of the original data. Kernels do not have to be the same size as the input data. Small-sized kernels can be sufficient to smooth data containing only a few frequency components. Larger sized kernels can provide more precision for tuning frequency response, resulting in smoother output.

Define a 3-by-3 kernel K and use conv2 to smooth the noisy data in Znoise. Plot the smoothed contours. The 'same' option in conv2 makes the output the same size as the input.

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

Smooth the noisy data with a 5-by-5 kernel, and plot the new contours.

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

See Also

| | |

Related Topics