感谢 camouflage1 的耐心指导!
我刚才测试了一下,把原始f(x,y)人为设定为圆对称,但fft2仍然有相当的虚部。
以下是测试代码(在上次代码上加了构造矩阵的两行)。
-------------------------------------------------
nx = 4;
ny = 4;
arr = zeros(nx, ny);
orgM = [0.5, 0; 0, 2.0];
theta = pi/6.0;
rotM = [cos(theta), sin(theta); -sin(theta), cos(theta)];
xx = [-nx/2+0.5:nx/2-0.5]/nx * 2.0;
yy = [-ny/2+0.5:ny/2-0.5]/ny * 2.0;
zz = zeros(nx, ny);
for ix=1:nx
for iy=1:ny
zz(ix,iy) = exp(-[xx(ix), yy(iy)]*rotM*orgM*rotM'*[xx(ix), yy(iy)]');
end
end
zzLT = [zz(1,1:2); zz(2,1:2)];
zz = [zzLT, fliplr(zzLT); flipud(zzLT), fliplr(flipud(zzLT))];
disp(zz);
fftzz = fft2(zz);
disp(fftzz);
【 在 camouflage1 (camouflage) 的大作中提到: 】
: f(x,y)=f(-x,-y)是在过任意过原点直线且垂直于xy平面的平面上对称,是对称的平面曲线。
: 而f(x,y)不一定等于f(x,-y)
: 关于(0,0)对称需要f(x,y)=f(x,-y)=f(-x,y)=f(-x,-y),也就是圆对称,是对称的空间曲面。