⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arotineoffft2.txt

📁 从网上下载的一个和matlab实现快速傅立叶变换相关的程序
💻 TXT
字号:

function y=dft(x,N) 
%x为输入信号 
%N为所取的点数 
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为输入信号
%N为所取的点数
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的程序,我就是根据这个来修改的,测试通过,而DIF-FFT则波形不对。
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),'.') 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -