close all; %先关闭所有图片
Adc1=2; %直流分量幅度
Adc2=4; %直流分量幅度
A1=3; %频率F1信号的幅度
A2=1.5; %频率F2信号的幅度
F1=50; %信号1频率(Hz)
F2=75; %信号2频率(Hz)
Fs=50; %采样频率(Hz)
% N=500; %采样点数
a=N/Fs;
t=[0:1/Fs:N/Fs]; %采样时刻
%信号S1=Adc1+A1*sin(2*pi*F1*t)+A2*cos(2*pi*F2*t); S2=Adc2+A1*sin(2*pi*F1*t);
S=load('Acc113824.txt');
%Sa=S1-mean(S1);
Sx=S(:,2);
Sy=S(:,3);
Sz=S(:,4);
St=S(:,1);
N=length(S);
Sa=sqrt(Sx.^2+Sy.^2+(abs(Sz)).^2);
Sb=Sa-mean(Sa);
plot(Sb(1:N));
title(' 信号S');
grid on;
figure;
Y = fft(Sb(1:N),N); %做FFT变换
Ayy = (abs(Y)); %取模
plot(Ayy(1:N)); %显示原始的FFT模值结果
title('FFT 模值'),xlabel('采样点/N'),ylabel('模值');
grid on;
hold on;
[Y,I]=max(Ayy(1:N/2));
f_text=['对应频率',num2str((I-1)/a)];
a_text=['最大幅值',num2str(Y)];
max_text=char(a_text,f_text);
text(((I-1)/a),Y,max_text,'color','r');
grid on;
figure;
Ayy=Ayy/(N/2); %换算成实际的幅度
Ayy(1)=Ayy(1)/2;
F=([1:N]-1)*Fs/N; %换算成实际的频率值
plot(F(1:N/2),Ayy(1:N/2)); %显示换算后的FFT模值结果
title('信号2幅度-频率曲线图'),xlabel('频率Hz'),ylabel('幅值');
hold on;
[Y,I]=max(Ayy(1:N/2));
f_text=['对应频率',num2str((I-1)/a)];
a_text=['最大幅值',num2str(Y)];
max_text=char(a_text,f_text);
text((I-1)/a,Y,max_text,'color','r');
display(['Amax=', num2str(Y), ' F=', num2str(I-1),'Hz']);
grid on;
figure; %%%%%%%%%%%%%%%%%%%%%%% 低通滤波后的时域,频域图及原始振动时域频域
Signal_Filter=medfilt1(Sb(1:N)); %Mix_Signal_1 中值滤波后信号
Signal_Filter1=medfilt1(Signal_Filter);
subplot(3,1,1),plot(Signal_Filter1,'r');
hold on
plot(Sb(1:N),'b');
title('中值滤波后的信号'),xlabel('采样点/N'),ylabel('加速度/g');
Y = fft(Signal_Filter1,N); %做FFT变换
Ayy = (abs(Y)); %取模
subplot(3,1,2),plot(Ayy(1:N));
title('模值'),xlabel('采样点/N'),ylabel('模值');
Ayy=Ayy/(N/2); %换算成实际的幅度
Ayy(1)=Ayy(1)/2;
F=([1:N]-1)*Fs/N; %换算成实际的频率值
subplot(3,1,3),plot(F(1:N/2),Ayy(1:N/2)); %显示换算后的FFT模值结果
title('幅度-频率曲线图'),xlabel('频率'),ylabel('幅值');
hold on;
[Y,I]=max(Ayy(1:N/2));
f_text=['对应频率',num2str((I-1)/a)];
a_text=['最大幅值',num2str(Y)];
max_text=char(a_text,f_text);
text(((I-1)/a),Y,max_text,'color','r');
grid on;