轴承故障检测(分类任务)+傅里叶变化+CNN+matlab

1 介绍

使用西储大学的轴承数据集,其实用哪个都行,可能最后的精度会不一样,先读取数据,然后使用傅里叶转换为图像,然后搭建cnn模型,将图像大小转换为模型使用的大小,例如resnet50,输入大小就是224*224。同样提供python版本。

2 数据处理

总共10个类别

对每个数据进行采样,设置2000个样本,每个样本取连续的300个点

matlab 复制代码
% 采样,每个数据采集N条样本,每条样本M长度
M = 2000;
N = 300;
image_index = 1;
sample_all_data = zeros(3, N, M);
for i = 1:10
    sample_class_data = zeros(N, M);
    data = all_data{i};
    % 数据采样
    random_sequence = randperm(length(data) - M);
    selected_numbers = random_sequence(1:N);

    % 对于每个采样的数据,使用fft变换
    for j = 1:N
        start_index = selected_numbers(j);
        sample_data = data(start_index: start_index+M-1);
        sample_class_data(j,:) = sample_data;
        file_path = "images\" +num2str(i) +"\"+ num2str(image_index)+".jpg";
        % 进行fft变换
        process_data(sample_data, file_path)
        image_index = image_index + 1;
    end
    sample_all_data(i,:,:) = sample_class_data;
end

3 fft变换

使用matlab中的变换,转换为频谱图,然后保存,结果如下所示

matlab 复制代码
[S, f, t] = spectrogram(sample_data);

4 cnn模型

搭建一个普通的模型就行,因为这个数据集识别准确率特别高,最后都能到100%

matlab 复制代码
% 设置图像文件夹路径
data_folder = 'images';

% 创建图像数据存储器
imds = imageDatastore(data_folder, ...
    'IncludeSubfolders', true, 'LabelSource', 'foldernames');
[train_imds, test_imds] = splitEachLabel(imds, 0.7, 'randomized');


% 构建 CNN 模型
layers = [
    imageInputLayer([224 224 3])
    convolution2dLayer(3, 16, 'Padding', 'same')
    batchNormalizationLayer
    reluLayer
    maxPooling2dLayer(2, 'Stride', 2)
    convolution2dLayer(3, 32, 'Padding', 'same')
    batchNormalizationLayer
    reluLayer
    maxPooling2dLayer(2, 'Stride', 2)
    convolution2dLayer(3, 64, 'Padding', 'same')
    batchNormalizationLayer
    reluLayer
    fullyConnectedLayer(10)
    softmaxLayer
    classificationLayer
];
详情加Q 596520206 同样提供python版本
相关推荐
xingshanchang10 小时前
Matlab的命令行窗口内容的记录-利用diary记录日志/保存命令窗口输出
开发语言·matlab
我爱一条柴ya16 小时前
【AI大模型】BERT微调文本分类任务实战
人工智能·pytorch·python·ai·分类·bert·ai编程
机器学习之心1 天前
时序预测 | Pytorch实现CNN-LSTM-KAN电力负荷时间序列预测模型
pytorch·cnn·lstm·cnn-lstm-kan
Coovally AI模型快速验证2 天前
基于YOLOv11的CF-YOLO,如何突破无人机小目标检测?
人工智能·神经网络·yolo·目标检测·计算机视觉·cnn·无人机
胖哥真不错2 天前
基于MATLAB的Lasso回归的数据回归预测方法应用
机器学习·matlab·项目实战·lasso回归
机器学习之心HML2 天前
分类预测 | Matlab基于KPCA-ISSA-SVM和ISSA-SVM和SSA-SVM和SVM多模型分类预测对比
支持向量机·matlab·分类·kpca-issa-svm
北温凉2 天前
【论文阅读】基于注意力机制的冥想脑电分类识别研究(2025)
论文阅读·分类·数据挖掘
Coovally AI模型快速验证2 天前
从FCOS3D到PGD:看深度估计如何快速搭建你的3D检测项目
人工智能·深度学习·神经网络·yolo·3d·cnn
2zcode3 天前
基于Matlab多特征融合的可视化指纹识别系统
人工智能·算法·matlab
AI街潜水的八角3 天前
深度学习图像分类数据集—五种电器识别分类
人工智能·深度学习·分类