基于线调频小波变换的一维时间序列时频分析方法(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等。
相关推荐
十年Java程序媛7 分钟前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
晨间晓22 分钟前
图片细节丰富不丰富?用华为云码道开发 OpenCV 纹理复杂度分析工具
人工智能·opencv·华为云
硅谷秋水30 分钟前
面向机器人的上下文学习:方法与应用
深度学习·机器学习·语言模型·机器人
2603_9651481136 分钟前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
镜象科技42 分钟前
什么是好的校园AI心理健康解决方案服务商?从中外校园心理服务的一天说起
人工智能
MATLAB代码顾问1 小时前
【硬核推导+源码复现】永磁同步电机(PMSM)矢量控制(FOC)全流程解析:数学建模、PI参数整定与七段式SVPWM仿真
数学建模·matlab
Geeys1 小时前
拼多多单品推广完整方案(可直接落地)
大数据·人工智能
泡椒鸡脚1 小时前
AI室内设计风格融合:把布局、材质和光影参考分开写
人工智能·材质
袁俪1 小时前
世界模型与智能体
人工智能
冬奇Lab1 小时前
开源项目第239期:Awesome DSH Plugin —— 5000+ 插件的 DeepSeek Harness 生态精选列表
人工智能·开源