📄 frequency_ft.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 + -