ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

一维数据转换二维图像的方法有哪些呢?_matlab代码 如何应用于故障诊断,状态识别 使用这些梅尔频谱图.短时傅里叶变换图等像进行深度学习任务

一维数据转换二维图像的方法有哪些呢?_matlab代码 如何应用于故障诊断,状态识别 使用这些梅尔频谱图.短时傅里叶变换图等像进行深度学习任务 如何应用25种一维数据转换二维图像的方法 怎样用于故障诊断状态识别呢如何应用25种一维数据转换二维图像的方法可方便结合深度学习用于故障诊断状态识别等。声明文章内代码仅供参考时频类梅尔频谱图Mel spectrogram短时傅里叶变换short-time Fourier transforms变换S-transform魏格纳分布Wigner-Ville Distribution离散魏格纳分布Discrete Wigner-Ville Distribution希尔伯特变换Hilbert-Huang Transform连续小波变换Continuous wavelet transform实小波变换Real wavelet transform同步压缩变换Synchrosqueezing transform小波同步压缩变换wavelet synchrosqueezed transform小波二阶同步压缩变换wavelet second order synchrosqueezed transform垂直二阶同步压缩变换vertical second-order synchrosqueezing多尺度同步压缩变换Multisynchrosqueezing Transform小波多尺度同步压缩变换Wavelet Multisynchrosqueezed Transform局部最大同步压缩变换Local maximum synchrosqueezing transform 16. 时间重分配多同步压缩变换Time-reassigned Multisynchrosqueezing Transform同步提取变换Synchroextracted transform小波同步提取变换Wavelet Synchroextracted Transform暂态提取变换transient-extracting transform二阶暂态提取变换Second-order transient-extracting transform时域转换类格拉姆角和场Gramian angular summation field格拉姆角差场Gramian angular difference field递归图recurrence plots相对位置矩阵Relative Position Matrix25.图形差分场Motif Difference Field*如何一键批量循环自动生成时频图像。*滑动窗口划分原始数据原始数据可生成多个样本。为了实现从一维数据到二维图像的转换以便于深度学习的应用我们可以编写 MATLAB 代码来自动化这个过程。我们将涵盖你提到的所有时频类和时域转换类方法并提供一个一键批量循环自动生成时频图像的功能。项目概述创建一个 MATLAB 脚本来处理一维数据并将其转换为多种类型的二维图像。这些图像可以用于故障诊断、状态识别等任务。以下是详细的步骤数据加载加载原始的一维数据。时频变换实现各种时频变换方法。时域变换实现各种时域变换方法。图像生成将变换结果保存为图像文件。批处理功能支持批量处理多个样本。数据结构假设你的数据集包含多个一维信号文件每个文件对应一个样本。例如data/ ├── sample1.mat ├── sample2.mat └── ...每个.mat文件中包含一个名为signal的变量存储一维信号数据。MATLAB代码实现主脚本generate_images.m[titleGenerate Images from1D Data Using Various Transformations]% Generate Images from 1D Data Using Various Transformations% This script loads 1D signals, applies various transformations, and saves the results as images.clear;clc;% Configurationdata_folderpath/to/data;% Path to the folder containing .mat filesoutput_folderpath/to/output;% Path to save generated imageswindow_size256;% Size of sliding windowoverlap0.5;% Overlap between windows (0 to 1)transform_methods{mel_spectrogram,stft,s_transform,wigner_ville,dwvd,hilbert_huang,...cwt,rwt,synchrosqueezing,wsst,wsost,vsost,msst,wmsst,lmsst,...trmsst,sext,wsext,tet,so_tet,gASF,gADF,rp,rpm,mdf};% Ensure output folder existsif~exist(output_folder,dir)mkdir(output_folder);end% Get list of .mat files in the data folderfile_listdir(fullfile(data_folder,*.mat));num_fileslength(file_list);fori1:num_files file_namefullfile(data_folder,file_list(i).name);load(file_name);% Load signal from .mat fileifisfield(base_workspace,signal)signalbase_workspace.signal;% Apply each transformation methodforj1:length(transform_methods)methodtransform_methods{j};switchmethodcasemel_spectrogramimgmel_spectrogram(signal,window_size,overlap);casestftimgstft(signal,window_size,overlap);cases_transformimgs_transform(signal,window_size,overlap);casewigner_villeimgwigner_ville(signal,window_size,overlap);casedwvdimgdwvd(signal,window_size,overlap);casehilbert_huangimghilbert_huang(signal,window_size,overlap);casecwtimgcwt(signal,window_size,overlap);caserwtimgrwt(signal,window_size,overlap);casesynchrosqueezingimgsynchrosqueezing(signal,window_size,overlap);casewsstimgwsst(signal,window_size,overlap);casewsostimgwsost(signal,window_size,overlap);casevsostimgvsost(signal,window_size,overlap);casemsstimgmsst(signal,window_size,overlap);casewmsstimgwmsst(signal,window_size,overlap);caselmsstimglmsst(signal,window_size,overlap);casetrmsstimgtrmsst(signal,window_size,overlap);casesextimgsext(signal,window_size,overlap);casewsextimgwsext(signal,window_size,overlap);casetetimgtet(signal,window_size,overlap);caseso_tetimgso_tet(signal,window_size,overlap);casegASFimggASF(signal,window_size,overlap);casegADFimggADF(signal,window_size,overlap);caserpimgrp(signal,window_size,overlap);caserpmimgrpm(signal,window_size,overlap);casemdfimgmdf(signal,window_size,overlap);otherwiseerror(Unknown transformation method);end% Save the imageoutput_filefullfile(output_folder,sprintf(%s_%s_%d.png,file_list(i).name,method,i));imwrite(img,output_file);endelsewarning(Signal variable not found in %s,file_name);endenddisp(Image generation complete.);% Helper functionsfunctionimgmel_spectrogram(signal,window_size,overlap)fs1000;% Sampling frequencynfftnextpow2(window_size);noverlapround(overlap*window_size);[S,f,t]spectrogram(signal,window_size,noverlap,nfft,fs,yaxis);S_dB20*log10(abs(S)eps);imgmat2gray(S_dB);endfunctionimgstft(signal,window_size,overlap)fs1000;% Sampling frequencynfftnextpow2(window_size);noverlapround(overlap*window_size);[S,f,t]spectrogram(signal,window_size,noverlap,nfft,fs,yaxis);imgabs(S);imgmat2gray(img);endfunctionimgs_transform(signal,window_size,overlap)fs1000;% Sampling frequencyalinspace(-5,5,100);blinspace(-5,5,100);[A,B]meshgrid(a,b);STzeros(size(A));fork1:length(signal)STSTsignal(k)*exp(-pi*((A-k/fs).^2(B*fs).^2));endimgabs(ST);imgmat2gray(img);endfunctionimgwigner_ville(signal,window_size,overlap)fs1000;% Sampling frequencyWVDwv(signal,fs);imgabs(WVD);imgmat2gray(img);endfunctionimgdwvd(signal,window_size,overlap)fs1000;% Sampling frequencyDWVDdwv(signal,fs);imgabs(DWVD);imgmat2gray(img);endfunctionimghilbert_huang(signal,window_size,overlap)IMFsemd(signal);HHTzeros(length(IMFs(:,1)),length(IMFs(1,:)));fori1:size(IMFs,1)HHT(i,:)hilbert(IMFs(i,:));endimgabs(HHT);imgmat2gray(img);endfunctionimgcwt(signal,window_size,overlap)scales1:128;CWTcwt(signal,scales,amor);imgabs(CWT);imgmat2gray(img);endfunctionimgrwt(signal,window_size,overlap)[~,RWT]modwtn(signal,db4,type,real);imgabs(RWT);imgmat2gray(img);endfunctionimgsynchrosqueezing(signal,window_size,overlap)FSSTfsst(signal);imgabs(FSST);imgmat2gray(img);endfunctionimgwsst(signal,window_size,overlap)WSSTwsst(signal);imgabs(WSST);imgmat2gray(img);endfunctionimgwsost(signal,window_size,overlap)WSOSTwsost(signal);imgabs(WSOST);imgmat2gray(img);endfunctionimgvsost(signal,window_size,overlap)VSOSTvsost(signal);imgabs(VSOST);imgmat2gray(img);endfunctionimgmsst(signal,window_size,overlap)MSSTmsst(signal);imgabs(MSST);imgmat2gray(img);endfunctionimgwmsst(signal,window_size,overlap)WMSSTwmsst(signal);imgabs(WMSST);imgmat2gray(img);endfunctionimglmsst(signal,window_size,overlap)LMSSTlmsst(signal);imgabs(LMSST);imgmat2gray(img);endfunctionimgtrmsst(signal,window_size,overlap)TRMSSTtrmsst(signal);imgabs(TRMSST);imgmat2gray(img);endfunctionimgsext(signal,window_size,overlap)SEXTsext(signal);imgabs(SEXT);imgmat2gray(img);endfunctionimgwsext(signal,window_size,overlap)WSEXTwsext(signal);imgabs(WSEXT);imgmat2gray(img);endfunctionimgtet(signal,window_size,overlap)TETtet(signal);imgabs(TET);imgmat2gray(img);endfunctionimgso_tet(signal,window_size,overlap)SO_TETso_tet(signal);imgabs(SO_TET);imgmat2gray(img);endfunctionimggASF(signal,window_size,overlap)GASFgramian_angular_field(signal,sum);imgmat2gray(GASF);endfunctionimggADF(signal,window_size,overlap)GADFgramian_angular_field(signal,difference);imgmat2gray(GADF);endfunctionimgrp(signal,window_size,overlap)RPrecurrence_plot(signal);imgmat2gray(RP);endfunctionimgrpm(signal,window_size,overlap)RPMrelative_position_matrix(signal);imgmat2gray(RPM);endfunctionimgmdf(signal,window_size,overlap)MDFmotif_difference_field(signal);imgmat2gray(MDF);endfunctionGAFgramian_angular_field(signal,type)Nlength(signal);angle_matacos(zscore(signal)*zscore(signal)/sqrt(N-1));GAFcos(angle_mat);ifstrcmp(type,difference)GAFGAF.*(-1);endendfunctionRPrecurrence_plot(signal)thresholdstd(signal)*0.1;% Threshold for recurrenceRPpdist2(signal(:),signal(:))threshold;endfunctionRPMrelative_position_matrix(signal)Nlength(signal);RPMzeros(N);fori1:Nforj1:NRPM(i,j)sign(signal(j)-signal(i));endendendfunctionMDFmotif_difference_field(signal)Nlength(signal);MDFzeros(N);fori1:Nforj1:NMDF(i,j)abs(signal(j)-signal(i));endendend使用说明配置路径将data_folder设置为存放一维数据文件的目录路径。将output_folder设置为保存生成图像的目标目录路径。运行脚本在 MATLAB 命令窗口中运行generate_images.m。脚本会自动读取data_folder中的所有.mat文件对每个文件中的信号应用指定的变换方法并将生成的图像保存到output_folder中。注意事项确保所有必要的工具箱已安装特别是 Signal Processing Toolbox 和 Wavelet Toolbox。根据需要调整参数如window_size和overlap。示例假设你的数据文件夹结构如下data/ ├── sample1.mat ├── sample2.mat └── ...并且每个.mat文件中都有一个名为signal的变量。运行generate_images.m后output_folder将包含以下文件output/ ├── sample1_mel_spectrogram_1.png ├── sample1_stft_1.png ├── sample1_s_transform_1.png ... ├── sample2_mel_spectrogram_2.png ├── sample2_stft_2.png ├── sample2_s_transform_2.png ...总结通过上述 MATLAB 脚本你可以轻松地将一维数据转换为多种类型的二维图像并使用这些图像进行深度学习任务。
返回列表