一维信号匹配追踪(MP)稀疏分解与重建系统
项目介绍
本项目实现了一套基于匹配追踪(Matching Pursuit, MP)算法的一维信号稀疏处理框架。该系统旨在通过过完备原子字典,将复杂的非平稳信号分解为极少数具有特定物理意义的结构化原子。通过贪婪迭代策略,系统能够从庞大的候选原子库中提取信号的主导特征,并以极高的压缩比实现信号的精确重建。该技术在信号压缩、去噪及特征提取等领域具有显著的应用价值。
功能特性
- 复杂合成信号模拟:系统能够构建包含局部时域特征(高斯脉冲)、全局频域特征(周期正弦波)以及时频调制特征(Gabor原子)的复合一维信号,并模拟真实环境下的随机噪声。
- 过完备原子字典构建:动态生成基于尺度(Scale)、位移(Translation)和频率(Frequency)多维参数偏移的Gabor原子库,形成高度冗余的表示空间。
- 贪婪迭代分解逻辑:采用经典的MP算法逻辑,通过逐次计算残差与字典原子的内积,选取匹配度最高的成分。
- 高保真重建与评估:具备自动化的信号重建能力,并提供均方根误差(RMSE)和信噪比(SNR)等量化评估指标。
- 多维度结果可视化:系统集成四路图表,直观展示信号重建对比、原子系数分布、残差能量衰减及误差分布。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件要求:建议内存 8GB 以上(字典构建阶段涉及大规模矩阵运算)。
- 工具箱:基础 MATLAB 即可运行,无需特殊工具箱支持。
使用方法
- 将项目脚本文件置于 MATLAB 当前工作目录下。
- 在命令行窗口直接输入主函数名称并回车。
- 系统将自动执行:字典构建 -> 迭代分解 -> 信号重建 -> 结果绘图。
- 运行结束后,控制台将输出包含迭代次数、RMSE、SNR 在内的详细报告。
核心实现逻辑说明
系统内部逻辑严格遵循以下六个阶段:
- 参数初始化:
设定信号长度(512点)、最大迭代次数(100次)以及残差能量停止阈值(1e-4),确保算法在精度与效率之间平衡。
- 合成信号生成:
通过线性组合三个不同特征的分量构建输入向量:
- 分量A:重心位于150点的高斯脉冲,体现时域局部化。
- 分量B:频率为0.05的简谐波,体现频域特征。
- 分量C:位于350点的调制高斯脉冲,用于验证Gabor原子的匹配能力。
- 噪声:加入标准差为0.05的随机噪声。
- 过完备字典库构建:
系统通过三层嵌套循环生成原子。
- 尺度(Scales):[2, 4, 8, 16, 32, 64, 128] 七种尺度。
- 位移(Translations):以8为步长在信号全长内采样。
- 频率(Frequencies):在0到0.5之间以0.02为步长精细采样。
每个原子均经过L2范数归一化处理,确保内积直接反映相关性。
- 匹配追踪(MP)迭代:
- 初始化:残差设为原始输入信号。
- 投影计算:在每一轮搜索中,将当前残差向量与字典中的数千个原子逐一进行内积运算。
- 贪婪选择:选取内积绝对值最大的原子作为当前最佳匹配成分。
- 状态更新:从残差中减去在该原子方向上的投影分量,并将选中的原子累加至重建信号。
- 量化性能分析:
计算重建信号与原始信号的均方根误差。采用20倍对数底公式计算信噪比(SNR),用于衡量稀疏表示对原始信息的保留程度。
- 可视化输出:
- 时域波形图:对比原始带噪信号与MP重建信号的重合度。
- 系数展示:以火柴棒图形式展示选中的原子索引及其贡献强度,反映信号的稀疏性。
- 收敛曲线:展示残差能量随迭代次数增加而迅速下降的过程。
关键算法细节分析
- 内积最大化原则:核心采用了贪婪寻优策略,每一轮迭代选取的原子是与当前残差方向最一致的基向量,保证了下降速度。
- 原子归一化:在字典构建阶段,若原子范数过小则予以剔除,正常的原子通过
atom / norm(atom) 转化为单位向量,这是内积能够代表相关性的前提。 - Gabor函数构造:原子模板采用
exp(-pi * (t/s)^2) * cos(2 * pi * f * t)。这种构造兼顾了高斯窗的时域窗函数特性和余弦波的频率特性,使其能够同时捕捉信号的瞬态和稳态分量。 - 退出机制:系统具备双重退出逻辑,既能防止算法无限运行(最大迭代次数限制),也能在信号已达到足够精度的重建时自动停止(残差阈值限制)。