制作CWRU的连续小波变换的时频数据集
1. 遍历指定文件夹下的mat文件
CWRU数据集由于变量命名的问题,导致数据读取是个相对繁琐的过程,这里采用定义子函数,并逐个读取的方式,稍稍简化了信号读取与分割的整个过程(PS:为什么要分割呢?因为信号太长的话,做时频分析就会计算速度极慢,甚至导致内存不够无法计算)。下面的代码提供了一段demo代码用于遍历matlab某个文件夹下的所有.mat文件。
path = '...\data\'
file_sfix = '*.mat';
files = dir(fullfile(path, file_sfix))
for i=1:size(files,1)
% 每个mat文件的绝对路径
fileName = strcat(path, files(i,1).name)
load(fileName)
end
%
% 由于变量的名字会变,所以不能循环读取
%
2. 基于子函数的CWRU信号分割
%%
% 子函数1:读取单个文件并分段信号
function seg_tensor=read_signal(sig,fs) %子函数1
len=floor(size(sig,1)/fs);
seg_tensor = zeros(len,fs);
for i=1:len
seg_ten