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

Можно использовать свертку, чтобы сглаживать 2D данные, который содержит высокочастотные компоненты.

Создайте 2D данные с помощью peaks функция, и отображает данные на графике на различных уровнях контура.

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

Figure contains an axes object. The axes object contains an object of type contour.

Введите случайный шум в данные и постройте шумные контуры.

Znoise = Z + rand(100) - 0.5;
contour(Znoise,levels)

Figure contains an axes object. The axes object contains an object of type contour.

conv2 функция в MATLAB® производит свертку 2D данных с заданным ядром, элементы которого задают, как удалить или улучшить функции исходных данных. Ядра не должны быть одного размера с входными данными. Ядра маленького размера могут быть достаточными, чтобы сглаживать данные, содержащие только несколько частотных составляющих. Ядра большего размера могут обеспечить больше точности для настройки частотной характеристики, приводящей к более сглаженному выходу.

Задайте 3х3 ядро K и используйте conv2 сглаживать зашумленные данные в Znoise. Постройте сглаженные контуры. 'same' опция в conv2 делает выход тем же размером как вход.

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

Figure contains an axes object. The axes object contains an object of type contour.

Сглаживайте зашумленные данные с ядром 5 на 5 и постройте новые контуры.

K = (1/25)*ones(5);
Zsmooth2 = conv2(Znoise,K,'same');
contour(Zsmooth2,levels)

Figure contains an axes object. The axes object contains an object of type contour.

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

| | |

Похожие темы