我是压缩感测的新手。我阅读了R.Baranuik,Y.Eldar,Terence Tao等人的几篇论文。这些论文基本上都提供了其背后的数学细节,即稀疏性,RIP,L1范数最小化等。但是,任何人都可以提供MATLAB代码可以实现压缩感测?

感谢您的帮助。

评论

代码请求不在这里。

#1 楼



L1魔术。这是与原始纸张关联的工具箱。


CompSens。看起来好像是用C语言编写的,但是不确定,可以用mex来调用它。
基于模型的压缩感测工具箱。


代码是普通的Matlab代码。
包中的每个文件夹都包含一个基于特定信号模型的CS恢复算法,以及一个测试该恢复算法的脚本。脚本的名称通常以'_example.m'结尾。





Manopt。


流形上的优化是解决非线性优化问题的强大范例。




UMich的一些示例。

稀疏。


该工具箱实现了多种算法,以计算冗余字典中的稀疏展开,并通过稀疏正则化(以及电视正则化)解决反问题。 >但是所有这些,以及更多,都包含在此工具箱列表中。以下是一些包含伪代码的算法示例:压缩感知的初学者指南。
正交匹配追求
CS-KLT
Microsoft的其他一些算法
MCMC用于通用CS
示例
压缩感知的脉冲流
用于压缩感知的GPU加速贪婪算法
自适应感知相机
压缩感知符合博弈论


#2 楼

我猜想我在这里回答了题外话,但是对于L1优化方法,我发现YALL1(http://yall1.blogs.rice.edu/)和SPGL1(http://www.cs.ubc.ca/ 〜mpf / spgl1 /)非常有用和高效的软件包。 TFOCS(http://cvxr.com/tfocs/)可能更难使用,但应该相当灵活。还有CVX(http://cvxr.com/cvx/),可以很容易地将凸优化问题直接输入代码中,但是解决压缩感测特定类型的问题要慢得多,因为它是非常通用的求解器。

Sparselab(http://sparselab.stanford.edu/)中还提供了一些重建算法。

此处列出了更多的稀疏重建代码:https://sites.google.com/site/igorcarron2/cs#reconstruction

#3 楼

请记住,L1不是唯一的压缩感测方法。在我们的研究中,使用近似消息传递(AMP)取得了更好的成功。我将“成功”定义为更低的错误,更好的相变(能够以更少的观察进行恢复)和更低的复杂度(包括内存和cpu)。

近似消息传递算法建立了贝叶斯框架估计大型线性系统中的未知矢量,其中线性系统的输入和输出由概率模型确定(例如“此矢量是用噪声测量的”,“此矢量有一些零”)。 Rangan将Donoho伪造的原始AMP方法改进为具有可用Matlab代码的广义近似消息传递。输入和输出可以是几乎任意的概率密度函数。在我们的研究中,我们发现GAMP通常比L1凸方法和贪婪方法(例如正交匹配追踪)更快,更准确,更鲁棒(阅读:更好的相变曲线)。

我的顾问和我刚刚写了一篇关于使用GAMP进行Analysis CS的论文,其中人们期望在未知矢量x处而不是在未知Wx的线性函数中存在大量零。

#4 楼

您可能还需要检查Matlab UNLocBox:http://unlocbox.sourceforge.net
演示页面上有4种压缩感测脚本:http://unlocbox.sourceforge.net/doc/demos/index。 php

#5 楼

可在http://compsens.eecs.umich.edu/sensing_tutorial.php中找到最简单的信号,可以帮助您了解压缩感测的工作原理。在这里,您会发现代码演示了在频域和时域中使用稀疏信号进行压缩感测的方法。
希望这对您有帮助
感谢博士。佐伯利

#6 楼

我已经编写了许多动手的编码教程,为初学者解释了CS,MP,OMP等的基础知识。您可以在https://sparse-plex.readthedocs.io/en/latest/demos/index.html

检出它们,这是我的库sparse-plex的一部分,可从GitHub https://获得。 github.com/indigits/sparse-plex