信号分解和小波阈值联合降噪 | NRBO-FMD基于牛顿拉夫逊算法优化特征模态分解+皮尔逊系数+小波阈值降噪+信号重构,MATLAB代码

张开发
2026/4/10 6:38:40 15 分钟阅读

分享文章

信号分解和小波阈值联合降噪 | NRBO-FMD基于牛顿拉夫逊算法优化特征模态分解+皮尔逊系数+小波阈值降噪+信号重构,MATLAB代码
一、研究背景在机械故障诊断、生物医学信号处理、振动分析等领域采集到的信号往往包含强噪声和非平稳特征。有效的信号分解与降噪是提取故障特征的关键。FMDFiltered Mode Decomposition是一种结合频带分割与迭代滤波的信号分解方法能够自适应地将复杂信号分解为若干本征模态分量IMF。然而FMD 的性能高度依赖滤波器大小和模态个数两个参数传统人工调参效率低、难以获得全局最优。因此引入NRBONewton-Raphson-based Optimizer牛顿-拉夫逊优化算法自动寻优这两个关键参数并以多种熵包络熵、信息熵等或峭度因子作为适应度函数实现自适应最优分解。分解后进一步利用小波阈值降噪对低相关分量进行处理提升重构信号质量。二、主要功能自适应FMD分解通过NRBO优化滤波器大小和模态个数对输入信号进行最优分解得到多个IMF分量。多目标适应度选择支持6种目标函数包络熵最小、信息熵最小、排列熵最小、样本熵最小、能量熵最小、包络峭度因子最小用户可根据信号特性选择。IMF质量评估与筛选计算每个IMF与原始信号的皮尔逊相关系数自动区分“保留分量”与“需降噪分量”。小波阈值降噪对低相关系数分量分别进行软阈值和硬阈值降噪并重构信号。可视化与结果导出绘制原始信号、迭代曲线、参数变化、分解图、幅值谱、功率谱、希尔伯特谱、降噪前后对比图并输出Excel文件。三、算法步骤步骤描述1读取信号数据data.xlsx绘制原始信号。2设置全局参数cutnum频带切割数、maxiternum迭代次数、fs采样频率。3定义优化变量滤波器大小[10,50]模态个数[5, cutnum]。设置NRBO种群规模10、最大迭代次数20。4选择目标函数类型value1~6调用getObjValue计算适应度。5运行NRBO优化算法得到最优参数Best_pos和最优适应度Best_score。6用最优参数调用FMD函数进行信号分解获得IMF矩阵。7计算各IMF与原始信号的皮尔逊相关系数依据阈值TH1区分保留分量K2与需降噪分量K1。8对需降噪分量进行小波阈值降噪db1小波2层分解全局软/硬阈值绘制降噪前后对比。9重构信号保留分量 降噪后分量分别生成软阈值和硬阈值降噪结果并保存为Excel文件。四、技术路线原始信号 → NRBO优化寻优滤波器大小、模态个数→ FMD分解 → 计算相关系数 ↓ ┌────┴────┐ ↓ ↓ 保留分量 需降噪分量 → 小波阈值降噪软/硬阈值 └────┬────┘ ↓ 信号重构 → 输出降噪后信号与评估图表五、公式与原理1. 适应度函数以包络熵为例对于每个IMF分量 (c_i(t))先求希尔伯特包络ai(t)∣Hilbert(ci(t))∣ a_i(t) |\text{Hilbert}(c_i(t))|ai​(t)∣Hilbert(ci​(t))∣归一化pi(t)ai(t)∑tai(t) p_i(t) \frac{a_i(t)}{\sum_t a_i(t)}pi​(t)∑t​ai​(t)ai​(t)​包络熵Eenv−∑tpi(t)log⁡pi(t) E_{\text{env}} -\sum_t p_i(t) \log p_i(t)Eenv​−t∑​pi​(t)logpi​(t)适应度取所有IMF中包络熵的最小值熵越小信号越规律冲击特征越明显。2. FMD核心 —— 最大相关峭度解卷积MCKDFMD内部调用xxc_mckd其目标最大化相关峭度Correlated Kurtosis, CKCKM(T)∑n1N(∏m0Myn−mT)2(∑n1Nyn2)M1 \text{CK}_M(T) \frac{\sum_{n1}^{N} \left( \prod_{m0}^{M} y_{n-mT} \right)^2}{\left( \sum_{n1}^{N} y_n^2 \right)^{M1}}CKM​(T)(∑n1N​yn2​)M1∑n1N​(∏m0M​yn−mT​)2​其中 (y) 为滤波输出(T) 为故障周期(M) 为移位阶数。通过迭代求解最优滤波器 (f)使CK最大从而增强周期性冲击成分。3. 小波阈值降噪对需降噪分量进行db1小波2层分解。估计噪声标准差σwnoiset(c,l,1)\sigma \text{wnoiset}(c,l,1)σwnoiset(c,l,1)。全局阈值λσ2ln⁡N\lambda \sigma \sqrt{2\ln N}λσ2lnN​NNN为信号长度。软阈值函数w^sgn(w)⋅max⁡(∣w∣−λ,0) \hat{w} \text{sgn}(w) \cdot \max(|w|-\lambda, 0)w^sgn(w)⋅max(∣w∣−λ,0)硬阈值函数w^w⋅1∣w∣≥λ \hat{w} w \cdot \mathbf{1}_{|w| \ge \lambda}w^w⋅1∣w∣≥λ​六、参数设定来自main.m及全局变量参数值含义cutnum5频带切割数决定初始滤波器组数量maxiternum20FMD内部迭代次数fs20000 Hz采样频率lb[10, 5]滤波器大小下限模态个数下限ub[50, cutnum]滤波器大小上限模态个数上限dim2优化变量维数SearchAgents_no10NRBO种群规模Max_iter20NRBO最大迭代次数value1~6目标函数选择开关七、运行环境软件MATLAB推荐 R2020b 及以上版本输入文件data.xlsx单列信号数据输出文件NRBO-FMD分解结果.xlsxNRBO-FMD降噪后信号_软/硬阈值.xlsx八、应用场景旋转机械故障诊断轴承、齿轮箱等振动信号中的周期性冲击提取。生物医学信号处理心电图ECG、脑电图EEG的噪声抑制与特征分离。结构健康监测桥梁、管道等结构的振动响应分解与损伤识别。地球物理勘探地震信号中反射波与噪声的分离。完整源码私信回复信号分解和小波阈值联合降噪 | NRBO-FMD基于牛顿拉夫逊算法优化特征模态分解皮尔逊系数小波阈值降噪信号重构MATLAB代码

更多文章