基于提升小波变换的高性能信号去噪系统
项目介绍
本项目实现了一种基于第二代小波变换——提升小波变换(Lifting Wavelet Transform, LWT)的高性能信号去噪方案。相比于传统基于卷积的算法,提升算法具备计算效率高、可实现原位运算以及不依赖频域滤波等优势。系统通过构建一个包含多频率成分及局部突变特征的复杂仿真信号,验证了该方案在处理非平稳信号时的优越性。核心逻辑结合了自适应噪声估计与改进型连续阈值函数,旨在平衡去噪效果与信号特征保持。
---
功能特性
- 第二代提升小波架构:采用双正交(2,2)提升方案,通过分裂、预测、更新三个阶段实现信号的多级分解。
- 改进型连续阈值函数:引入指数调节因子,构建了介于软硬阈值之间的自适应收缩函数,有效消除了传统硬阈值的跳变点和软阈值的恒定偏置问题。
- 稳健噪声估计:利用第一层细节系数的绝对中值(MAD)对噪声标准差进行鲁棒估计。
- 突变特征保持:特别针对信号的奇异点(如局部跳变)进行了优化,确保去噪后的信号边缘清晰。
- 全方位性能评估:自动计算信噪比(SNR)增益和均方误差(MSE)降幅,并提供残留噪声分析。
---
系统要求
- 开发环境:MATLAB R2016b 及以上版本。
- 必备工具箱:基础 MATLAB 环境(无需特定第三方库,算法核心采用纯逻辑实现)。
---
使用方法
- 启动 MATLAB。
- 将包含主逻辑的脚本文件置于当前工作目录。
- 运行该脚本。
- 系统将自动弹出两个可视化窗口:
*
时域分析图:展示原始、带噪及重构信号的对比,以及系统滤除的残留噪声成分。
*
指标分析图:以柱状图形式直观呈现处理前后的 SNR 提升量。
- 在控制台查看具体的 SNR 和 MSE 数值分析结果。
---
实现逻辑与功能细节
本项目核心逻辑分为以下六个阶段:
1. 信号仿真与环境模拟
系统生成一个采样率为 1000Hz 的合成信号。该信号模拟了真实工业或生物医学中的典型特征:
- 低频分量:5Hz 正弦波。
- 中频分量:50Hz 正弦波。
- 奇异特征:在信号中部(400-450采样点)手动叠加一个突变脉冲,用于测试算法对瞬态信号的保留能力。
- 背景噪声:注入标准差为 0.6 的高斯白噪声。
2. 提升小波多尺度分解
算法直接在时域通过以下步骤实现 4 层分解:
- 分裂 (Split):将奇偶样本点分离。
- 预测 (Predict):利用相邻偶数点对奇数点进行线性预测,其残差作为细节系数(D)。
- 更新 (Update):利用细节系数修正偶数点,得到更平滑的近似系数(S)。
此过程不涉及卷积核,显著降低了内存开销并支持原位替换。
3. 自适应阈值设计
针对提取出的各级细节系数,系统实施了精细化处理:
- 阈值估算:采用 Universal Threshold 公式 $lambda = sigma sqrt{2 log N}$,其中 $sigma$ 是根据第一层细节系数分布自动估算的。
- 改进处理函数:利用指数映射公式 $sgn(x) cdot (|x| - alpha cdot lambda / exp((|x|-lambda)/lambda))$ 对系数进行收缩。当系数远大于阈值时,函数逼近硬阈值(减少偏差);当系数接近阈值时,函数保持平滑连续(抑制振荡)。
4. 逆提升重构
按照分解的逆序执行操作:
- 逆更新:恢复原始偶数序列的基础值。
- 逆预测:利用恢复的偶数点找回原始奇数点。
- 合并:将处理后的奇偶序列重新交错排列,逐层重构回原始信号长度。
5. 性能指标计算
系统通过对比原始参考信号与去噪后的信号,计算:
- SNR (Signal-to-Noise Ratio):衡量信号质量的提升分贝数。
- MSE (Mean Squared Error):量化重构信号与理想信号的均方偏差。
6. 多维可视化展示
- 对比图:同坐标系展示原始、噪声、去噪三条曲线,直观呈现去噪深度。
- 残留分析:提取出的噪声成分(含噪减去重构)用于检查是否误伤了信号特征。若残留成分呈现随机白噪声特征,则说明去噪成功且特征保留完好。
- 评估图:柱状图直观对比处理前后信噪比。
---
关键算法分析
- 双正交(2,2)提升方案:该方案在计算效率和抗混叠之间取得了良好平衡。它的预测步长考虑了左右邻域,能更好地捕获信号的局部线性特征。
- 边界延拓处理:在分裂阶段,代码通过对边界样本进行对称补全,解决了小波变换在信号边缘容易产生的畸变问题。
- 自适应收缩因子 $alpha$:系统设置了 $alpha = 0.85$ 这一调节变量。该参数允许在硬阈值的“高保真”和软阈值的“平滑性”之间进行灵活切换,这是克服伪吉布斯现象(Pseudo-Gibbs phenomena)的关键。