对振动信号进行频谱分析时,需要对信号作FFT变换,以及绘制不同时间段内的频谱。经过分析,现编程如下:
close all
%----------调用外部文件----------%
data=csvread('TRACK06_1.csv');
[data_h,data_l]=size(data); % 得到矩阵的行数与列数
%----------设置可调参数----------%
fs=65536;
tt=0.5; % 多长时间作一次频谱,单位:s
overlap=0; % 想要引进重叠率的概念(例:50%用0.5表示)
t_s=6; t_e=10; % 选取目标的时间段,最后时间为data_h/fs
qianx=data(t_s*fs+1:t_e*fs,1);
%------------计算过程------------%
t_end=length(qianx)/fs;
figure % 绘制时域图
t=1/fs:1/fs:t_end;
plot(t,qianx);
nfft=fs*tt; % 作一次频谱所用的点数
data_num=zeros(nfft,1); % 作一次频谱的向量大小
fft_num=((length(qianx)-nfft)/(nfft*(1-overlap)))+1; % 一共可以做多少次FFT变换(考虑了重叠率)
s=fs/2*tt;
% l=s;
% 定义大的空矩阵,用来绘图使用
f_sum=zeros(round(s),round(fft_num)); A_sum=zeros(round(s),round(fft_num)); t_t_sum=zeros(round(s),round(fft_num));<