首先生成三个不同调制特性的仿真振动信号并叠加噪声,然后通过基于降采样的同步压缩变换获得高分辨率的时频表示。系统采用高斯窗函数对信号进行分帧处理,通过短时傅里叶变换得到初始时频分布,计算信号的瞬时频率估计,然后将STFT系数按照瞬时频率重分配到更精确的频率位置上形成同步压缩变换。
为了提升计算效率,算法在时域采用跳跃采样,在频域支持选择性分析特定频段。系统还实现了基于时频脊线提取的信号分量分离与重构功能,通过设定频率邻域掩膜从混合信号中提取各个振动分量,并计算重构分量与原始分量的信噪比来评估分离效果。
算法流程可以适当参考
信号输入 ↓ 预处理(补零、噪声添加) ↓ 高斯窗分帧(降采样) ↓ STFT计算 → 窗函数导数计算 ↓ ↓ 时频矩阵 → 瞬时频率估计 ↓ ↓ 同步压缩重分配 ↓ 高分辨率时频表示 ↓ 时频脊线提取 ↓ 频率掩膜生成 ↓ 分量分离与重构 ↓ 性能评估(SNR计算) ↓ 结果输出详细算法步骤
第一步,准备测试信号,构造包含线性调频、频率调制和幅度调制的多分量振动信号,添加高斯白噪声模拟实际测量环境。
第二步,设置分析参数,包括采样频率、窗函数宽度、跳跃步长和傅里叶变换点数,生成高斯分析窗及其一阶导数。
第三步,对输入信号进行预处理,在信号两端添加适当长度的零值以处理边界效应。
第四步,采用滑动窗口方式对信号进行分帧,使用跳跃采样减少计算帧数,对每帧信号加窗后进行快速傅里叶变换得到短时傅里叶变换结果。
第五步,利用窗函数导数计算信号的瞬时频率估计,为同步压缩提供重分配方向。
第六步,执行同步压缩操作,将每个时频点按照其瞬时频率估计值重新定位到更精确的频率位置,获得高分辨率的时频分布。
第七步,从时频图中提取主要振动分量的频率脊线,设定频率邻域宽度生成二值掩膜。
第八步,利用频率掩膜分离各个振动分量对应的时频区域,通过逆变换重构每个分量的时域波形。
第九步,计算重构信号与原始分量之间的信噪比,评估分离效果和重构质量。
第十步,可视化显示理论瞬时频率、时频分布、分量重构结果和性能指标。
主要是通过
时域降采样:通过设置hop参数(跳数20),在计算STFT时窗口不是逐点滑动,而是跳跃移动,将计算量减少到原来的1/20
频域选择性计算:只计算特定频率范围(如[0,80]Hz),避免全频带计算
优化的缓冲区操作:使用buffer函数进行向量化分帧处理,替代传统的循环滑动窗口
计算资源复用:在计算SST时复用已计算的STFT结果,避免重复FFT运算
内存预分配:所有输出矩阵都预先分配内存,避免动态扩展的开销
条件重分配:只对幅度超过阈值γ的时频点进行同步压缩操作
参考文章:
基于时频降采样与选择性重分配的多分量振动信号快速同步压缩变换分析(MATLAB) - 哥廷根数学学派的文章
https://zhuanlan.zhihu.com/p/1977018337423803413
工学博士,担任《Mechanical System and Signal Processing》审稿专家,担任
《中国电机工程学报》优秀审稿专家,《控制与决策》,《系统工程与电子技术》,《电力系统保护与控制》,《宇航学报》等EI期刊审稿专家。
擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。