?? arotineoffft2.txt
字號(hào):
function y=dft(x,N)
%x為輸入信號(hào)
%N為所取的點(diǎn)數(shù)
y=zeros(1,N);
for k=1:N
for m=1:N
y(k)=y(k)+x(m)*exp(-j*2*pi*(k-1)*(m-1)/N);
end;
end;function y=dft(x,N)
%x為輸入信號(hào)
%N為所取的點(diǎn)數(shù)
y=zeros(1,N);
for k=1:N
for m=1:N
y(k)=y(k)+x(m)*exp(-j*2*pi*(k-1)*(m-1)/N);
end;
end;
N=256;
x1=[1 1 1 1];
x=[x1 zeros(1,N-length(x1))];
L=1;
M=log2(N);
while L<=M
LE=2^L;
LE1=LE/2;
U=1;
W=exp(-j*2*pi/LE);
J=0;
while J<=LE1-1;
I=J;
while I<=N-1
IP=I+LE1;
T=x(I+1)+x(IP+1);
x(IP+1)=(x(I+1)-x(IP+1))*U;
x(I+1)=T;
I=I+LE;
end
U=U*W;
J=J+1;
end
L=L+1;
end
x;
NV2=N/2;
NM1=N-1;
I=0;
J=0;
while I<NM1
if I<J
T=x(J+1);
x(J+1)=x(I+1);
x(I+1)=T;
end
K=NV2;
while K<=J
J=J-K;
K=K/2;
end
J=J+K;
I=I+1;
end
x;
n=0:N-1;
q=n*2*pi/N;
stem(q,angle(x),'.')
---------------------------------------------
這是DIT-FFT的程序,我就是根據(jù)這個(gè)來修改的,測試通過,而DIF-FFT則波形不對(duì)。
N=256;
x1=[1 1 1 1];
x=[x1 zeros(1,N-length(x1))];
NV2=N/2;
NM1=N-1;
I=0;
J=0;
while I<NM1
if I<J
T=x(J+1);
x(J+1)=x(I+1);
x(I+1)=T;
end
K=NV2;
while K<=J
J=J-K;
K=K/2;
end
J=J+K;
I=I+1;
end
x;
L=1;
M=log2(N);
while L<=M
LE=2^L;
LE1=LE/2;
U=1;
W=exp(-j*2*pi/LE);
J=0;
while J<=LE1-1;
I=J;
while I<=N-1
IP=I+LE1;
T=x(IP+1)*U;
x(IP+1)=x(I+1)-T;
x(I+1)=x(I+1)+T;
I=I+LE;
end
U=U*W;
J=J+1;
end
L=L+1;
end
x;
n=0:N-1;
q=n*2*pi/N;
stem(q,abs(x),'.')
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -