我编写了一个计算图像 DFT 的函数,我的目的是在不使用 fftshift 命令的情况下显示幅度谱。DFT_img.m 看起来像这样:
function f = DFT_img(a);
[n m]=size(a);
for i =1:n
k=1;
for j =1:n
l=1;
F(i,j)=(1/n*n)*a(i,j)*exp(-i*2*pi*(k*i+l*j)/n);
l=l+1;
end
k=k+1;
end
f=F;
当我在命令行窗口中编写命令时
A = imread("lena.tiff");
ans = DFT_img(A);
spectrum = log(abs(ans));
mesh(spectrum)
我没有得到相同的结果
fftshift matlab函数
做 !!!我的功能是否有错误,或者问题出在哪里?