%用二重循环实现DFT:
function xk=dt_0(xn); %define a function
N=length(xn); %caculate the length of the variable
WN=exp(-j.*.*pi./N);
xk=zeros(,N); %define a non-zero 一维矩阵
sum=zeros(,N); %define a non-zero 一维矩阵
for k=:N %二重循环实现离散傅里叶变换DFT
for n=:N
sum(n)=xn(n).*WN.^(k.*n);
xk(k)=xk(k)+sum(n);
end
end
end
%用一重循环和内积实现DFT:
function xk=dt_1(xn);
N=length(xn);
WN=exp(-j.*.*pi./N);
xk=zeros(,N);
n=[:N-];
for k=::N-;
xk(k+)=xn*WN.^(k.*n'); %此处下标一定得从1开始,因为matlab的下标是从1开始的
end
end
%不用循环,仅有内积相乘实现DFT:
function xk=dt_2(xn);
N=length(xn);
WN=exp(-j**pi/N);
n=::N-; %定义一个一维矩阵,即行向量,从0到N-
k=::N-