MATLAB
我自己写的离散傅里叶ni变换跟matlab自带的ifft有什么区别?
function xnp = mydft_shifted( xk )
N = length(xk);
n=-N/2:(N/2-1); %相当于k从-N/2~(N/2)-1
WN=exp(1i*2*pi*n/N);
for i=1:N
temp=0;
for k=1:N %k从-N/2~(N/2)-1
temp=temp+xk(k)*(WN(i)^(k-1+1/2));%%%这个i用来从WN中取值
end%x(n) = (1/N) sum X(k)*exp( j*2*pi*(k-1)*(n-1)/N), 1 <= n <= N.
xnp(i)=1/N*temp;%
end
end
这样的嵌套循环子函数特别特别的慢,在使用时我将此嵌套循环改成数组运算后有好转但仍特别慢。但是如果换成matlab自带的ifft后运算结果不一样,而且最终出图误差较大,高人可否看一下我写的这个跟ifft有什么区别吗