function x=fft_def(x)
%tic
N=length(x);
%xput=zeros(1:Nnew);
if(rem(log2(N),1)~=0)
Nnew=2^(floor(log2(N))+1);
new=zeros(1,Nnew-N);
x=[x new];
N=Nnew;
end
Nl=N;%个数
%xput=zeros(1:N);
Nn=1;%序列个数
% buffer=0;%交换值时需要一个缓存变量
Nh=N/2;%每个序列点个数
w=-1i*2*pi;
W=zeros(1,N/2-1);
W(1)=exp(w/Nl);
for i=2:N/2-1
W(i)=W(1)*W(i-1);
end
%index=0;%索引
%toc
while(N>1)
% tic
for i=0:Nn-1
for j=1:Nh
up=i*N+j;
down=up+Nh;
buffer=x(up);
x(up)=x(up)+x(down);
% disp("up");
% disp(up);
% x(down)=x(up)-x(down)-x(down);
x(down)=buffer-x(down);
% disp("down");
% disp(down);
% x(down)=x(down)*exp(w*(j-1)/N);
% disp(j-1);
% disp(x(down));
if((j-1)~=0)
index=(j-1)*Nn;
% disp(index-1);
% if(W(index)==0)
% W(index)=exp(w*index/Nl);
% end
x(down)=x(down)*W(index);
end
% if(index~=1)
% x(down)=x(down)*W(index);
% end
end
end
% toc
N=N/2;
% disp("N");
% disp(N);
Nh=N/2;
Nn=Nn*2;
end
%disp(Nl);
% flag=ones(1,Nl);
% for i=1:Nl
% first=i;
% % next=bitreverse(log2(Nl),i-1)+1;
% next=1;
% if(first~=next&&flag(first)&&flag(next))
% buffer=x(first);
% x(first)=x(next);
% x(next)=buffer;
% flag(first)=0;
% flag(next)=0;
% end
% end
j1 = 0;
for i = 1 : Nl
if i < j1 + 1
tmp = x(j1 + 1);
x(j1 + 1) = x(i);
x(i) =tmp;
end
k = Nl / 2;
while k <= j1
j1 = j1 - k;
k = k / 2;
end
j1 = j1 + k;
end
end
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
使用matlab实现FFT_FFT.zip (6个子文件)
FFT-master
bijiao.m 1KB
main.m 2KB
fft_def.m 2KB
DFT.m 124B
test.m 887B
defFFT.m 1KB
共 6 条
- 1
资源评论
普通网友
- 粉丝: 1127
- 资源: 5292
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术资料分享多核处理器构架的高速JPEG解码算法很好的技术资料.zip
- 技术资料分享第24章 性能和资源占用很好的技术资料.zip
- 技术资料分享第23章 LCD驱动API函数很好的技术资料.zip
- 技术资料分享第22章 LCD驱动程序很好的技术资料.zip
- 技术资料分享第21章 高层次配置很好的技术资料.zip
- 技术资料分享第20章 底层配置很好的技术资料.zip
- 技术资料分享第19章 与时间相关的函数很好的技术资料.zip
- 技术资料分享第18章 输入设备很好的技术资料.zip
- 技术资料分享第17章 Shift-JIS支持很好的技术资料.zip
- 技术资料分享第16章 Unicode很好的技术资料.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功