您可以使用interp2在同一网格大小上查找中间值以进行可视化
step = 0.1; % granularity
[xn,yn] = meshgrid(1:step:5); % define finer grid
zn = interp2(x,y,z,xn,yn); % get new z values
surf(xn,yn,zn);
请注意,您将使用默认线性插值方法获得与原始内核最接近的近似值,即interp2(x,y,z,xn,yn,’linear’).使用其他方法将导致使用更平滑的内核,但它们的3D形状将有所不同.所以这取决于您的使用和应用.
更新:
您可以将上采样的不适定问题绕过更高的分辨率(仅当假设的“下采样与奈奎斯特采样率相关”时,通过尝试使用已知内核逼近数据,才可能进行逆重建)你可以调整.
例如,由于您给出的是对称内核的示例,它会在最大值附近衰减,您可以使用高斯函数. MATLAB通过特殊功能实现.
假设基础函数(例如高斯函数)并使用从当前内核定义的参数(即将函数拟合到数据中)
% use max location, amplitude and std from your kernel
max_z = max(z(:));
std_z = std(z(:));
% Set of tunable parameters (size of grid & granularity)
bounds_grid = [30 30]; grid bounds
step = 0.5; % resolution
% Grid
siz = (bounds_grid-1)/2;
[x,y] = meshgrid(-siz(2):step:siz(2),-siz(1):step:siz(1));
% Gaussian parameters
s = std_z; m = 0;
% Analytic function
g = exp(-((x-m).^2 + (y-m).^2)/(2*s*s));
g(g
g = max_z*g./max(g(:));
surf(g);
这样你就可以尊重高斯波瓣中内核的参数,但是可以控制最终高斯内核的网格大小和分辨率.
一些例子: