Можно использовать свертку, чтобы сглаживать 2D данные, которые содержат высокочастотные компоненты.
Создайте 2D данные с помощью peaks
и постройте график данных на различных уровнях контура.
Z = peaks(100); levels = -7:1:10; contour(Z,levels)
Впрысните в данные случайный шум и постройте график шумных контуров.
Znoise = Z + rand(100) - 0.5; contour(Znoise,levels)
The conv2
функция в MATLAB ® свертывает 2D данные с заданным ядром, элементы которого определяют, как удалить или улучшить функции исходных данных. Ядра не должны быть такого же размера, как входные данные. Малогабаритных ядер может быть достаточно для сглаживания данных, содержащих всего несколько частотные составляющие. Более крупные ядра могут обеспечить большую точность настройки частотной характеристики, что приводит к более плавному выходу.
Задайте K
ядра 3 на 3 и использовать
conv2
сглаживать зашумленные данные в Znoise
. Постройте графики сглаженных контуров. The 'same'
опция в conv2
делает выход таким же размером как и вход.
K = (1/9)*ones(3);
Zsmooth1 = conv2(Znoise,K,'same');
contour(Zsmooth1, levels)
Сглаживайте зашумленные данные с помощью ядра 5 на 5 и стройте графики новых контуров.
K = (1/25)*ones(5);
Zsmooth2 = conv2(Znoise,K,'same');
contour(Zsmooth2,levels)
conv
| conv2
| filter
| smoothdata