基追踪(Basis Pursuit, BP)稀疏信号重构系统
项目介绍
本项目是一个基于压缩感知(Compressed Sensing, CS)理论的信号处理演示系统,核心目标是验证基追踪(Basis Pursuit)算法在稀疏信号重构中的有效性。系统通过数学建模将信号恢复问题转化为一个受线性约束的 L1 范数最小化问题,并利用优化工具解决欠采样恢复难题。该系统可以展示如何从远低于采样定理要求的观测数据中,高精度地还原原始信号。
功能特性
- 全流程仿真:涵盖了从稀疏信号生成、正交基构造、压缩观测到数值重构的全生命周期处理过程。
- 数学驱动的重构:采用标准的基追踪数学模型,将非线性的 L1 最小化问题转化为线性规划问题求解。
- 性能量化评估:系统自动计算均方误差 (MSE)、运行耗时以及原始信号与重构信号的相关系数。
- 多维度可视化:提供稀疏域系数对比、时域波形重建对比、重建残差分析以及测量矩阵热图展示。
- 可复现性:通过固定随机数种子,确保不同运行环境下实验结果的一致性。
系统逻辑与功能实现
系统按照压缩感知的核心步骤依次执行以下功能:
1. 信号稀疏化表达与生成
- 系统预设了原始信号长度(256点)、压缩后的观测维度(100点)以及信号的稀疏度(20个非零系数)。
- 手动构造离散余弦变换(DCT)基矩阵,作为信号的稀疏表示空间。
- 在稀疏域随机生成具有高斯分布特性的非零系数,通过 DCT 逆变换生成时域原始信号。
2. 压缩观测过程
- 构造高斯随机测量矩阵,该矩阵满足压缩感知中的限制等距性质(RIP),确保信息在降维过程中不被丢失。
- 将高维的时域信号投影到低维空间,获得观测向量,模拟实际硬件中的压缩采样过程。
3. 基追踪重构核心
- 将重构问题定义为:在满足线性观测约束的前提下,寻找 L1 范数最小的稀疏系数。
- 逻辑实现上,利用变量替换法将 L1 问题转化为线性规划(Linear Programming)标准形式。通过引入两个非负辅助变量,将原始变量拆分为正部和负部。
- 构建目标函数系数向量、等式约束矩阵(包含观测矩阵与稀疏基的乘积)以及变量下界。
4. 结果验证与可视化
- 调用内点法优化算法进行大规模计算,获取重构后的稀疏系数。
- 通过稀疏基将系数还原回时域信号。
- 自动生成图表,对比原始与重构信号的差异,展现算法在低观测维数下的稳健性能。
关键算法与实现细节
- DCT 矩阵构造:系统通过两层循环严格按照离散余弦变换定义构造正交基矩阵,避免了对外部特定工具箱的依赖。
- L1 范数转化为线性规划:
* 目标函数:为了最小化稀疏系数的绝对值之和,系统构造了一个长度为原始信号两倍的优化向量,其目标函数系数全为 1。
* 约束处理:通过拼接测量矩阵与测量矩阵的负值,构造了等式约束矩阵 Aeq,使得重构模型符合线性规划求解器的输入规范。
- 优化求解器应用:利用内置的 linprog 函数,并指定 interior-point(内点法)算法,在大规模稀疏恢复任务中提供较好的收敛性和计算速度。
- 精度评价指标:除了直观的波形图,系统通过 MSE 和相关系数两个维度定量分析重构精度,验证算法是否达到“完美重构”的标准。
使用方法
- 启动 MATLAB 环境。
- 将包含系统脚本的文件夹设置为当前工作路径。
- 直接运行主程序脚本。
- 程序运行完成后,命令行窗口将输出信号统计参数、误差结果及运行耗时。
- 系统会自动弹出可视化图形窗口,展示重构效果的各项指标对比图。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 必备工具箱:需要安装 Optimization Toolbox(用于调用 linprog 函数)。
- 硬件要求:标准桌面或笔记本电脑即可,内存建议 4GB 以上以确保矩阵运算的流畅性。