我在研究双板几何图像重建时遇到了这个问题。假设我有一个15乘15的数组,在一个平面上有间距1,其中57到57个探测器的阵列在另一个平行平面上间距为0.5。因此,总测量数据成为尺寸为57×57×15×15的4-d阵列。我要做的第一件事就是对数据执行4-d(或更精确的双2-d)傅里叶变换。分别是探测器晶格和源晶格,我想在MATLAB中使用内置函数fft2
。我的代码如下:
for s = 1:Ns
data(:,:,s) = fftshift(fft2(data(:,:,s))); % fft2 assumes exp(-i*omega*t)
end
data = reshape(data(:,:,1:Ns),[Nx,Ny,sqrt(Ns),sqrt(Ns)]);
for i = 1:Nx
for j = 1:Ny
data(i,j,:,:) = fftshift(fft2(squeeze(data(i,j,:,:))));
end
end
val = data;
在上面的代码中,data
是衡量标准,最初尺寸为57乘57乘225. Nx
= Ny
= 57,Ns
= 225。任何人都可以向我指出我的双重2-FFT FFT的上述实现是否存在问题,或者至少我是如何验证它的?我的第二个问题是频域。根据MATLAB的说明,相对于探测器平面的频率晶格应为(-28:28)*2*pi/57/0.5
(对于两个分量),而相对于源晶格的频率晶格应为(-7:7)*2*pi/15/1
(对于两个分量也是如此) 。真的吗?可以说val
位置(29,29,8,8)的元素恰好代表探测器频率和源频率的0频率吗?提前谢谢!