压缩感知是一种採样方法,它和变换编码类似,后者被广泛用于涉及到大规模数据採样的现代通信系统中。变换编码将高维空间中的输入信号。转换成很低的低维空间中的信号。变换编码器的样例有著名的小波变换和普遍存在的傅立叶变换。

压缩感知技术将变换编码成功的用于可压缩信号或者是稀疏信号。将一个K稀疏N维离散时间信号x进行编码。是通过计算一个m维的測量向量y来完毕的,y是x的线性投影。这能够通过下式进行简洁表示:y=Phi*x。在这里,Phi代表一个m*N的矩阵,一般是在实数领域中。在这个框架中,投影基被如果成是不相关的,在这个基下,信号能够有一个稀疏表示。

虽然重构信号是一个欠定问题。信号稀疏性的先验使求解问题成为可能。CS理论中一个很著名的结果是能够使用优化的策略进行信号重构,方法是寻找最稀疏的信号使得y=Phi*x成立。

换句话说,重构问题能够归结为L0最优化问题。

在无噪的情况下。L0最优化只须要m=2K个随机投影就能重构出稀疏信号。不幸的是,L0最优化问题是一个NP-hard问题。这个问题引发了大量的CS 理论研究和实践,实践主要是环绕设计低计算复杂度的測量和重构算法。

Donoho和Candes等人的工作表明,CS重构确实是一个多项式时间问题,尽管是在多于2K次測量的约束条件下。这些发现表明不一定必须使用求解L0最优化问题进行重构。并且通过求解一个更简单的L1最优化问题,这能够通过线性规划问题。L1和L0在一定条件下是等价的,仅仅要測量矩阵满足一定的RIP条件。

虽然LP技术在设计重构算法中非常重要。可是它们的计算复杂度仍然非常高。非常难应用到非常多应用中。在这些样例中,对于高速解码算法的需求——最好是线性时间——是非常重要的,虽然不得不提高測量的个数。几种低复杂度的重构技术近期被提了出来,包含群測方法和基于置信传播的算法。

近期。一类迭代贪婪算法引起了人们的注意,由于这些算法的计算复杂度低。而且有较好的几何解释。

包含OMP 、ROMP和StOMP等。这些方法的基本出发点是迭代寻找未知信号的支撑集。在每次迭代中。向量x的一个或者多个坐标被选出来进行測试,測试的方法是计算正则化的測量向量和Phi的列之间的相关系数。假设被觉得是足够好,待选列逐步被选入到x的当前支撑集中。

追踪算法迭代进行这种步骤,直到正确支撑集中全部的坐标被选入到预计的支撑集中。

OMP策略的计算复杂度依赖于正确重构所须要的迭代次数:标准的OMP通常执行K次迭代,因此它的重构复杂度大约为O(KmN)(很多其它信息查看Section-IV
C)。这种计算复杂度比LP算法要低非常多。尤其是当信号的稀疏度K非常小的时候。可是。追踪算法没有和LP算法一样级别的重构性能保证。

为了保证OMP算法能恢复成功,要求Phi的随意两列之间的相关系数不超过1/2K。它由Gershgorin Circle定理证明,它比RIP的要求还要严格。ROMP算法能够重构出全部的K稀疏信号,要求Phi满足特定參数的RIP条件(delta_{2K}<=0.06/sqrt(log(K))),它比普通的L1线性规划问题要求有更强的RIP条件,分母上多了一个sqrt(log(K))。

本文的主要贡献是提出了一种新的算法。称作子空间追踪算法(SP)。它有和LP算法类似的能够证明的重构性能。而且计算复杂度很低。这个算法既能够无噪和有噪的情况。在无噪情况下。假如矩阵Phi满足带有一定參数的RIP条件,那么SP算法能够准确重构出原始信号。

当測量不准却,或者信号不是严格稀疏的,重构失真有一个上界,这个上界与測量的常数倍数和摄动能量有关。

对于很稀疏的信号,K<=const*sqrt(N),计算复杂度的上界是O(mNK),当信号的稀疏度更小的时候,甚至能达到O(mNlog(K))。

原文:http://dsp.rice.edu/sites/dsp.rice.edu/files/cs/SubspacePursuit.pdf

转载请注明出处:http://blog.csdn.net/zhyoulun/article/details/41978129

压缩感知——SP(subspace pursuit)重构算法前言翻译的更多相关文章

  1. 压缩感知重构算法之SP算法python实现

    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...

  2. 浅谈压缩感知(六):TVAL3

    这一节主要介绍一下压缩感知中的一种基于全变分正则化的重建算法——TVAL3. 主要内容: TVAL3概要 压缩感知方法 TVAL3算法 快速哈达玛变换 实验结果 总结 1.TVAL3概要 全称: To ...

  3. 压缩感知重构算法之子空间追踪(SP)

    SP的提出时间比CoSaMP提出时间稍晚一些,但和压缩采样匹配追踪(CoSaMP)的方法几乎是一样的.SP与CoSaMP主要区别在于“In each iteration, in the SP algo ...

  4. 浅谈压缩感知(二十四):压缩感知重构算法之子空间追踪(SP)

    主要内容: SP的算法流程 SP的MATLAB实现 一维信号的实验与结果 测量数M与重构成功概率关系的实验与结果 SP与CoSaMP的性能比较 一.SP的算法流程 压缩采样匹配追踪(CoSaMP)与子 ...

  5. 浅谈压缩感知(二十八):压缩感知重构算法之广义正交匹配追踪(gOMP)

    主要内容: gOMP的算法流程 gOMP的MATLAB实现 一维信号的实验与结果 稀疏度K与重构成功概率关系的实验与结果 一.gOMP的算法流程 广义正交匹配追踪(Generalized OMP, g ...

  6. 浅谈压缩感知(二十五):压缩感知重构算法之分段正交匹配追踪(StOMP)

    主要内容: StOMP的算法流程 StOMP的MATLAB实现 一维信号的实验与结果 门限参数Ts.测量数M与重构成功概率关系的实验与结果 一.StOMP的算法流程 分段正交匹配追踪(Stagewis ...

  7. 压缩感知重构算法之OLS算法python实现

    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...

  8. 浅谈压缩感知(三十):压缩感知重构算法之L1最小二乘

    主要内容: l1_ls的算法流程 l1_ls的MATLAB实现 一维信号的实验与结果 前言 前面所介绍的算法都是在匹配追踪算法MP基础上延伸的贪心算法,从本节开始,介绍基于凸优化的压缩感知重构算法. ...

  9. 压缩感知重构算法之压缩采样匹配追踪(CoSaMP)

    压缩采样匹配追踪(CompressiveSampling MP)是D. Needell继ROMP之后提出的又一个具有较大影响力的重构算法.CoSaMP也是对OMP的一种改进,每次迭代选择多个原子,除了 ...

随机推荐

  1. invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause

    Column 'dbo.tbm_vie_View.ViewID' is invalid in the select list because it is not contained in either ...

  2. Java数组与栈内存、堆内存

    package ch4; /** * Created by Jiqing on 2016/11/9. */ public class ArrayInRam { public static void m ...

  3. kotlin官方文档-1.0入门

    什么是Kotlin?   图片发自简书App Kotlin是JetBrains开发的基于JVM的语言,JetBrains想必大家应该很熟悉了,他们创造了很多强大的IDE,android studio谷 ...

  4. java9新特性-20-Javascript引擎升级:Nashorn

    1.官方Feature 236: Parser API for Nashorn 292: Implement Selected ECMAScript 6 Features in Nashorn 2.使 ...

  5. iview 分页的案例

    //html部分 //js部分

  6. hdu1864/2844/2159 背包基础题

    hdu1864 01背包 题目链接 题目大意:一堆数,找到一个最大的和满足这个和不超过Q要学会分析复杂度! #include <cstdio> #include <cstring&g ...

  7. Bayes++ Library入门学习之熟悉namespace

    Bayes++是一个开源的C++类库.这些类表示并实现了用于离散系统的贝叶斯滤波的各种数值算法.该库中的类提供测试和一致的数值方法,并且用层次明确的结构表明了各种滤波算法和系统模型类型. 接下来,我们 ...

  8. Spring AOP 实现数据库读写分离

    背景 我们一般应用对数据库而言都是"读多写少",也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案, 其中一个是主库,负责写入数据,我们称之为:写库: 其它都 ...

  9. python中修改函数内部的变量会发生什么

    最近写python遇到个函数内部变量使用外部变量的问题,现在总结下吧 #!/usr/bin/env python a = 100def su(): a = a + 1 print(a) s = su( ...

  10. 装了ubuntu后笔记本电脑的无线网卡用不了,怎么设置?

    百度经验的一篇文章 http://jingyan.baidu.com/article/ca2d939dd4f1b4eb6c31ce09.html 点击右上角的齿轮,选择“系统设置”   点击“软件和更 ...