求助matlab編程
下面matlab編程中,經(jīng)過fft2變換后,k和fftk應(yīng)該怎么表示呢?下面中的k和fftk是有問題的,但是我不清楚怎么去正確表示,請(qǐng)指教。
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');
返回小木蟲查看更多
今日熱帖
京公網(wǎng)安備 11010802022153號(hào)
幫你聯(lián)系下Toauto,看能不能幫到你。
Toauto你好!能不能幫忙看下樓主的問題,謝謝啦!@Toauto
請(qǐng)樓主貼一下出錯(cuò)信息,另外fftk=repmat(k,200,1);的右括號(hào)成了全角的了
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);
右邊的括號(hào)是我打錯(cuò)了。這個(gè)程序可以運(yùn)行出來,但問題在于結(jié)果不對(duì),就是誤差error很大,正確的誤差在10的負(fù)13次方左右,而上面運(yùn)行出來的結(jié)果在0到10之間,我經(jīng)過分段測(cè)試后,發(fā)現(xiàn)問題在k和fftk上,我不知道怎么去定義這個(gè)200行200列的矩陣fftk,請(qǐng)指教
,