• 小米_021
    了解作者
  • WINDOWS
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 48
    下载次数
  • 2017-07-08 03:15
    上传日期
对三轴加速度出传感器的原始数据进行处理,平滑噪声,傅里叶fft
MATLAB 三轴加速度信号处理.rar
  • MATLAB 三轴加速度信号处理
  • fft_ok2.m
    2.2KB
内容介绍
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;
评论
  • 卡斯塔碟 2018-03-21 14:28:56
    缺少数据文件,不能运行
相关推荐