CyRhmU.jpeg
查看: 854  |  回复: 3

陈昌荣

新虫 (初入文坛)

[求助] 求助matlab编程

下面matlab编程中,经过fft2变换后,k和fftk应该怎么表示呢?下面中的k和fftk是有问题的,但是我不清楚怎么去正确表示,请指教。
n1=100;n2=100;
for x=1:2*n1
   for y=1:2*n2
    test(x,y)=exp(sin(2*(x-1)*pi/n1+3*(y-1)*pi/n2));
    testdx(x,y)=2*cos(2*(x-1)*pi/n1).*exp(sin(2*(x-1)*pi/n1+3*(y-1)*pi/n2));
end
end

testk=fft2(test,2*n1,2*n2);
k=[0:n1-1,-n1:-1];%问题在此处以及下一行
fftk=repmat(k,200,1);
testdxk = fftk.*testk*i;
testdx2 = ifft2(testdxk,2*n1,2*n1);

figure;
mesh(real(testdx2));
title('real part');
figure;
mesh(testdx);
title('anaylysis part');

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liusir3836

木虫 (职业作家)

猎手

优秀版主

帮你联系下Toauto,看能不能帮到你。
Toauto你好!能不能帮忙看下楼主的问题,谢谢啦!@Toauto
态度确定行为
2楼2013-04-08 10:48:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Toauto

至尊木虫 (著名写手)

【答案】应助回帖

★ ★ ★
liusir3836: 金币+1, 感谢过来应助!谢谢! 2013-04-08 13:33:55
wolfghost: 金币+2, 欢迎参加有奖问答版块活动~金币奖励 2013-04-10 16:18:04
请楼主贴一下出错信息,另外fftk=repmat(k,200,1);的右括号成了全角的了
low-key
3楼2013-04-08 13:08:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

陈昌荣

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by Toauto at 2013-04-08 13:08:55
请楼主贴一下出错信息,另外fftk=repmat(k,200,1);的右括号成了全角的了

n1=100;n2=100;
for x=1:2*n1
   for y=1:2*n2
    test(x,y)=exp(sin(2*(x-1)*pi/n1+3*(y-1)*pi/n2));
    testdx(x,y)=2*cos(2*(x-1)*pi/n1).*exp(sin(2*(x-1)*pi/n1+3*(y-1)*pi/n2));
end
end
testk=fft2(test,2*n1,2*n2);
k=[0:n1-1,-n1:-1];
fftk=repmat(k,200,1);
testdxk = fftk.*testk*i;
testdx2 = ifft2(testdxk,2*n1,2*n1);
figure;
mesh(real(testdx2));
title('real part');
figure;
mesh(testdx);
title('anaylysis part');
error =abs(testdx-testdx2);
figure;
mesh(error);
右边的括号是我打错了。这个程序可以运行出来,但问题在于结果不对,就是误差error很大,正确的误差在10的负13次方左右,而上面运行出来的结果在0到10之间,我经过分段测试后,发现问题在k和fftk上,我不知道怎么去定义这个200行200列的矩阵fftk,请指教。
4楼2013-04-08 21:53:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 陈昌荣 的主题更新
信息提示
请填处理意见