Main Content

使用卷积对数据进行平滑处理

您可以使用卷积对包含高频分量的二维数据进行平滑处理。

使用 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.

MATLAB® 中的 conv2 函数使用指定的核求二维数据的卷积,该核的元素定义如何去除或增强原始数据的特征。核的大小不必与输入数据相同。小核足以对仅包含少数频率分量的数据进行平滑处理。较大的核可以更精确地对频率响应进行调整,从而得到更平滑的输出。

定义一个 3×3 核 K 并使用 conv2Znoise 中的含噪数据进行平滑处理。绘制经过平滑处理的等高线。conv2 中的 'same' 选项使输出的大小与输入相同。

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.

另请参阅

| | |

相关主题