在 MATLAB 中实现 fft2 时遇到问题。
问题是我试图模拟真实的测量- 对象傅里叶域的强度, 在哪里表示傅里叶变换矩阵表示矩阵。
但我想更换现实的和. 因此,经过一些简单的计算,测量变成, 在哪里表示倒置. 计算来自一篇论文。
对于原创和该算法可以工作。因此,我尝试验证. 奇怪的事情发生了,虽然傅里叶域的强度看起来与. 他们完全不同!!!
我很困惑,方程式是正确的,但为什么它们不同?我认为问题出在fft2函数上。谁能告诉我fft2的原理?提前致谢!!!
这是代码:
这实现了原始算法:
Y = abs(fftshift(fft2((2*D-ones(n1,n2)).*x))).^2;
这实现了等式 - 真实测量:
Y_real = 2*( abs(fftshift(fft2(D.*x))).^2 + abs(fftshift(fft2( ( ones(n1,n2) - D ).*x ))).^2 ) - abs(fftshift(fft2(x))).^2;