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

📄 frequency_ft.m

📁 傅立叶变换程序
💻 M
字号:
%function [Freq,F,Ang,fg]=freq1(n)
%fid=sprintf('E:\\Researches\\20060329\\FFT\\w00%d',n);
%A=xlsread(fid,'sheet1');
%num=length(A)

% Probabilities endowed
fid=fopen('Prob.txt','r');      %打开文件
n=fscanf(fid,'%d',1);         %从文件读入格式数据,读取1个放入列中,base 10 integers
p=fscanf(fid,'%f',n);          %从文件读入格式数据,读取n个放入列中,floating-point numbersfs
fclose(fid);                      %关闭文件

m=1024;                         %采样点
st=0.01;                         %采样周期
time=st*(1:m);                  %采样时间轴

 % Openning the files and getting the waves' frequency domain information
  for j=1:n
         if j > 0 & j < 10 
             fname=sprintf('W00%d.txt',j);        
             fid=fopen(fname,'r');
             x=fscanf(fid,'%g\n',m);              
             fclose(fid);  
         elseif  j >= 10 & j < 100 
             fname=sprintf('W0%d.txt',j);        
             fid=fopen(fname,'r');
             x=fscanf(fid,'%g\n',m);
             fclose(fid);  
         else
             fname=sprintf('W%d.txt',j);        
             fid=fopen(fname,'r');
             x=fscanf(fid,'%g\n',m);
             fclose(fid);  
         end 
         x=x*1.1;
         %for i=1:m
             %wave(i,j)=x(i);
             %end
%B=fft(A,n);
%num=length(x);
T=st*m;
B=fft(x,m)*T/m;
%T=n*Dt;

%[fmax,order]=max(abs(B));
%fg=(order-1)/T;
%Nfold=m/2.0+1;
i=m/2.0+1;
for k=1:i;
        Freq(k)=(k-1)*2*pi/T;
        F(k)=abs(B(k))/sqrt(st*m);
        Ang(k)=angle(B(k));
        Fou(k,j)=F(k);
end

plot(Freq,F,'g','LineWidth',1)
%xlabel('Frequency (Hz)')
%ylabel('Fourier Range')
%title('Fourier Spectrum')
hold on
%h=legend('Fourier','Mean2+Std.D','Mean2-Std.D');
%legend('boxoff');
end

mean=zeros(i,1);
std=zeros(i,1);
for k=1:i
     for j=1:n
         mean(k)=mean(k)+Fou(k,j)*p(j);
     end
end
for k=1:i
     for j=1:n
        std(k)=std(k)+(Fou(k,j)-mean(k))^2*p(j);         
     end
     std(k)=std(k)^(0.5);
end

 plot(Freq,mean,'b','LineWidth',1);
 hold on
 plot(Freq,mean+std,'r','LineWidth',2);
 hold on
 plot(Freq,mean-std,'r','LineWidth',2);
 hold on
 xlabel('Frequency (rad/s)','FontSize',10);
 ylabel('Fourier-Range Spectrum (m/s)','FontSize',10);
 %h=legend('Mean','Mean+Std.D','Mean-Std.D');
 %legend('boxoff');
 
 %saveas(gcf,'Fourierspectrum_Range','bmp')




     

  
  
  
 
         
         



⌨️ 快捷键说明

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