在断层成像理论中,正弦图被记录下来,它是样品不同角度的一系列投影。对该投影进行 FFT 会在频率空间中给出样本的极坐标切片。
该命令[X,Y] = pol2cart(THETA,RHO)
不会自动执行此操作。那么,如何在 Matlab 中以二维数值方式实现极坐标到笛卡尔网格插值?
在断层成像理论中,正弦图被记录下来,它是样品不同角度的一系列投影。对该投影进行 FFT 会在频率空间中给出样本的极坐标切片。
该命令[X,Y] = pol2cart(THETA,RHO)
不会自动执行此操作。那么,如何在 Matlab 中以二维数值方式实现极坐标到笛卡尔网格插值?
您需要进行相变:
theta = 0:0.1:2*pi;
rho = linspace(0,1,numel(theta));
[x,y] = pol2cart(-theta+pi/2,rho);
figure;
subplot(1,2,1);
polar(theta,rho);
subplot(1,2,2);
plot(y,x);
axis([-1 1 -1 1]);
grid on;
函数 [X,Y] = pol2cart(THETA,RHO) 只进行坐标值转换,即 X = RHO * cos(THETA) 和 Y = RHO * sin(THETA)。但是,您需要的是数据数组的转换,因此 pol2cart() 对您的问题无能为力。
可以参考函数 interp2()。另一方面,由于这个问题是复杂数据的插值,我不确定 interp2() 是否可以直接完成这项工作。我还需要复杂插值的理论。