浅谈压缩感知(二十):OMP与压缩感知
主要内容:
- OMP在稀疏分解与压缩感知中的异同
- 压缩感知通过OMP重构信号的唯一性
一、OMP在稀疏分解与压缩感知中的异同
、稀疏分解要解决的问题是在冗余字典(超完备字典)A中选出k列,用这k列的线性组合近似表达待稀疏分解信号y,可以用表示为y=Aθ,求θ。

、压缩感知重构要解决的问题是事先存在一个θ和矩阵A,然后得到y=Aθ(压缩观测),现在是在已知y和A的情况下要重构θ。
A为M×N矩阵(M<<N,稀疏分解中为冗余字典,压缩感知中为传感矩阵A=ΦΨ,即测量矩阵Φ乘以稀疏矩阵Ψ),
y为M×1的列向量(稀疏分解中为待稀疏分解信号,压缩感知中为观测向量),
θ为N×1的列向量(稀疏分解中为待求分解系数,压缩感知中为信号x的在变换域Ψ的系数,x=Ψθ)。
相同点:
- 对已知y和A的情况下,求y=Aθ中的θ。
- 稀疏分解中θ是稀疏的,在压缩感知中信号也需要满足稀疏性的条件,这也是相同点之一。(OMP一开始在应用在稀疏表示上,后来压缩感知恰好信号也满足稀疏性条件,因此OMP也适用于压缩感知问题)
不同点:
在稀疏分解中θ是事先不存在的,我们要去求一个θ用Aθ近似表示y,求出的θ并不能说对与错;在压缩感知中,θ是事先存在的,只是现在不知道,我们要通过某种方法如OMP去把θ求出来,求出的θ应该等于原先的θ的,然后可求原信号x=Ψθ。
压缩感知中的A需要满足一定的条件来保证重建的可行性与唯一性。(如RIP、spark等)
二、压缩感知通过OMP重构信号的唯一性
问题:
通过OMP等重构算法求出的θ就是原来的x=Ψθ中的那个θ吗?为什么通过OMP迭代后一定会选出矩阵A的那几列呢?会不会选择A的另外几列,它们的线性组合也满足y=Aθ?
证明:
思路与证明spark常数一致。浅谈压缩感知(十五):感知矩阵之spark常数
压缩感知的前提条件:若要恢复y=Aθ中k稀疏的θ,要求感知矩阵A(感知矩阵A=ΦΨ,即测量矩阵Φ乘以稀疏矩阵Ψ)至少任意2k列线性相关。这是压缩感知中A必须满足的一个条件。
假设通过OMP迭代后,存在两种不同的线性组合满足y=Aθ


即Atθt=Arθr,这意味着Aθk1= Aθk2,即A (θk1-θk2)=0。此处的θ大小与y一致,但只有与选中对应列的位置处不为0.
两个k稀疏的N维信号(长度为N的列向量)θk1和θk2,它们的差向量(θk1-θk2)的稀疏度最大不超过2k,(当θk1和θk2中的非零项都没有对应在同一位置时)。
而A必须满足至少任意2K列线性相关,因此A的零空间维度必须至少为2K,而(θk1-θk2)的稀疏度最大不超过2k,因此A (θk1-θk2)=0并不成立,即原假设不成立。
所以在感知矩阵A满足至少任意2k列线性相关的前提下(即spark常数),通过OMP算法恢复出的θ是唯一的。
三、参考文章
http://blog.csdn.net/jbb0523/article/details/45100659
http://blog.csdn.net/jbb0523/article/details/45102383
浅谈压缩感知(二十):OMP与压缩感知的更多相关文章
- 浅谈Kotlin(二):基本类型、基本语法、代码风格
浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 通过上面的文章,在A ...
- 浅谈Java代理二:Cglib动态代理-MethodInterceptor
浅谈Java代理二:Cglib动态代理-MethodInterceptor CGLib动态代理特点: 使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生 ...
- 浅谈压缩感知(十六):感知矩阵之RIP
在压缩感知中,总是看到"矩阵满足RIP"之类的字眼,没错,这是一个压缩感知绕不开的术语,有限等距性质(Restricted Isometry Property, RIP). 注意: ...
- 浅谈压缩感知(十五):感知矩阵之spark常数
在压缩感知中,有一些用来评价感知矩阵(非测量矩阵)的指标,如常见的RIP等,除了RIP之外,spark常数也能够用来衡量能否成为合适的感知矩阵. 0.相关概念与符号 1.零空间条件NULL Space ...
- 浅谈算法和数据结构: 十 平衡查找树之B树
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种 ...
- 转 浅谈算法和数据结构: 十 平衡查找树之B树
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为"在计算机科学中,B树(B-tre ...
- 浅谈Spring(二)
一.AOP编程(面向切面编程) AOP的本质是代理. 1.静态代理设计模式 概念:通过代理类为原始类增加额外功能. 代理类 = 原始类 + 额外功能 +实现原始类的相同接口. 优点:避免原始类因为额外 ...
- 浅谈HDFS(二)之NameNode与SecondaryNameNode
NN与2NN工作机制 思考:NameNode中的元数据是存储在哪里的? 假设存储在NameNode节点的硬盘中,因为经常需要随机访问和响应客户请求,必然效率太低,所以是存储在内存中的 但是,如果存储在 ...
- 浅谈Excel开发:十 Excel 开发中与线程相关的若干问题
采用VSTO或者Shared Add-in等技术开发Excel插件,其实是在与Excel提供的API在打交道,Excel本身的组件大多数都是COM组件,也就是说通过Excel PIA来与COM进行交互 ...
- 浅谈JDBC(二)
JDBC中的事务 简单来说,事务就是要保证一组DAO方法的操作,要么一起成功要么一起失败. 1.事务控制的位置 在Service中的业务方法内进行事务控制. 2.事务控制的代码 a.注意:JDBC会自 ...
随机推荐
- form总结
在Javascript 中,页面上的每一对<form> 标记都解析为一个对象,即form 对象. 可以通过document.forms 获取以源顺序排列的文档中所有form 对象的集合. ...
- poj 1321 棋盘问题(n行中放任意k行)
n*n的棋盘摆K的棋子,任意两个棋子不能在同一行同一列 Sample Input 2 1#. //# 可放.#4 4...#..#..#..#...-1 -1Sample Output 21 # i ...
- POJ 3421 X-factor Chains (因式分解+排列组合)
题意:一条整数链,要求相邻两数前一个整除后一个.给出链尾的数,求链的最大长度以及满足最大长度的不同链的数量. 类型:因式分解+排列组合 算法:因式分解的素因子个数即为链长,链中后一个数等于前一个数乘以 ...
- hihocoder 1341 Constraint Checker【string】
hihocoder 1341 解释:这道题题目还是比较容易理解,就是根据输入的若干个不等式,校验后面输入的数据是否都满足前面的不等式,满足就输出Yes,只要有一个不满足就输出No.如“A<B&l ...
- Hadoop Yarn环境配置
抄一个可行的Hadoop Yarn环境配置.用的官方的2.2.0版本. http://www.jdon.com/bigdata/yarn.html Hadoop 2.2新特性 将Mapreduce框架 ...
- Codeforces 757D - Felicity's Big Secret Revealed
757D - Felicity's Big Secret Revealed 题目大意:给你一串有n(n<=75)个0或1组成的串,让你划最多n+1条分割线,第一条分割线的前面和最后一条分割线的后 ...
- BZOJ1177 [Apio2009]Oil 二维前缀和 二维前缀最值
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1177 题意概括 在一个n*m的矩阵中,每一个位置一个数字. 现在让你选出3个k*k的矩阵,它们互不 ...
- C++语言实现-邻接矩阵
一. 图的概念 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合.在图中的数据元素,我们称之为顶点( ...
- Java内存管理-程序运行过程(一)
勿在流沙住高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 相信在做Java开发的伙伴一定知道 JVM(Java Virtual Machine( ...
- [洛谷P2258][NOIP2014PJ]子矩阵(dfs)(dp)
NOIP 2014普及组 T4(话说一道PJ组的题就把我卡了一个多小时诶) 这道题在我看第一次的时候是没有意识到这是一道DP题的,然后就摁着DFS敲了好长时间,结果敲了一个TLE 这是DP!!! 下面 ...