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
普通网友
- 粉丝: 1127
- 资源: 5294
最新资源
- 毕设-c语言做的一个任务管理器17.zip
- foo-uie-eslyric
- 基于Matlab实现BPSK,QPSK,QAM,GMSK数字调制方式仿真(源码).rar
- 基于正负序分离控制的三相离网逆变器,带不平衡阻性负载 图片为基于正序控制的和基于正负序分离控制的离网逆变器分别带载的波形
- 机械设计圆形垫片自动化点胶流水线sw18全套设计资料100%好用.zip
- 机械设计圆柱电池分选机sw21全套设计资料100%好用.zip
- 基于Springboot+Vue的剧本杀管理系统论文
- C语言实现DSP库函数,内含基本的RMS函数、mean函数、FFT函数和FIR函数
- 面向细粒度复杂度控制的HEVC帧内预测算法研究与实现
- C#与三菱FX5U以态网通讯程序,可读X Y M S D,可写Y M S D,带源码,有部分备注,PLC通讯参数直接设置
- 仿《至诚财经网》源码 股票证券门户网站系统模版+帝国cms7.5核心+火车头采集
- can_bus.zip
- Java+Servlet+JSP+Mysql学生成绩管理系统源码+报告
- 基于Springboot+vue的博物馆游客预约系统论文
- 机械设计原木剥皮机sw21全套设计资料100%好用.zip
- C#与Sql server 2008 R2图书信息管理系统,源码带注释,VS2015版本,.net4.5框架
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈