2015-11-07 215 views
0

h是5x5矩阵,如使用手动padarray为什么使用fft2零填充在零填充在FFT

H = fft2(h,250,250); 

没有给予同样的结果,在

H = fft2(padarray(H,[122 122])); 

是这是因为在我的第二个例子中,填充矩阵只有249列和行?我应该添加一个额外的列/零行吗?

回答

4

这不是填充与傅立叶变换的工作方式。这里是如何复制手动什么fft2并在指定填充输入一个例子:

>> a=rand(5); b=zeros(250); b(1:5,1:5)=a; 
>> A=fft2(a,250,250); B=fft2(b); 
>> max(abs(A(:)-B(:))) 

ans = 

    0 
+4

把这个交给这个正确答案多一点的解释,您可以通过创建一个二维数组,这是所需的大小零填充,然后将原始信号放在填充结果的左上角。这就是你为2D FFT填充的方式。 – rayryeng

+1

感谢@ Sh3ljohn代码! – Navdeep

+1

感谢@rayryeng对这样一个很好的解释。有效!! – Navdeep