Сглаженные данные со сверткой

Можно использовать свертку, чтобы сглаживать 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)

Смотрите также

| | |

Похожие темы