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