基于线调频小波变换的一维时间序列时频分析方法(MATLAB)

在机械故障诊断领域,振动信号的处理常采用以快速傅立叶变换为基础的相关分析、幅值分析、频谱分析等时域和频域分析方法。但经典的FFT存在固有缺点,即它虽然在频域范围内是完全局部化的,但是它不包含任何时域信息,因而不适于分析非平稳信号。近年来涌现的各种时频分析方法(短时傅立叶变换、Wigner-Ville分布、Cohen类时频分布、小波分析等)较好地解决了非平稳信号分析的问题 。小波分析又是其中运用最为成功的一种方法,具有良好的时频局部性、多尺度性和"数学显微"特性。但这种方法只适应于频率范围很窄的信号,不能满足设备振动信号的分析需要。

线调频小波变换源于19世纪20年代的光学研究,但将其作为信号处理的数学工具来研究,则只是最近几年的事。许多学者研究过采用基函数来表示和逼近信号的思想,用一系列的线性调频信号来逼近自然界中的各种信号,并提出了各种寻找与待分析信号最匹配的基函数的优化算法。线调频小波变换属于时间-频率-尺度变换,利用它作信号的谱估计,不仅具有小波变换谱估计方法高频域分辨率的优点,而且可以根据需要自由地选择尺度参数,谱估计值更准确有效,对非平稳信号的分析功能更加强大。线调频小波变换使用的时频分析网格除了时移、频移、尺度变化外,还有斜方向的拉伸与旋转变化,这些复杂形状的网格所提供的分析功能是短时傅立叶变换、小波变换等各种方法所无法企及的。

鉴于此,采用一种线调频小波变换对非平稳信号进行时频分析,运行环境为MATLAB R2018A。

Matlab 复制代码
for elec = 1:nChan  
    dataY = squeeze(data(elec,:)); % one sensor of data
    X=fft(dataY, Ly2);              % Fast Fourier transform
    Y=X.*H;                         % multiply power spectra (frequency-domain convolution)
    convDat=ifft(Y, Ly2, 2);        % Inverse fast Fourier transform
    convDat=convDat(:,1:1:Ly);      % Take just the first N elements
    if t_even==1
        wavDat(elec,:,:) = convDat(:,half_of_wavelet_size:end-half_of_wavelet_size); %remove half of wavelet from either side
    else
        wavDat(elec,:,:) = convDat(:,half_of_wavelet_size+1:end-half_of_wavelet_size); %remove half of wavelet from either side
    end
    %update progress bar
    prog=100*(elec/size(data,1));
    fprintf(1,'\b\b\b\b%3.0f%%',prog);
end
fprintf(1,'\n');

%format
tfRes.power = squeeze(reshape(abs(wavDat).^2,nChan,numel(freqs),nTimes,nTrls)); %power, reshape back
tfRes.phase = squeeze(reshape(angle(wavDat),nChan,numel(freqs),nTimes,nTrls)); %phase, reshape back
tfRes.freqs=freqs;
tfRes.times=0:1/Fs:((1/Fs)*nTimes)-(1/Fs);
tfRes.nsensor=nChan;
tfRes.ntrls=nTrls;
tfRes.Fs=Fs;
tfRes.cycles = cycles;
tfRes.method='wavelet';

完整代码:https://mbd.pub/o/bread/ZJqTk5Zs

tfRes.scale = 'linear';
  • 擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。
相关推荐
断眉的派大星14 小时前
均值为0,方差为1:数据的“标准校服”
人工智能·机器学习·均值算法
小宋102114 小时前
Java 项目结构 vs Python 项目结构:如何快速搭一个可跑项目
java·开发语言·python
有时间要学习14 小时前
面试150——第五周
算法·深度优先
A尘埃14 小时前
电子厂PCB板焊点缺陷检测(卷积神经网络CNN)
人工智能·神经网络·cnn
Tadas-Gao14 小时前
缸中之脑:大模型架构的智能幻象与演进困局
人工智能·深度学习·机器学习·架构·大模型·llm
中金快讯14 小时前
新视野混合净值波动有几何?贝莱德基金回撤控制策略是否命中关键?
人工智能
楚兴15 小时前
MacBook M1 安装 OpenClaw 完整指南
人工智能·后端
23遇见15 小时前
探索CANN:开源AI计算底座的关键组件与技术思想
人工智能
jl486382115 小时前
变比测试仪显示屏的“标杆“配置!如何兼顾30000小时寿命与六角矢量图精准显示?
人工智能·经验分享·嵌入式硬件·物联网·人机交互
2301_8187305615 小时前
transformer(上)
人工智能·深度学习·transformer