正基追踪去噪参考代码

信息处理 matlab 优化 压缩传感
2022-01-08 07:32:07

我正在尝试使用压缩感知(friedlanders 代码)重建正稀疏信号,但我找不到为此实现施加正性约束的方法。我看过一些讨论积极信号案例的论文,但找不到任何代码实现,任何人都可以指出任何相关代码。

2个回答

我假设您正在解决以下优化问题:

argminxx1subject toAx=bx0

如果我们注意给定 thenx0x1=1Tx

这意味着上述问题等价于:

argminx1Txsubject toAx=bx0

现在,这是一个线性规划问题,可以使用 MATLAB 或任何其他 LP 求解器轻松解决。

例如,在 MATLAB 中它将是这样的:

numRows = 10;
numCols = 100;

mA = randn([numRows, numCols]);
vB = randn([numRows, 1]);

vE = ones([numCols, 1]); %<! Vector of ones to sum vX

vX = linprog(vE, [], [], mA, vB, zeros([numCols, 1]), inf([numCols, 1]));

SparseLab 应该能够解决正约束问题:SparseLab (Stanford) - Seeking Sparse Solutions to Linear System of Equations

有关该问题的定义,请参阅Donoho 和 Tanner,“精确欠采样定理”

这个工具箱依赖于 Matlab。