【发布时间】:2013-05-25 09:39:06
【问题描述】:
我编写了一个计算图像 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函数
确实! 我是不是函数有错误,或者问题出在哪里?
【问题讨论】: