常见压缩感知算法汇总仿真系统
项目介绍
本项目是一个基于 MATLAB 开发的集成化压缩感知(Compressive Sensing, CS)重构算法仿真平台。系统通过模拟信号的稀疏表示、测量矩阵生成、观测向量获取以及信号重构的全流程,对比了主流 CS 重构算法的性能表现。该平台旨在为研究人员和开发者提供一个直观的工具,用于分析不同算法在特定参数下的重构精度、运行效率和收敛特性,是深入理解压缩感知理论及其应用的理想实验环境。
功能特性
- 多算法集成仿真:集成了贪婪类算法(OMP、GP)和凸优化正则化算法(ISTA),支持多种典型重构逻辑的同场竞技。
- 全流程信号处理模拟:涵盖了从原始稀疏信号构造、高斯随机测量矩阵生成到观测向量计算的完整物理过程。
- 多维度性能评估:提供单次重构效果对比、残差收敛曲线分析以及耗时统计,直观展示算法性能。
- 自动化成功率统计:支持通过改变测量数(M)进行多次随机试验,自动统计并绘制重构成功率曲线,揭示算法对采样率的敏感度。
- 交互式可视化界面:仿真结果以图形化方式呈现,包括重构信号对比图和对数坐标下的残差下降图,便于定量与定性分析。
使用方法
- 确保计算机已安装 MATLAB R2016b 或更高版本。
- 将所有相关算法函数与主仿真脚本置于同一工作目录下。
- 在 MATLAB 命令行窗口中直接运行仿真主函数。
- 程序将首先执行单次重构实验,并弹出四个子图构成的重构效果与收敛对比窗口。
- 随后程序会自动进入成功率统计仿真阶段(此处需等待片刻),完成后将生成不同测量数下的性能评估曲线图。
- 性能指标(如 MSE 和耗时)将实时显示在 MATLAB 控制台中。
系统要求
- 运行环境:MATLAB (推荐 R2018a 及以上版本)。
- 依赖库:无需第三方工具箱,仅需 MATLAB 核心函数支持。
- 硬件建议:4GB RAM 或以上,以支持多次迭代仿真时的内存开销。
实现逻辑与仿真流程
系统内部逻辑严格遵循压缩感知的数学框架,具体执行步骤如下:
- 参数初始化:预设信号长度为 256,稀疏度为 20。初始观测维度设定为 100,同时定义迭代步数和收敛阈值。
- 稀疏信号构造:利用随机排列函数在全零向量中确定随机位置,注入高斯分布的随机值,生成最符合理论假设的原始稀疏信号。
- 观测系统构建:生成符合受限等距性质(RIP)的高斯随机测量矩阵,并对原始信号进行线性降维投影,获取观测向量。
- 算法并行求解:
* 调用 OMP 算法通过原子选择和最小二乘投影进行逐步恢复。
* 调用 GP 算法沿梯度方向进行贪婪搜索和步长优化。
* 调用 L1-ISTA 算法利用软阈值算子在迭代中逼近 L1 范数最小化解。
- 可视化与评估:
* 对比各算法重构信号与原始信号的拟合程度。
* 统计各算法运行时间与均方误差(MSE)。
* 绘制在不同测量数(30 到 150)环境下,经过 50 次独立随机试验后的成功率演变趋势。
关键函数与算法分析
正交匹配追踪算法 (OMP)
该算法采用了贪婪迭代策略。在每轮迭代中,它计算残差与支撑矩阵中各列的内积,选取相关性最大的原子。随后,通过最小二乘法将观测向量投影到已选定的原子空间上以更新信号估计值,并同步更新残差。这种方法保证了残差与已选原子始终保持正交。
梯度追踪算法 (GP)
作为一种高效的贪婪算法,它在确定了支撑集原子后,并没有像 OMP 那样进行复杂的最小二乘运算。相反,它计算当前残差产生的梯度方向,并通过计算最优步长来更新信号估计量。该实现特意加入了重复索引检查逻辑,保证了迭代的稳定性。
L1 范数最小化迭代软阈值算法 (ISTA)
这是一种基于邻近梯度下降(Proximal Gradient Descent)的算法。它将重构问题分解为梯度下降步和软阈值压缩步。实现中引入了 Lipschitz 常数的倒数作为搜索步长,通过符号函数和偏移比较来实现 L1 正则化的收敛。该算法在记录残差历史的同时,通过比较前后两次迭代的解的变化量来判断是否提前终止。
性能评估模块
系统内置了自动化的成功率测试逻辑。判定准则基于相对误差:当重构信号与原始信号的相对 L2 范数误差小于 0.01 时,判定为重构成功。通过在不同测量维度下进行循环测试,该模块能够准确刻画出算法的相变特性。